Struts2 Tomcat,Tomcat如何知道JSP的运行位置?

时间:2015-10-26 14:09:44

标签: tomcat struts2

我正在学习Sturts2。我在Eclipse上运行不同的教程...我注意到一些目录结构将JSP放在Web-inf下的JSP文件夹中,其他目录结构只在Web-inf下面而不是在任何子文件夹中。我已经尝试创建一个JSP文件夹并将我的helloworld JSP移动到JSP文件夹中,只是为了查看它是否在运行时找到,在某些情况下是,其他没有。好奇Tomcat如何知道在哪里找到并运行JSP?是否有一些指向JSP的配置文件?提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您使用的是Struts和Tomcat,那么当时负责的任何组件(Struts或Tomcat)都会决定在哪里查找JSP。最终,每个请求都归结为一个资源,可以在应用程序的URL空间中找到。因此,所有网址都会以/contextPath开头,之后会有一些其他信息。

通常,页面在代码或配置中被称为相对于应用程序的根。因此,对/app/dir/file.jsp的请求将导致JSP文件位于/dir/file.jsp中的任何目录中。是否将文件放入相对于应用程序根目录的/web/WEB-INF中。

Tomcat小心不允许远程客户端请求/WEB-INF中的文件,因为这会代表安全漏洞,但它确实允许应用程序内的代码转发请求到其中的资源目录。这就是为什么有些应用程序喜欢将所有JSP文件放入/WEB-INF文件夹中的原因:它确保没有远程客户端直接请求JSP文件,并且可能由于事先未提供某些预期状态而导致服务器出现问题。