Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在WEB-INF文件夹中隐藏JSP文件?_Jsp_Servlets_Web Inf_Requestdispatcher - Fatal编程技术网

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

如何在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

例如,在一个简单的JavaWeb应用程序中,假设您有一个servlet TestServlet.Java。例如,在部署描述(web.xml)中,您可以将请求映射到TestServlet,例如
/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下提供一切服务。