在简单的Java Web应用程序中,例如,想象您有一个Servlet Testservlet.java。在部署描述(web.xml)中,您可以映射即将说的请求 /testpage 测试服务,以便什么时候 /testapplication/testpage 请求的是Testservlet处理请求。例如,您可以写“ Hello World”并发送响应。

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

webapps\testapplication\WEB-INF\classes\com\packagename\TestClass.java

这意味着无法使用浏览器进入此文件。 (就像输入URL)

您还可以获取请求调度程序,并将请求和响应对象转发到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 可以访问它。

request.getRequestDispatcher("/WEB-INF/test.jsp").forward(request, response);

其他提示

如果您使用的是JSF,则可以将此文件放入Web-Inf文件夹中,并使用导航规则将请求映射到页面。但是,如果不是,则可以创建过滤器并使用该滤镜将其映射到URL“/test.jsp” <url-pattern> 属性和重定向到您想要的任何地方(例如Web-Inf中的页面)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top