Servlet资源不可用HTTP 404

时间:2014-09-17 19:29:38

标签: java jsp java-ee servlets

我有一个servlet,我正试图通过一个超链接。 我通过指向该文件夹上JSP文件的超链接检查了Servlet的文件夹可用性。 当我在带有.java扩展名的超链接上询问时,我也检查了Servlet本身,我得到了 浏览器上的Servlet代码。

当我尝试连接到该Servlet到doGetdoPost时,我收到404 HTTP错误, 资源不可用。

Web.xml中:

<!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>TestServlet</servlet-name>
        <servlet-class>controllers.TestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>TestServlet</servlet-name>
        <url-pattern>/controllers</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>/views/welcomePage.jsp</welcome-file>
    </welcome-file-list>
</web-app>

有什么问题?

2 个答案:

答案 0 :(得分:1)

当你在问题中发帖时

  

我在使用.java扩展名

的超链接上询问时检查了Servlet本身

我认为你将servlet类文件放在web文件夹下的一个文件夹中,这就是你可以访问url的原因。

project
   src
   web
     controllers
       TestServlet.java
     page.jsp
     WEB-INF
       classes

与jsp文件相反,servlet类必须位于WEB-INF / classes文件夹(.class文件而不是.java文件)中,并且类的源代码必须位于src包控制器下的项目文件夹,所以:

project
   src
     controllers
       TestServlet.java
   web     
     page.jsp
     WEB-INF
       classes
          controllers
            TestServlet.class

如果您在将java类放入源文件夹时使用eclipse,netbeans或其他IDE,它会自动将.class放入WEB-INF / classes文件夹中。

答案 1 :(得分:0)

您将servlet映射到网址格式 / controllers - 因此您的帖子应转到http://localhostOrWhatever/maybeYourWebAppDirectoryDependingOnSetup/controllers