因此,可以让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中拿出来。