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

应用服务器把WEB-INF指为禁访目录,即直接在浏览器里是不能访问的.
因此,可以让servlet进行访问,如web-inf下有a.jsp则可以用request.getrequestdispatcher("/web-inf/a.jsp").forward(request,response);进行派遣访问.但如果web-inf下有a.htm,则用request.getrequestdispatcher("/web-inf/a.htm").forward(request,response);就不能访问.

至于原理的话,可以去看看Tomcat的源码。


WEB-INF下的jsp直接在链接中是无法请求到的,需要作一个action或者servlet的跳转,如<a href='index.action'>首页</a>,web.xml中的servlet可以这样配置:
<servlet>
    <servlet-name>index</servlet-name>
    <servlet-class>跳转到首页的action</servlet-class>
  </servlet>
<servlet-mapping>
    <servlet-name>index</servlet-name>
    <url-pattern>/index.action</url-pattern><!--映射的路径-->
  </servlet-mapping>
  建议把jsp从WEB-INF中拿出来。

猜你喜欢

转载自blog.csdn.net/qq_25361331/article/details/50480398