如何在WEB-INF文件夹中隐藏JSP文件?

Kor*_*gay 6 jsp servlets web-inf requestdispatcher

在一个简单的Java Web应用程序中,例如,假设您有一个servlet TestServlet.java.在部署描述(web.xml)中,您可以将请求映射/testpage 到TestServlet,以便在/testapplication/testpage请求时TestServlet处理请求.例如,您可以编写"Hello World"并发送响应.

在目录结构(部署到Web服务器的应用程序)中,TestServlet.java将驻留在:

webapps\testapplication\WEB-INF\classes\com\packagename\TestClass.java
Run Code Online (Sandbox Code Playgroud)

这意味着无法使用浏览器访问此文件.(比如输入网址)

您还可以获取请求调度程序并将请求和响应对象转发到JSP文件,如.getRequestDispatcher("/test.jsp").但那时文件就会出现

webapps\testapplication\test.jsp
Run Code Online (Sandbox Code Playgroud)

所以连接到http:\\ server.com\test.jsp也会得到这个文件.

我想在WEB-INF文件夹中隐藏文件,因此除了我提供的映射之外,客户端无法访问它.

这样做的适当方法是什么?

Jay*_*gar 8

我想隐藏WEB-INF文件夹中的文件,以便客户端无法访问它.

WEB-INF例如(WEB-INF/jsp),保留您的jsp文件- 以便默认情况下Web容器不允许客户端直接访问WEB-INF文件夹下的资源,但RequestDispatcher可以访问它.

request.getRequestDispatcher("/WEB-INF/test.jsp").forward(request, response);
Run Code Online (Sandbox Code Playgroud)