• JavaWeb学习记录(十五)——浏览器Cookie禁用后的处理


    IE禁用Cookie方式:

    例一:

    demo.do相关代码

        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            HttpSession session=request.getSession();
            String jsessionid=session.getId();
            Cookie sessionCookie=new Cookie("JSESSIONID", jsessionid);
            session.setAttribute("name", "zzz");
            String url=response.encodeRedirectURL("./demo2.do");
            response.sendRedirect(url);
        }

    demo2.do相关代码

    public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            HttpSession session = request.getSession();

            // 获取session的id
            String jsessionid = session.getId();
            
            System.out.println(session.getAttribute("name"));
        }

    输入地址http://127.0.0.1:8080/cookie/demo.do

    结果

    地址栏结果:

    http://127.0.0.1:8080/cookie/demo2.do;jsessionid=D2B0058380743E3731D50C49E6355144

    HttpWatch结果:

    控制台有输出为zzz

    例二:

    demo.do代码

      response.setContentType("text/html;charset=UTF-8");
            
            PrintWriter out = response.getWriter();
            
            out.println("<html>");
            out.println("<body>");
            //String url=response.encodeURL("./demo2.do");
            out.println("<a href='./demo2.do'>加入购物车</a>");
            out.println("<body>");
            out.println("</html>");

    demo1.do 相关不变

    结果与例一类似

    说明:

    (一)、再禁用cookie后 应该采用 ip地址访问 http://172.16.237.247:8080/web_11/goods.do?oper=detailCart

    (二)、
    ¨演示禁用Cookie后servlet共享数据导致的问题。
    ¨解决方案:URL重写
      response. encodeRedirectURL(java.lang.String url)

        用于对sendRedirect方法后的url地址进行重写。

      response. encodeURL(java.lang.String url)

        用于对表单action和超链接的url地址进行重写

    ¨附加:
      Session的失效
      Web.xml文件配置session失效时间
  • 相关阅读:
    在.net 4.0程序中使用TPL Dataflow
    打算把我的视频工具整合一下
    Visual Studio 2012 Updater 2 发布了
    Entity Framework学习(二)基本操作
    Entity Framework学习(一)CodeFirst入门
    VS2012中对C++注释高亮的改进
    【翻译】(12)NDK GDB
    (3)NDK Development
    【翻译】(10)Import Module
    【翻译】(7)CPU Arch ABIs
  • 原文地址:https://www.cnblogs.com/ly-radiata/p/4363679.html
Copyright © 2020-2023  润新知