访问WEB-INF下的jsp/html

基于Servlet的声明,WEB-INF不作为Web应用的公共文档树的一部分。因此,WEB-INF 目录下的资源不是为客户直接服务的。因此客户端不能直接访问WEB-INF下的文件,但是可以通过request.getrequestdispatcher("").forward(request,response);进行访问:
如:新建两个文件:WEB-INF/jsp/test1.jsp;WEB-INF/jsp/test2.html.

如果你想访问web-inf下的html文件的话,用request.getrequestdispatcher("").forward(request,response);是访问不了的。
原因很简单,jsp就是servlet,会被编译成class文件,而html的就不行了。
所以需要配置web.xml文件才能去访问html。
具体实现如下:
用打开web.xml文件,找到
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
然后在它下面添加
</servlet-mapping>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
这样你就能用request.getrequestdispatcher("").forward(request,response);去访问web-inf下的html了.
但response.sendRedirect("");是不能访问的。
如果是form表单,可以用<jsp:forward page = "" />实现,
<form name="">
<jsp:forward page = "" />
</form>

posted @ 2015-03-13 17:45  High阔天空  阅读(1926)  评论(0编辑  收藏  举报