如何在WEB-INF文件夹中隐藏JSP文件?
例如,在一个简单的JavaWeb应用程序中,假设您有一个servlet TestServlet.Java。例如,在部署描述(web.xml)中,您可以将请求映射到TestServlet,例如如何在WEB-INF文件夹中隐藏JSP文件?,jsp,servlets,web-inf,requestdispatcher,Jsp,Servlets,Web Inf,Requestdispatcher,例如,在一个简单的JavaWeb应用程序中,假设您有一个servlet TestServlet.Java。例如,在部署描述(web.xml)中,您可以将请求映射到TestServlet,例如/testpage,以便在请求/testapplication/testpage时,TestServlet处理该请求。例如,您可以编写“Hello World”并发送响应 在目录结构(部署到web服务器的应用程序)中,TestServlet.java将位于: webapps\testapplication\W
/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”,然后重定向到您想要的任何位置(如WEB-INF中的页面)。在WEB-INF文件夹中隐藏文件是什么意思。我想把文件放在WEB-INF文件夹下。和往常一样,BalusC给出了正确的答案:但我的问题是,在Javaservlet中,我应该如何给出jsp文件的路径?像getRequestDispatcher(“WEB-INF/test.jsp”)?这是正确的方法吗?你的答案不正确,如果你纠正了,我会将其标记为已接受。谢谢@KorayTugay:)。我没有给出完整的代码片段行。现在我已经纠正了它,“通过默认的Web容器[do]不允许直接访问Web-INF文件夹下的资源”-Jetty的情况似乎不是这样。Jetty很乐意在WEB-INF下提供一切服务。