尝试运行servlet时获取HTTP状态404错误 [英] Getting HTTP Status 404 error when trying to run servlet

查看:3823
本文介绍了尝试运行servlet时获取HTTP状态404错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个我想要运行的简单servlet的问题,Hello.java。我把它放在eclipse中,然后将文件放在 webapps / ServletTest / WEB-INF / classes 文件夹中并进行编译,创建文件 Hello .class 在同一个文件夹中。然后,我修改了我的web.xml文件来映射servlet并尝试通过以下地址运行:

  http:// localhost :8080 / ServletTest / Hello 

但是,这没有工作,发生以下错误



HTTP状态404 -



类型状态报告



消息



描述请求的资源不可用。
Apache Tomcat / 7.0.42



web.xml文件中的映射如下所示:

 < servlet> 
< servlet-name> Hello< / servlet-name>
< servlet-class> Main.Hello< / servlet-class>
< / servlet>

< servlet-mapping>
< servlet-name> Hello< / servlet-name>
< url-pattern> / Hello< / url-pattern>
< / servlet-mapping>

servlet的代码:

 包主; 
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(/ Hello)
public class Hello extends HttpServlet {
private static final long serialVersionUID = 1L;
public Hello(){
super();
}

protected void doGet(HttpServletRequest request,HttpServletResponse

response)throws ServletException,IOException {
PrintWriter out = response.getWriter();
response.setContentType(text / html);
String path = request.getContextPath();
String ip = request.getRemoteAddr();
out.print(< html>+
< title> Hello< / title>+
Hello World+< br>+
你的ip是:+ ip +< br>+
你的路径是:+ path
+< / html>);
}
protected void doPost(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException {

}

}


解决方案

编译的 Hello.class 文件应位于文件夹

  webapps / ServletTest / WEB-INF / classes / Main 

因为它被声明为包 / p>

此外,您可以在 /logs/catalina.out 中查看Tomcat的启动日志, log / catalina.log ,取决于。






此外,Suresh在评论中是正确的,使用< servlet> 声明或 @WebServlet 。不要同时使用。


I have a problem with my simple servlet that I am trying to run, Hello.java. I made it in eclipse, then placed the file it in the webapps/ServletTest/WEB-INF/classes folder and compiled it, creating the file Hello.class in the same folder. I then modified my web.xml file to map the servlet and tried to run it through the following address

http://localhost:8080/ServletTest/Hello

However, this did not work, giving the following error

HTTP Status 404 -

type Status report

message

description The requested resource is not available. Apache Tomcat/7.0.42

The mapping in the web.xml file looks like this:

<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>Main.Hello</servlet-class>
</servlet>  

<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping> 

The code of the servlet:

package Main;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/Hello")
public class Hello extends HttpServlet {
private static final long serialVersionUID = 1L;
public Hello() {
super();
 }

protected void doGet(HttpServletRequest request, HttpServletResponse                   

response)  throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    response.setContentType("text/html");
    String path = request.getContextPath();
    String ip = request.getRemoteAddr();
    out.print("<html>" +
    "<title>Hello</title>" +
            "Hello World"+ "<br>" +
    "Your ip is: " + ip + "<br>" +
    "Your path is: " + path
    + "</html>");       
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)   

throws     ServletException, IOException {

}

}

解决方案

The compiled Hello.class file should be in the folder

webapps/ServletTest/WEB-INF/classes/Main

since it's declared to be in package Main.

Also, you can see Tomcat's startup logs in /logs/catalina.out or /logs/catalina.log, depending.


Also, Suresh is right in the comments, use either a <servlet> declaration or @WebServlet. Don't use both.

这篇关于尝试运行servlet时获取HTTP状态404错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆