Java可以不似鲭水狼牙鱼访问服务器上的servlet

问题描述 投票:0回答:1

现在我想了几个小时,但没有作品在这里需要一些帮助!

我试图在qazxsw POI运行一个Java Web应用程序

当我去http://localhost:8080/hello-world我看到服务器正在运行。但是/你好世界没有找到http://localhost:8080

项目结构:

HTTP Status 404 - Not Found

Veb.hml:

enter image description here

MainServlet:

<!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>
  <display-name>Archetype Created Web Application</display-name>

  <servlet>
    <servlet-name>MainServlet</servlet-name>
    <servlet-class>controller.MainServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>MainServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

我在做什么错在这里?为什么我看不到日志消息:package controller; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet(urlPatterns="/hello-world") public class MainServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("TESTTESTTEST"); request.getRequestDispatcher("/test.jsp").forward(request, response); } } 在控制台以及为何TESTTESTTEST不回来了?

请帮助我。

- 编辑

服务器配置:

/test.jsp

java xml jsp java-ee
1个回答
1
投票

enter image description here您已配置web.xml匹配模式MainServlet。也许你应该使用/ URL模式:

/*

见进一步阅读此Q / A:qazxsw POI

另请注意,您不要通过<servlet-mapping> <servlet-name>MainServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> 访问你的应用程序,如果你已经部署到任意应用程序名称:如果上下文路径是Difference between / and /* in servlet mapping url pattern你必须分别调用http://localhost:8080//myWebApp

在Apache Tomcat上的情况下,如果你想通过http://localhost:8080/myWebApp/http://localhost:8080/myWebApp/hello-world来访问它,你可以命名上下文路径ROOT

编辑:

显得既映射规范有冲突。卸下web.xml中Servlet的定义:

http://localhost:8080/

在你的git回购已指定http://localhost:8080/hello-world,在<!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> <display-name>Archetype Created Web Application</display-name> </web-app> 你的名字你@WebServlet(urlPatterns="/servlet")“1”,它产生的contextPath“/ 1”。

现在调用pom.xmlartifacId。调用http://localhost:8080/1/转发你的方法,但结果在误差404 index.jsp为test.jsp的不存在。

© www.soinside.com 2019 - 2024. All rights reserved.