forward 和 redirect 返回时基准路径是不一样的。
当调用一个url 时,如 http://webRoot/test/test/test.do返回一个页面test.jsp 假定该页面在webRoot目录的根目录下/webRoot/test.jsp
此时forward的基准路径为http://webRoot/test/test/
而redirect 基准路径为http://webRoot/
导致同一个页面会产生两个不同的基准路径,发生矛盾
解决方法有二
一、用contextPath的绝对路径
二 用html 的<base/>或者struts的<html:base/>
base的href值可以自己设置。本人习惯设置为页面根据webroot的相对路径。这样资源(如 js css 图片 文件)路径可以统一
当调用一个url 时,如 http://webRoot/test/test/test.do返回一个页面test.jsp 假定该页面在webRoot目录的根目录下/webRoot/test.jsp
此时forward的基准路径为http://webRoot/test/test/
而redirect 基准路径为http://webRoot/
导致同一个页面会产生两个不同的基准路径,发生矛盾
解决方法有二
一、用contextPath的绝对路径
二 用html 的<base/>或者struts的<html:base/>
base的href值可以自己设置。本人习惯设置为页面根据webroot的相对路径。这样资源(如 js css 图片 文件)路径可以统一
本文探讨了在Web应用中forward和redirect两种返回方式产生的不同基准路径及其带来的问题,并提出了使用contextPath绝对路径或html的<base/>标签来统一资源路径的方法。

被折叠的 条评论
为什么被折叠?



