<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    把困難踩在腳下

    迎難而上

     

    Java cookie的使用

    1.cookie是什么?

    cookie是web應(yīng)用當(dāng)中非常常用的一種技術(shù),用于儲(chǔ)存某些特定的用戶信息。

    2.cookie的作用?

    在用戶登陸時(shí)將用戶的信息存放在cookie中,用戶在一定的時(shí)間中再次登陸時(shí)不需要輸入用戶名和密碼直接跳轉(zhuǎn)到下一個(gè)界面。

    3.設(shè)置cookie

    Cookie cookie = new Cookie("key", "value");

    cookie.setMaxAge(saveTime*24*60*60);

    生存周期默認(rèn)時(shí)間為秒,如果設(shè)置為負(fù)值的話,則為瀏覽器進(jìn)程Cookie(內(nèi)存中保存),關(guān)閉瀏覽器就失效。

    cookie.setPath("/test/test2");

    設(shè)置Cookie路徑,不設(shè)置的話為當(dāng)前路徑(對(duì)于Servlet來(lái)說(shuō)為request.getContextPath() + web.xml里配置的該Servlet的url-pattern路徑部分) 。

    response.addCookie(cookie);

    4.讀取cookie

    該方法可以讀取當(dāng)前路徑以及“直接父路徑”的所有Cookie對(duì)象,如果沒(méi)有任何Cookie的話,則返回null。如果設(shè)置了路徑使用這個(gè)方法也沒(méi)有值。

    Cookie[] cookies = request.getCookies();

    5.刪除cookie

    Cookie cookie = new Cookie("key", null);

    cookie.setMaxAge(0);

    設(shè)置為0為立即刪除該Cookie;

    cookie.setPath("/test/test2");

    刪除指定路徑上的Cookie,不設(shè)置該路徑,默認(rèn)為刪除當(dāng)前路徑Cookie;

    response.addCookie(cookie);

    下面看一個(gè)例子,這是模擬126郵箱登陸的小功能。建立一個(gè)名為AutoLoginFilter的project,包結(jié)構(gòu)如下:

    bao

    project下有三個(gè)java文件、兩個(gè)jsp還有個(gè)html,

    CheckLogin.java代碼如下:

     

    public class CheckLogin 

         
    public static boolean login(String username, String password) {   
                
    if ("admin".equals(username) && "123456".equals(password)) {   
                    
    return true;   
                }
     else {   
                    
    return false;   
                }
       
            }
       

    }
     

    IndexFilter.java代碼如下:

     

    package com.bx.course;
    /**
    * Filter可以實(shí)現(xiàn)對(duì)請(qǐng)求的過(guò)濾和重定向等,也就是說(shuō)可以操作request和response,session等對(duì)象,listner只能監(jiān)聽到以上對(duì)象的屬性的修改。
    */
     

    import java.io.IOException;   
    import javax.servlet.Filter;   
    import javax.servlet.FilterChain;   
    import javax.servlet.FilterConfig;   
    import javax.servlet.ServletException;   
    import javax.servlet.ServletRequest;   
    import javax.servlet.ServletResponse;   
    import javax.servlet.http.Cookie;   
    import javax.servlet.http.HttpServletRequest;   
    import javax.servlet.http.HttpServletResponse;   
    public class IndexFilter implements Filter {   
        
    public void destroy() {   
            
    // TODO Auto-generated method stub   
        }
       
        
    public void doFilter(ServletRequest arg0, ServletResponse arg1,   
                FilterChain arg2) 
    throws IOException, ServletException 
            System.out.println(
    "every request pass here haha");
            HttpServletRequest request 
    = (HttpServletRequest) arg0;   
            HttpServletResponse response 
    = (HttpServletResponse) arg1;   
            Cookie[] cookies 
    = request.getCookies();  
    //        Cookie cookie = new Cookie("user",null);
    //        cookie.setMaxAge(0);
    //        response.addCookie(cookie);
            String[] cooks = null;   
            String username 
    = null;   
            String password 
    = null
            
    if (cookies != null{   
                
    for (Cookie coo : cookies) {   
                    String aa 
    = coo.getValue(); 
                    System.out.println(
    "1");
                    cooks 
    = aa.split("==");   
                    
    if (cooks.length == 2{
                        System.out.println(cooks[
    0]+cooks[1]);
                        username 
    = cooks[0];   
                        password 
    = cooks[1];   
                    }
       
                }
       
            }
     
            System.out.println(
    "cookie username | " + username);
            System.out.println(
    "cookie password | " + password);
            
    if (CheckLogin.login(username, password)) {
                System.err.println(
    "check successfully cookie data ");
                request.getSession().setAttribute(
    "username",username);   
                request.getRequestDispatcher(
    "/main126.jsp").forward(request, response);
            }
    else{   
                arg2.doFilter(request,response );   
            }
       
        }
       
        
    public void init(FilterConfig arg0) throws ServletException {   
            
    // TODO Auto-generated method stub   
        }
       
    }
     

    LoginServlet.java代碼如下:

     

    package com.bx.course;
    import java.io.IOException;   

    import javax.servlet.ServletException;   
    import javax.servlet.http.Cookie;   
    import javax.servlet.http.HttpServlet;   
    import javax.servlet.http.HttpServletRequest;   
    import javax.servlet.http.HttpServletResponse;   
    public class LoginServlet extends HttpServlet {   
        
    public void doGet(HttpServletRequest request, HttpServletResponse response)   
                
    throws ServletException, IOException {   
            
    this.doPost(request, response);   
        }
       
        
    public void doPost(HttpServletRequest request, HttpServletResponse response)   
                
    throws ServletException, IOException {   
               String username
    =request.getParameter("username");   
               String password
    =request.getParameter("password");   
               String savetime
    =request.getParameter("saveTime"); 
               System.out.println(
    "usrename  "+username+"  password "+password);
               
    if(CheckLogin.login(username, password)){   
                   
    if(null!=savetime){   
                       
    int saveTime=Integer.parseInt(savetime);//這里接受的表單值為天來(lái)計(jì)算的   
                       int seconds=saveTime*24*60*60;   
                       Cookie cookie 
    = new Cookie("user", username+"=="+password); 
                       cookie.setMaxAge(seconds);                      
                       response.addCookie(cookie);   
                   }
       
                   request.setAttribute(
    "username",username);   
                   request.getRequestDispatcher(
    "/main126.jsp").forward(request,response);   
               }
    else{   
                   request.getRequestDispatcher(
    "/failure.jsp").forward(request,response);   
               }
       
        }
       
    }
       

    web.xml配置文件代碼如下:

     

    <filter>
            
    <filter-name>loginFilter</filter-name>
            
    <filter-class>com.bx.course.IndexFilter</filter-class>
        
    </filter>
        
    <filter-mapping>
            
    <filter-name>loginFilter</filter-name>
            
    <url-pattern>/login.html</url-pattern>
        
    </filter-mapping>
        
    <servlet>
            
    <servlet-name>LoginServlet</servlet-name>
            
    <servlet-class>com.bx.course.LoginServlet</servlet-class>
        
    </servlet> 

        
    <servlet-mapping>
            
    <servlet-name>LoginServlet</servlet-name>
            
    <url-pattern>/login.do</url-pattern>
        
    </servlet-mapping>
        
    <welcome-file-list>
            
    <welcome-file>login.html</welcome-file>
        
    </welcome-file-list> 

        
    <welcome-file-list>
            
    <welcome-file>main126.jsp</welcome-file>
        
    </welcome-file-list> 

    login.html代碼如下:

     

    <html>  
      
    <head>  
      
    </head>  
      
    <body>  
      
    <form action="login.do">  
        126郵箱登錄
    <br/><br/>
               用戶名:
    <input type="text" name="username" ><br/>  
               密    碼:
    <input type="text" name="password" ><br/>  
       
    <select name="saveTime">  
            
    <option value="366">一年</option>  
            
    <option value="183">半年</option>  
            
    <option value="30">一個(gè)月</option>    
            
    <option value="7">一周</option>  
       
    </select><br/>  
       
    <input type="submit" value="登錄" />
      
    </form>  
      
    </body>  
    </html>  

    main126.jsp代碼如下:

     

    <html>  
      
    <head>  
         
    <title>測(cè)試cookie</title>  
      
    </head>  
      
    <body>  
             
    <h2>登錄成功,歡迎${username}的到來(lái) 126郵箱</h2><br/>
             
    <h3>測(cè)試cookie的功能
      
    </body>  
    </html>  

    failure.jsp代碼如下:

     

    <body>
        Login failure 
    <br>
      
    </body>

     

    運(yùn)行效果:

    在IE地址欄中輸入http://localhost:8080/LoginFilter/login.html

    顯示如下界面:

    2

    輸入用戶名:admin    密碼:123456 選擇保存時(shí)間,然后點(diǎn)擊登陸,就會(huì)進(jìn)入以下界面:

    3

     

    在保存時(shí)間內(nèi)再次在IE地址欄中輸入:http://localhost:8080/LoginFilter/login.html

    就會(huì)直接進(jìn)入登陸成功界面。如果用戶名或密碼不正確則會(huì)進(jìn)入以下界面:

    4

    posted on 2011-01-21 16:46 馮魁 閱讀(24364) 評(píng)論(4)  編輯  收藏

    評(píng)論

    # re: Java cookie的使用 2014-04-29 15:09 發(fā)的

    都是法國(guó)的雙方各   回復(fù)  更多評(píng)論   

    # re: Java cookie的使用 2016-05-14 17:26 急急急

    樓主 刪除cookie 老是刪除不了怎么辦?就是以你程序代碼  回復(fù)  更多評(píng)論   

    # re: Java cookie的使用 2016-05-14 17:29 急急急

    不管是刪除已知(單個(gè))還是全部刪除,都不行,各種都試了。刪除了還是能讀到,就算強(qiáng)制value改了還是能讀到正確的,希望你給看看支支招  回復(fù)  更多評(píng)論   

    # re: Java cookie的使用 2016-05-14 17:31 急急急

    Cookie cookie = new Cookie("user",null);
    cookie.setMaxAge(0);
    response.addCookie(cookie);
    放在logout.jsp,基本就是思路。但是沒(méi)效果,一點(diǎn)擊登錄頁(yè)面直接讀取cookie到主頁(yè)面了  回復(fù)  更多評(píng)論   


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    快樂(lè)每一天!

    Everything is an object!

    常用鏈接

    留言簿(2)

    隨筆檔案

    學(xué)習(xí)網(wǎng)站

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 国产小视频免费观看| 永久免费精品影视网站| 亚洲一级毛片中文字幕| 麻豆亚洲AV永久无码精品久久| 亚洲午夜久久久久久久久久| 红杏亚洲影院一区二区三区| 国产亚洲精品AA片在线观看不加载| 亚洲福利精品一区二区三区| 亚洲 另类 无码 在线| 亚洲第一区精品观看| 亚洲人成无码网站久久99热国产| 亚洲片一区二区三区| 国产亚洲精品高清在线| 国产亚洲精品观看91在线| 久久久久亚洲av无码专区喷水| 亚洲色偷偷偷网站色偷一区| 亚洲三级视频在线观看| 久久亚洲国产最新网站| 亚洲AV无码一区二区三区网址| 日韩色视频一区二区三区亚洲| 免费在线人人电影网| 久久国产乱子伦精品免费午夜| 国产自国产自愉自愉免费24区| 99精品在线免费观看| 91视频国产免费| 四虎永久在线免费观看| av在线亚洲欧洲日产一区二区| 亚洲午夜国产精品无码老牛影视 | 日韩av无码免费播放| 日本在线看片免费| 91香蕉成人免费网站| 日本高清免费aaaaa大片视频| 亚洲第一网站男人都懂| 亚洲s色大片在线观看| 亚洲国产成人精品无码区在线网站| 亚洲首页国产精品丝袜| 视频一区二区三区免费观看| 中文字幕免费在线看线人动作大片 | 中文字幕无码精品亚洲资源网| 久久青草亚洲AV无码麻豆| 精品日韩99亚洲的在线发布|