protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
request.getSession();
/**
* 如果不不加上面这行代码,那么下面url1,url2就不会讲session的信息增加到后面.
* 加了之后,就添加上去了。
* 上面这行代码究竟完成了什么功能。
* request.getSession();
* 到底做了什么?
* 他不是返回Session对象么。这里都没有将其返回结果保存
* 我以为这代码属于无意义代码了!!!
*
*/
String url1 = response.encodeUrl("/JavaWeb2/mySessionDemo1");
String url2 = response.encodeUrl("/JavaWeb2/mySessionDemo2");
out.write("<a href='"+url1+"'>购买</a>");
out.write("<br/>");
out.write("<a href='"+url2+"'>结账</a>");
}
将request.getSession();注释掉的源文件:
<a href='/JavaWeb2/mySessionDemo1'>购买</a><br/><a href='/JavaWeb2/mySessionDemo2'>结账</a>
如果不注释掉,则出现如下情况:
<a href='/JavaWeb2/mySessionDemo1;jsessionid=4F4D02D3FF5E5E3AEA08F2EA27342F8D'>购买</a><br/><a href='/JavaWeb2/mySessionDemo2;jsessionid=4F4D02D3FF5E5E3AEA08F2EA27342F8D'>结账</a>
------解决方案--------------------
encodeURL会判断cookie是否可用,如果cookie被禁用那么jsessionid就会放在URL里面,没禁用URL还是原样