我有两个目录 image /图片
page /jsp页面
我在Servelt里用到
request.getRequestDispatcher("/page/regedit.jsp").forward(request,response);
但我regedit.jsp里面的图片的路径全丢了!!!
对此小弟十分郁闷,特请高手指点。 在线等待答复。速回!!!
page /jsp页面
我在Servelt里用到
request.getRequestDispatcher("/page/regedit.jsp").forward(request,response);
但我regedit.jsp里面的图片的路径全丢了!!!
对此小弟十分郁闷,特请高手指点。 在线等待答复。速回!!!
楼主【fyumin】截止到2008-07-11 15:06:11的历史汇总数据(不包括此帖):
发帖的总数量:10 发帖的总分数:190 每贴平均分数:19
回帖的总数量:6 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:1 结贴的总分数:20
无满意结贴数:0 无满意结贴分:0
未结的帖子数:9 未结的总分数:170
结贴的百分比:10.00 % 结分的百分比:10.53 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
request.getRequestDispatcher("/regedit.jsp").forward(request,response);
再试一下。
还不行把/去掉
request.getRequestDispatcher("regedit.jsp").forward(request,response);
尽量使用绝对路径
即:
/site/image/...jpg
这样的话是不可能出现问题的
我的web项目目录结构为
/context/page/存放页面
/context/pic/存放图片
放在page下的页面需要使用的图片都在pic下,那么html代码应该写img src="../pic/xxx.jpg"
这样的话,直接打开这个页面是没问题。
可是我用servlet里的request.getRequestDispatcher forward到这个页面,页面上的图片路径就不对了。servlet路径是直接映射为context下的,比如/context/LoginServlet
我看用request.getRequestDispatcher之后那些图片的路径就都变成/context/pic/xxx.jpg了
http://localhost:8080/pic/xxx.jpg了,感觉forward后的页面都以context为相对路径了,于是“..”就到了根目录....
是不是request.getRequestDispatcher的关系?
但是用response.sendRedirect的话就没有这个问题了。
我清楚sendRedirect和forward的区别,但不知道forward后的页面里的元素怎么路径会有这个问题
放在page下的页面需要使用的图片都在pic下,那么html代码应该写img src="../pic/xxx.jpg"
。
应该就是这里的问题
你把所有的"../pic/xxx.jpg",换成“/context/pic/xxx.jpg”
保证没问题
该称不用request获取委托对象改用
getServletContext().getRequestDispatcher("/page/regedit.jsp").forward(request,response);
这种方法要传入的参数是第二个资源相对于servlet上下文根的路径即从“/”开始的
action的路径.