Java JSP Tomcat坏资源

Java JSP Tomcat坏资源,java,eclipse,jsp,tomcat,Java,Eclipse,Jsp,Tomcat,我们更深入地了解了我们的项目,并用eclipse建立了一个基本的web应用程序。每当我们试图运行服务器时,就会出现如下404错误 从我的研究中,我发现我需要某种web.xml文件。这个文件应该放在哪里?里面应该有什么。我该怎么做您的问题是您试图访问WEB-INF文件夹中的资源,这是不允许的,这就是您出现此错误的原因,您必须将jsp放在WebContent文件夹下或WebContent文件夹下的任何文件夹下。 WEB-INF\classes包含Java类的.class文件,它不是放置任何资源的好

我们更深入地了解了我们的项目,并用eclipse建立了一个基本的web应用程序。每当我们试图运行服务器时,就会出现如下404错误


从我的研究中,我发现我需要某种web.xml文件。这个文件应该放在哪里?里面应该有什么。我该怎么做

您的问题是您试图访问WEB-INF文件夹中的资源,这是不允许的,这就是您出现此错误的原因,您必须将jsp放在WebContent文件夹下或WebContent文件夹下的任何文件夹下。 WEB-INF\classes包含Java类的.class文件,它不是放置任何资源的好地方

由于servlets的3.0规范,web部署描述符(web.xml)是可选的


我希望这可以帮助您解决问题

您的问题是试图访问WEB-INF文件夹中的资源,这是不允许的,这就是您出现此错误的原因,您必须将jsp放在WebContent文件夹下或WebContent文件夹下的任何文件夹中。 WEB-INF\classes包含Java类的.class文件,它不是放置任何资源的好地方

由于servlets的3.0规范,web部署描述符(web.xml)是可选的


我希望这能帮助您解决问题

将JSP放在WEB-INF下会使它们无法访问,除非您将它们映射到WEB.XML中WEB-INF的目的是隐藏东西,因为用户无法下载或访问WEB-INF下的任何内容。如果您不想让用户以真名访问,您只能将JSP放在WEB-INF下(即
http://localhost/app/whatever.jsp
),但希望将其映射到某个特定的url(即
http://localhost/app/somename/

将WEB-INF下的JSP映射到URL可以在WEB.XML中使用此方法完成

   <servlet>
     <servlet-name>somename</servlet-name> 
     <jsp-file>/WEB-INF/whatever.jsp</jsp-file>
   </servlet>
   <servlet-mapping>
     <servlet-name>somename</servlet-name>
     <url-pattern>/somename/*</url-pattern>
 </servlet-mapping> 

名字
/WEB-INF/whatever.jsp
名字
/名字/*

当然,如果您需要将另一个URL映射到JSP,但不觉得有必要禁止用户通过其.JSP文件名访问JSP,则可以使用URL重写过滤器进行此操作。在这种情况下,将其置于WEB-INF下没有意义。

将JSP置于WEB-INF下会使其无法访问,除非您将其映射到WEB.XML中,否则f WEB-INF是隐藏内容,因为用户无法下载或访问WEB-INF下的任何内容。如果您不希望用户能够以其真实姓名(即
http://localhost/app/whatever.jsp
),但希望将其映射到某个特定的url(即
http://localhost/app/somename/

将WEB-INF下的JSP映射到URL可以在WEB.XML中使用此方法完成

   <servlet>
     <servlet-name>somename</servlet-name> 
     <jsp-file>/WEB-INF/whatever.jsp</jsp-file>
   </servlet>
   <servlet-mapping>
     <servlet-name>somename</servlet-name>
     <url-pattern>/somename/*</url-pattern>
 </servlet-mapping> 

名字
/WEB-INF/whatever.jsp
名字
/名字/*

当然,如果您需要将另一个URL映射到JSP,但不觉得有必要禁止用户通过其.JSP文件名访问JSP,您可以使用URL重写过滤器。在这种情况下,将其置于WEB-INF下没有意义。

请选中此项。请选中此项。这是放置仅可访问的资源的好地方在后端读取代码,但不是由用户直接读取。例如,您想要读取的一些配置文件,用户不应该访问这些文件。我说WEB-INF/classes不是一个好地方,不是整个WEB-INF文件夹。很明显,他想要访问jsp文件,所以我认为它与答案无关。这是放置资源的好地方这将只由后端的代码访问,而不是由用户直接访问。例如,您想要读取的一些配置文件,用户不应该访问。我说WEB-INF/classes不是一个好地方,不是整个WEB-INF文件夹。很明显,他想要访问jsp文件,所以我认为这与答案无关。