【问题标题】:Tomcat web.xml url mappingTomcat web.xml url 映射
【发布时间】:2015-11-18 14:02:42
【问题描述】:

我是 J2ee 的新手。我将以下内容配置为我的 web.xml

web.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
        <servlet>
                <servlet-name>TestGetServlet</servlet-name>
                <servlet-class>src.java.com.testGet.TestGet</servlet-class>
        </servlet>
        <servlet-mapping>
                <servlet-name>TestGetServlet</servlet-name>
                <url-pattern>/servlet/TestGet</url-pattern>
        </servlet-mapping>
</web-app>

Java 代码

package src.java.com.testGet;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;

public class TestGet extends HttpServlet {

    String WebPage = "<html><body> Hello World Again </body></html>";

    @Override
    public void init(){
        System.out.println("Servlet initialized");
    }

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse responce){
        try{
            responce.setContentType("text/html");
            PrintWriter aPW = responce.getWriter();
            aPW.println(WebPage);
        }catch(IOException ioe){
            ioe.getMessage();
        }
    }
}

但是tomcat返回如下错误

HTTP Status 404 - /TestGetServlet/servlet/TestGet

我已经使用 ant 构建了应用程序,并且部署正常,但它没有提供自动生成 web.xml 的方法(是吗?)所以我必须手动执行。谁能帮助我获得正确的映射?

【问题讨论】:

  • 从 web.xml 来看,你称之为“j2ee”,你是从非常旧的文档/文章/教程中复制/粘贴的。请使用较新的材料。 docs.oracle.com/javaee/7/tutorial/servlets.htm#BNAFD
  • 你用的是哪个tomcat版本?
  • 你好,我正在使用 Tomcat 8
  • 您是否将应用程序打包在TestGetServlet.war 文件中并部署在 webapps/ 文件夹中?
  • 不,我在 TestGet.war 中打包

标签: java tomcat jakarta-ee


【解决方案1】:

404表示没有找到该页面,可能是因为url不存在。

您在 url 中用于 servlet 映射的 /servlet/TestGet 部分是正确的。您的web.xml 似乎也正确。 检查应用程序是否命名为TestGetServlet

【讨论】:

  • 应用的类名是TestGet
  • 您是否能够访问该应用程序的任何其他页面?我会添加一个带有简短消息的快速 index.html 来检查它是否有效。
  • 这是我服务器上唯一的应用程序
【解决方案2】:

您的配置和代码似乎正确。也许问题出在build.xml

转到您的 tomcat 安装\wtpwebapps(或 webapps)\yourApp\WEB-INF 并确保:

  • 你的web.xml是正确的
  • 存在目录WEB-INF\classes 并包含您的编译代码(.class)。

如果你使用 eclipse,添加一个 tomcat (File - New - Server) 部署更简单快捷

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-24
    • 2011-06-16
    • 2011-03-14
    • 1970-01-01
    • 2010-10-04
    • 2012-04-17
    • 1970-01-01
    • 2016-05-24
    相关资源
    最近更新 更多