WEB-INF下的jsp页面用户不能直接访问如何解决?

WEB-INF下的jsp页面用户不能直接访问如何解决?,第1张

应用服务器把WEB-INF指为禁访目录,即直接在浏览器里是不能访问的
因此,可以让servlet进行访问,如web-inf下有ajsp则可以用requestgetrequestdispatcher("/web-inf/ajsp")forward(request,response);进行派遣访问但如果web-inf下有ahtm,则用requestgetrequestdispatcher("/web-inf/ahtm")forward(request,response);就不能访问
至于原理的话,可以去看看Tomcat的源码。多多学习。

在SpringMVC的配置文件里配置视图解析器,配置前缀和后缀,如下:
<bean
class="orgspringframeworkwebservletviewInternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value="jsp" />
</bean>
然后再访问就可以了

文件在WebRoot目录下就相当于在工程项目下

如果各种文件要分包名,比如js/jsp/css/html四种文件反别放置在WebRoot下的js/jsp/css/html文件包里、

比如html要引入js文件,只需要在html文件中写入把资源定位符定成/js/js就可以引入该文件了。

同理indexjsp要访问myjsp,只需要把url值赋为/jsp/myjsp或者jsp/myjsp都是可行的

相关知识:在工程目录下熟练使用相对路径是很重要的,/表示当前文件的上一个文件,如果当前文件OO与另一文件PP平级,当前文件要访问PP中的XX文件,就可以把url值赋为pp/xx

WEB-INF目录下的jsp文件,在浏览器中是不能直接访问的。(没有访问的权限)
如果将jsp文件放入WEB-INF目录下,将不能访问。
比如在jsp页面中直接写
[html] view plaincopy
<span style="font-size:18px;"><a href="/WEB-INF/content/indexjsp"></span>
那么将不能访问。
在struts中必须用action来实现页面的跳转,才能访问WEB-INF里面的jsp文件。
将上面的jsp页面中的链接写为:
[html] view plaincopy
<span style="font-size:18px;"><a href=indexaction>
</span>

上面截图是项目目录,我们要在jsonTestjsp 文件中引入 WEB-INF/js/jquery-214minjs文件,如下:

<script type="text/javascript" src="${pageContextrequestcontextPath}/js/jquery-214minjs" ></script>

以examplejsp配置为例子说明,以供参考:

在webxml中添加examplejsp的设置:

在浏览器中可以选择使用下面其中之一的URL进行访问:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13373594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存