Tomcat Was7 javax.servlet.forward.request_uri属性的差异
最近将Tomcat下运行良好的两个jsp之间的forward代码部署到Websphere7上,发现表单总是被提交到当前页。经过不懈努力,终于找到其中的缘由。
?
原来Tomcat和Was7对servlet标准的实现不尽相同的。差异很大,导致最终结果也有些差异了。本文中要说的request.getAttribute("javax.servlet.forward.request_uri")调用结果就是其中的一个差异。
?
在Java EE开发中经常用到RequestDispacher对象的forward,将请求转给其他路径,而经过一系列的传递之后,其实是同一个请求来的,但经过了多次路径变化。request的javax.servlet.forward.request_uri属性就是用来存放最原始的那个请求路径。
?
在Tomcat环境下javax.servlet.forward.request_uri存放的确实是最初的请求路径,但在was7下存放的却是上一个请求的路径。
?
附件是笔者测试的工程源码。将此工程分别发布到tomcat和websphere application server7下即可看到差异。