怎样才能访问web-inf下的jsp
原先我建的jsp都是在web-inf外的,都能正常访问,但我将它们移入web-inf目录下,并也修改了相应的struts-config.xml中forward的jsp路径,但运行后报错:
HTTP Status 404 - /web-inf/pages/customer/chehaow.jsp
--------------------------------------------------------------------------------
type Status report
message /web-inf/pages/customer/chehaow.jsp
description The requested resource (/web-inf/pages/customer/chehaow.jsp) is not available.
问题点数:50、回复次数:10Top
1 楼skycncomp(闭关修练到年底)回复于 2005-11-17 10:08:01 得分 0
好像不能访问吧
web-inf下的文件是受保护地Top
2 楼lye2000000_super(我自横刀香甜笑)回复于 2005-11-17 10:14:00 得分 0
这个文件夹是放受保护的文件的地方,比如说要用到的java类。Top
3 楼OnlyFor_love(『勾勾手指头 一辈子不分手』)回复于 2005-11-17 10:17:18 得分 10
因为web-inf下,应用服务器把它指为禁访目录,即直接在浏览器里是不能访问到的.
但是可以让servlet进行访问,如web-inf下有a.jsp则可以用request.getRequestDispatcher("/WEB-INF/a.jsp").forward(request,response);
Top
4 楼yuanshiaa()回复于 2005-11-17 10:30:01 得分 0
我手头有一套公司的程序,它就是把所有的jsp文件放在web-inf目录下的,只在web-inf目录外留一个链接文件,真不知道它是怎么配置的Top
5 楼OnlyFor_love(『勾勾手指头 一辈子不分手』)回复于 2005-11-17 10:30:03 得分 10
补充一下,如果你想访问web-inf下的htm文件的话,用request.getRequestDispatcher("/WEB-INF/a.htm").forward(request,response);是访问不了的。
原因很简单,jsp就是servlet,会被编译成class文件,而htm的就不行了。
所以需要配置以下conf下的web.xml文件才能去访问htm。
具体实现如下:
用打开tomcat安装目录下conf下的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("/WEB-INF/a.htm").forward(request,response);去访问web-inf下的htm了
Top
6 楼OnlyFor_love(『勾勾手指头 一辈子不分手』)回复于 2005-12-01 12:18:19 得分 0
顶一下 楼主还有问题吗?
Top
7 楼superslash(开始用功学习)回复于 2005-12-01 12:24:49 得分 0
xue xiTop
8 楼pigo()回复于 2005-12-01 12:39:17 得分 10
forward和indelude都可以访问WEB-INF下的文件的。
问题好像是你没区分大小写吧???
web-inf -> WEB-INF,必须大写.
Top
9 楼mxlmwl(飞星)回复于 2005-12-01 13:49:44 得分 10
晕倒,楼上既然用structs,怎么还用*.jsp这种方式来访问啊,那你还要structs干啥?不相当于把structs给踢掉了嘛,框架等于没用。正确的方式是:你应该以*.do的格式来访问,然后在return mapping.findForward("ss");在配置文件中把ss的地址对应为 /web-inf/pages/customer/chehaow.jsp,然后访问的时候访问*.do就可以了。
楼上几位说的是利用servlet实现的,也是对的。Top
10 楼mxlmwl(飞星)回复于 2005-12-01 13:50:42 得分 10
另外,和web-inf大小写没什么关系,但是浏览器中绝对不能http://www.abc.com/web-inf/pages/a.jsp,这样是不可以的,tomcat已经把web-inf给保护起来了。Top




