例如,在一个简单的Java Web应用程序中,假设您有一个Servlet TestServlet.java。在部署描述(web.xml)中,您可以例如将要说的请求映射/testpage 到TestServlet,以便在/testapplication/testpage请求时,TestServlet可以处理该请求。例如,您可以编写“ Hello World”并发送响应。
/testpage
/testapplication/testpage
在目录结构(已部署到Web服务器的应用程序)中,TestServlet.java将驻留在:
webapps\testapplication\WEB-INF\classes\com\packagename\TestClass.java
这意味着无法使用浏览器访问此文件。(就像输入URL)
您还可以获取请求分配器,并将请求和响应对象转发到JSP文件,例如.getRequestDispatcher("/test.jsp")。但随后文件将在
.getRequestDispatcher("/test.jsp")
webapps\testapplication\test.jsp
因此,连接到http:\\ server.com \ test.jsp也将获得此文件。
我想将文件隐藏在WEB-INF文件夹中,以便客户端无法访问,除非提供了我提供的映射。
什么是合适的方法?
我想将文件隐藏在WEB-INF文件夹中,以便客户端无法访问该文件。
将您的jsp文件保存在WEB-INF例如- 之下(WEB-INF/jsp),以便默认情况下Web容器不允许客户端直接访问WEB- INF文件夹下的资源,但是RequestDispatcher可以访问它。
WEB-INF
(WEB-INF/jsp)
RequestDispatcher
request.getRequestDispatcher("/WEB-INF/test.jsp").forward(request, response);