发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA

Servlet的forward问题,造成jsp中的相对路径不可用,不知有没有解决办法?

2004-06-23 16:14
赞助商链接

假设浏览器发出一个请求 http://localhost/mc/index.jsp

index.jsp将请求交给了某个Servlet来处理,该Servlet在request中设置了一些属性,然后使用了下面的forward语句:

request.getRequestDispatcher("/mc/zh/hello.jsp").forward(request, response);

在hello.jsp中有一些图片要显示,使用的是相对路径,图片与hellp.jsp放在一起,即在zh目录下。

此时问题来了:图片无法显示!
而把图片放到mc目录下,却又能正常显示。

可能原因:浏览器发出/mc/index.jsp请求后,记住了当前的目录层次是mc;
经过服务器的处理,返回的是mc/zh目录下的页面hello.jsp,但浏览器不知道目录层次已发生变化;
浏览器发现hello.jsp中要取图片,且是相对路径,于是要把相对路径转换为绝对路径并向服务器发出GET请求,在转换的时候,浏览器以为当前的目录是mc,于是就组装为http://localhost/mc/a.gif。如此一来,就和hello.jsp中的相对路径含义不一样了。

不知我这样的解释是否对,如果真是这样,服务器是否有办法通知浏览器目录层次已发生改变?(看了一下HTTP头字段,没有发现有用的)

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com