1

我在 Eclipse 中添加了一个动态 Web 项目,并且可以访问 WebContent 文件夹中的静态 HTML 文件和资源。我已将我的 JSP 文件放在 WebConent\WEB-INF

这工作正常:“http://localhost:8080/HelloWorld/index.htm”

这告诉我找不到资源:“http://localhost:8080/HelloWorld/Logon.jsp”

我没有定义任何 JSP servlet 映射。我有默认的 web.xml,其中只有欢迎文件。我右键单击项目名称并选择在服务器上调试以运行应用程序。

更新:我取得了一些成功。我将以下内容添加到 Eclipse 项目的 web.xml(在 WebContent\WEB-INF 文件夹中)。只有当 Test.jsp 在 WebContent 文件夹中而不是在 WebContent\WEB-INF 文件夹中时,Test.jsp 才能作为“http://localhost:8080/HelloWorld/Test.jsp”工作。

  <servlet>
   <servlet-name>jsp</servlet-name>
   <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
   <init-param>
       <param-name>fork</param-name>
       <param-value>false</param-value>
   </init-param>
   <init-param>
       <param-name>xpoweredBy</param-name>
       <param-value>false</param-value>
   </init-param>
   <init-param>
        <param-name>logVerbosityLevel</param-name>
        <param-value>WARNING</param-value>
   </init-param>
   <load-on-startup>3</load-on-startup>

   <servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.jsp</url-pattern>
   </servlet-mapping>
4

1 回答 1

2

中的文件/WEB-INF不可公开访问。该文件夹用于配置文件、模板文件、标记文件、包含文件、MVC 视图文件等。基本上所有应该被最终用户直接访问的东西,而无需首先调用一些主 JSP 文件或前端控制器 servlet。

只需将它们放在/WEB-INF文件夹之外,在公共网络内容中。

也可以看看:


不要忘记JspServlet从您的web.xml. 它根本没有解决具体问题。更重要的是,它真的不属于你的 webapp 的web.xml. 它已经在 servletcontainer 自己定义web.xml(如果是 Tomcat,您可以在其/conf文件夹中找到它。JspServlet在您的 webapp 中注册web.xml只会使您的 webapp 不可移植。它将无法在与 Tomcat 不同的 servletcontainer 上运行。

于 2012-10-16T00:13:33.843 回答