日期:2014-05-19  浏览次数:20650 次

问一个action=""的问题
action="save.jsp" 与 action="<%=response.encodeURL("save.jsp")%>"的区别 请教高手指点

------解决方案--------------------
Java Servlet API 中提出了跟踪 Session 的另一种机制,如果客户端浏览器不支持 Cookie,Servlet 容器可以重写客户请求的 URL,把 Session ID 添加到 URL 信息中。 
HttpServletResponse 接口提供了重写 URL 的方法:public java.lang.String encodeURL(java.lang.String url) 
该方法的实现机制为: 
1. 先判断当前的 Web 组件是否启用 Session,如果没有启用 Session,直接返回参数 url。 
2. 再判断客户端浏览器是否支持 Cookie,如果支持 Cookie,直接返回参数 url;如果不支持 Cookie,就在参数 url 中加入 Session ID 信息,然后返回修改后的 url。