今天改bug时,学习到了关于url有效性的问题的正确的认识。以前认为jsp通过url跳转时,跳到action中后url就失效了。其实这个认识是错误的,url还是有效的,jsp页面还是可以取到url后面跟的参数。
过程如下:
page.jsp页面点击第二页就会跳转到http://localhost:8080/hep/do/learningDesign?action=page&plan_mark=navigation&planId=1&pager.offset=4这个url
经过action处理后跳到page.jsp页面,在page.jsp页面中还是可以通过request.getParameter("planId")取到url中的planId这个参数。
今天又遇到了这个问题,翻了一下书,系统的了解一下其中的奥秘。原来web组件中有三种关联关系。
1.转发
Servlet类使用javax.servlet.RequestDispather.forward()方法来转发所收到的Http请求。
目标组件和源组件共用一个HttpServletRequest对象,共享一个request范围内的共享数据。
2.重定向
response.sendRedirect();
目标组件和源组件不共用一个HttpServletRequest对象,所以不共享一个request范围内的数据。
3.包含
include
目标组件和源组件共享一个HttpServletRequest对象,共享一个request范围内的数据。
因为开头的那个例子属于转发关系,所以共享request范围内的数据。