使用Tomcat运行Servlet



我做了一个非常简单的Servlet:

package it;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MyServlet extends HttpServlet {
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
           throws IOException, ServletException {
    // Set the response message's MIME type.
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
      out.println("<!DOCTYPE html>");  // HTML 5
      out.println("<html><head>");
      out.println("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>");
      String title = "Hello World";
      out.println("<title>" + title + "</title></head>");
      out.println("<body>");
      out.println("<h1>" + title + "</h1>");  // Prints "Hello, world!"
      out.println("</body></html>");
    } finally {
     out.close();  // Always close the output writer
    }
  }
}

Eclipse IDE中构建该类。所以,我把生成的文件。class放在Tomcat/webapps/ROOT/MyServlet/WEB-INF/classes/it中,因为我的java文件在一个名为它的包中。

然后,在WEB-INF文件夹中,我创建以下xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.4">
<display-name>My Web server Application</display-name>
<servlet>
 <servlet-name>hello</servlet-name>
 <servlet-class>it.MyServlet</servlet-class>
 <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
 <servlet-name>hello</servlet-name>
 <url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>

我在Windows中运行Tomcat Service(我知道它正在运行,因为我看到tomcat欢迎页面http://localhost:8080)。

所以,当我输入地址http://localhost:8080/MyServlet/hello,但我总是得到404状态错误,请求的资源不可用。

我读了很多关于这个话题的教程,但我不明白问题在哪里。有人能帮我吗?

路径

Tomcat/webapps/ROOT/MyServlet/WEB-INF/classes/it

放错地方了。

紧接在webapps下面的目录表示应用程序名称,例如,Tomcat/webapps/foo的内容将通过URL http://localhost:8080/foo访问。ROOT是特殊的,它表示根应用程序:http://localhost:8080 .

WEB-INF目录应该位于应用程序目录的下面。如果你想让你的应用程序在http://localhost:8080/myServlet,输入WEB-INF

Tomcat/webapps/MyServlet/WEB-INF

和你的class在

Tomcat/webapps/MyServlet/WEB-INF/classes/it

保持应用程序在此路径:

Tomcat/webapps/MyServlet/WEB-INF/classes/it

代替ROOT目录

相关内容

  • 没有找到相关文章

最新更新