zoukankan      html  css  js  c++  java
  • Cookie的使用

     Cookie由服务器端生成,发送给客户端浏览器,浏览器会将其保存成某个目录下的文本文件。

    Cookie的工作原理:

          当用户在浏览网站时,Web服务器会将一些资料存放在客户端,这些资料
         包括用户在浏览网站期间输入的文字或一些选择记录。当用户下一次访问
         该网站的时候,服务器会从客户端查看是否有保留下来的Cookie信息,
             然后依据Cookie的内容,呈现特定的页面内容给用户。

    Cookie与session的比较:
       Session是在服务器端保存用户信息,Cookie是在客户端保存用户信息。
       Session中保存的是对象,Cookie保存的是字符串。
       Session对象随会话结束而失效,Cookie可以长期保存在客户端。
       Cookie通常用于保存不重要的用户信息,重要的信息使用session保存。

    Cookie的应用:

       在JSP使用Cookie的步骤:
          1.在一个JSP页面创建Cookie对象
            Cookie cookie=new Cookie("user",URLEncoder.encode(username,"UTF-8"));
          2.写入Cookie
            cookie.setMaxAge(60*60);//有效期
            response.addCookie(cookie);//服务器发出的方法所以用response
          3.在另一个JSP页面读取Cookie
             Cookie[] cookies=request.getCookies();
                   String user="";
                     for(int i=0;i<cookies.length;i++){
                      if(cookies[i].getName().equals("user")){
                        user=URLDecoder.decode(cookies[i].getValue(),"UTF-8");
                     }
                   }

        示列:

            在另一个JSP页面读取Cookie,写入Cookie。

      

    <%
    request.setCharacterEncoding("UTF-8");
    String username=request.getParameter("username");
    String password=request.getParameter("password");
    if(username.equals("系统管理员") && password.equals("123")){
        Cookie cookie=new Cookie("user",URLEncoder.encode(username,"UTF-8"));
        cookie.setMaxAge(60*60);
        response.addCookie(cookie);
        session.setAttribute("user",username);
        response.sendRedirect("index.jsp");
        //out.print("恭喜你,登录成功!<br/>");
        //out.print("用户名:" + username + "<br/>");
        //out.print("密码:" + password + "<br/>");
    }else{
        request.setAttribute("message", "登录失败,用户名或密码输入不正确!");
        request.getRequestDispatcher("userLogin.jsp").forward(request, response);
    }
    
    %>

         在另一个JSP页面读取Cookie。

           <%
                Cookie[] cookies=request.getCookies();
                String user="";
                for(int i=0;i<cookies.length;i++){
                    if(cookies[i].getName().equals("user")){
                        user = URLDecoder.decode(cookies[i].getValue(),"UTF-8");
                    }
                }
                Object o=session.getAttribute("user");
                if(o==null){
                    //显示用户名密码,可以在此登录
                %>                
                    <label>用户名</label>
              <input type="text" name="username"
              value="<%=user%>"/><label>密码</label>
              <input type="text" name="password" />
              <button>登录</button> <% }else{ //显示“欢迎你,XXX” out.print("欢迎你,"+o.toString()); %> &nbsp;<a href="userLogout.jsp">注销</a> <% } %>

          

  • 相关阅读:
    全栈程工程师
    月薪8000的程序员和月薪2万的程序员差别在哪里?
    原型中的访问
    关于 基本类型和复合类型 用== 判断的小问题
    使用原型解决构造函数问题
    前端工程师学习路线 --书籍
    程序员成长之路
    GIT学习(1) Pull和Fetch
    OO面向对象编程:第四单元总结及课程总结
    OO面向对象编程:第三单元总结
  • 原文地址:https://www.cnblogs.com/fifiyong/p/5931343.html
Copyright © 2011-2022 走看看