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>

解决方案 »

  1.   

    Session在这里是基于cookie的,创建Session的时候会把jsessionid存到你的Cookie里
      

  2.   

    恩。谢谢了。然后String url2 = response.encodeUrl("/JavaWeb2/mySessionDemo2");
    这代码就会将Cookie里的jsessionid的信息添加进去?
      

  3.   

    恩。谢谢了。然后String url2 = response.encodeUrl("/JavaWeb2/mySessionDemo2");
    这代码就会将Cookie里的jsessionid的信息添加进去?

    encodeURL会判断cookie是否可用,如果cookie被禁用那么jsessionid就会放在URL里面,没禁用URL还是原样