導航:首頁 > 編程語言 > java中cookie

java中cookie

發布時間:2023-07-21 02:47:23

A. 請問java後端通常如何處理cookie

親,Cookie可以將用戶信息及一些其他信息保存到本地(例如瀏覽器),能夠保證與session的跟蹤對接以及辨別用戶身份。

  • 親如果學ava後端通常如何處理cookie的話可以到雲南新華電腦學院來看看,希望可以幫到親

    B. 怎麼用java獲取cookie

    ookie實際上是一個存在你硬碟里的數據,但是這些數據很特殊,只能由web應用提交給瀏覽器幫助存儲,並且我們還能讀取瀏覽器存在本地的cookie
    web應用一般只在cookie中存儲一些用戶信息等少量且暫時的數據,數據量大則不適合存儲在cookies
    ava通過httpServletRequest介面來訪問瀏覽器請求中的cookies數據(這里先了解一下cookies來龍去脈,代碼待會一並給出)
    每個cookie有兩個屬性:鍵 ,值(無特定格式字元串,所以可以diy存數據,不過要注意URL編碼問題,編碼問題待會和代碼一同講)
    如果我們需要存儲新的cookie我們可以new一個cookie實例 並通過httpservletRsponse提交到瀏覽器,進而存儲到本地

    C. java 怎麼設置cookie

    java設置cookie是通過 Servlet 設置的。
    通過 Servlet 設置 Cookies 包括三個步驟:
    (1) 創建一個 Cookie 對象:您可以調用帶有 cookie 名稱和 cookie 值的 Cookie 構造函數,cookie 名稱和 cookie 值都是字元串。
    Cookie cookie = new Cookie("key","value");

    請記住,無論是名字還是值,都不應該包含空格或以下任何字元:
    [ ] ( ) = , " / ? @ : ;

    (2) 設置最大生存周期:您可以使用 setMaxAge 方法來指定 cookie 能夠保持有效的時間(以秒為單位)。下面將設置一個最長有效期為 24 小時的 cookie。
    cookie.setMaxAge(60*60*24);

    (3) 發送 Cookie 到 HTTP 響應頭:您可以使用 response.addCookie 來添加 HTTP 響應頭中的 Cookies,如下所示:
    response.addCookie(cookie);

    (4)完整實例:
    // 導入必需的 java 庫
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;

    // 擴展 HttpServlet 類
    public class HelloForm extends HttpServlet {

    public void doGet(HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException
    {
    // 為名字和姓氏創建 Cookies
    Cookie firstName = new Cookie("first_name",
    request.getParameter("first_name"));
    Cookie lastName = new Cookie("last_name",
    request.getParameter("last_name"));
    // 為兩個 Cookies 設置過期日期為 24 小時後
    firstName.setMaxAge(60*60*24);
    lastName.setMaxAge(60*60*24);
    // 在響應頭中添加兩個 Cookies
    response.addCookie( firstName );
    response.addCookie( lastName );
    // 設置響應內容類型
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    String title = "設置 Cookies 實例";
    String docType =
    "<!doctype html public \"-//w3c//dtd html 4.0 " +
    "transitional//en\">\n";
    out.println(docType +
    "<html>\n" +
    "<head><title>" + title + "</title></head>\n" +
    "<body bgcolor=\"#f0f0f0\">\n" +
    "<h1 align=\"center\">" + title + "</h1>\n" +
    "<ul>\n" +
    " <li><b>名字</b>:"
    + request.getParameter("first_name") + "\n</li>" +
    " <li><b>姓氏</b>:"
    + request.getParameter("last_name") + "\n</li>" +
    "</ul>\n" +
    "</body></html>");
    }
    }

    D. java操作cookie問題

    建立一個無生命周期的cookie,即隨著瀏覽器的關閉即消失的cookie,代碼如下

    HttpServletRequest request
    HttpServletResponse response
    Cookie cookie = new Cookie("cookiename","cookievalue");
    response.addCookie(cookie);

    下面建立一個有生命周期的cookie,可以設置他的生命周期

    cookie = new Cookie("cookiename","cookievalue");

    cookie.setMaxAge(3600);

    //設置路徑,這個路徑即該工程下都可以訪問該cookie 如果不設置路徑,那麼只有設置該cookie路徑及其子路徑可以訪問

    cookie.setPath("/");
    response.addCookie(cookie);

    下面介紹如何讀取cookie,讀取cookie代碼如下

    Cookie[] cookies = request.getCookies();//這樣便可以獲取一個cookie數組
    for(Cookie cookie : cookies){
    cookie.getName();// get the cookie name
    cookie.getValue(); // get the cookie value
    }

    上面就是基本的讀寫cookie的操作。我們在實際中最好進行一下封裝,比如增加一個cookie,我們關注的是cookie的name,value,生命周期,所以進行封裝一個函數,當然還要傳入一個response對象,addCookie()代碼如下

    /**
    * 設置cookie
    * @param response
    * @param name cookie名字
    * @param value cookie值
    * @param maxAge cookie生命周期 以秒為單位
    */
    public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){
    Cookie cookie = new Cookie(name,value);
    cookie.setPath("/");
    if(maxAge>0) cookie.setMaxAge(maxAge);
    response.addCookie(cookie);
    }

    讀取cookie的時候,為了方便我們的操作,我們希望封裝一個函數,只要我們提供cookie的name,我們便可以獲取cookie的value,帶著這個想法,很容易想到將cookie封裝到Map裡面,於是進行下面的封裝

    /**
    * 根據名字獲取cookie
    * @param request
    * @param name cookie名字
    * @return
    */
    public static Cookie getCookieByName(HttpServletRequest request,String name){
    Map<String,Cookie> cookieMap = ReadCookieMap(request);
    if(cookieMap.containsKey(name)){
    Cookie cookie = (Cookie)cookieMap.get(name);
    return cookie;
    }else{
    return null;
    }
    }

    /**
    * 將cookie封裝到Map裡面
    * @param request
    * @return
    */
    private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){
    Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
    Cookie[] cookies = request.getCookies();
    if(null!=cookies){
    for(Cookie cookie : cookies){
    cookieMap.put(cookie.getName(), cookie);
    }
    }
    return cookieMap;
    }

    E. 怎麼在java中使用cookie

    1、Cookie的來歷與作用
    Cookie是WEB伺服器通過瀏覽器保存在WWW用戶端硬碟上的一個文本文件,這個文本文件中包含了文本信息。

    文本信息的內容以「名/值」對(key/value)的形式進行存儲。

    可以讓WEB開發者通過程序讀寫這個文本文件。

    XP中保存Cookie的目錄是「C://Documents
    and Settings\用戶名\Cookies」

    Cookie的作用

    解決瀏覽器用戶與Web伺服器之間無狀態通信。

    2Cookie編程
    //創建對象

    Date
    date = new Date() ;

    Cookie
    c = new Cookie("lastVisited",date.toString()) ;

    //設定有效時間
    以s為單位

    c.setMaxAge(60)
    ;

    //設置Cookie路徑和域名

    c.setPath("/")
    ;

    c.setDomain(".zl.org")
    ; //域名要以「.」開頭

    //發送Cookie文件

    response.addCookie(c)
    ;

    //讀取Cookie

    Cookie
    cookies[] = request.getCookies() ;

    Cookie
    c1 = null ;

    if(cookies
    != null){

    for(int
    i=0;i

    c1
    = cookies[i] ;

    out.println("cookie
    name : " + c1.getName() + " ") ;

    out.println("cookie
    value :" + c1.getValue() + "
    ");

    }

    }

    //修改Cookie

    Cookie
    cookies[] = request.getCookies() ;

    Cookie
    c = null ;

    for(int
    i=0;i

    c
    = cookies[i] ;

    if(c.getName().equals("lastVisited")){

    c.setValue("2010-04-3-28")
    ;

    c.setMaxAge(60*60*12)
    ;

    response.addCookie(c)
    ; //修改後,要更新到瀏覽器中

    }

    }

    //刪除Cookie,(將Cookie的有效時間設為0)

    Cookie
    cookies[] = request.getCookies() ;

    Cookie
    c = null ;

    for(int
    i=0;i

    c
    = cookies[i] ;

    if(c.getName().equals("lastVisited")){

    c.setMaxAge(0);

    response.addCookie(c)
    ;

    }

    }

    4、使用Cookie的注意事項
    ·Cookie的大小和數量是有限制的。

    ·Cookie在個人硬碟上所保存的文本信息是以明文格式進行保存的,沒有任何的加密措施。

    ·瀏覽器用戶可以設定不使用Cookie。

    5、實例:Servlet中的Cookie編程
    cookieInput.html頁面

    SetCookie.java

    GetCookie.java

    cookieInput.html頁面中的參數提交到SetCookie.java中,由SetCookie.java保存在瀏覽器的Cookie中,在SerCookie.java中鏈接到GetCookie.java從而讀取剛剛保存的Cookie。

    SetCookie.java
    :

    public
    void doPost(HttpServletRequest request, HttpServletResponse response)

    throws
    ServletException, IOException {

    response.setContentType("text/html;charset=utf-8");

    PrintWriter
    out = response.getWriter();

    String
    username = request.getParameter("username") ;

    //保存Cookie

    if(username
    !=""){

    Cookie
    c1 = new Cookie("username",username) ;

    SimpleDateFormat
    sdf = new SimpleDateFormat("yyyy-MM-dd") ;

    Cookie
    c2 = new Cookie("lastVisited",sdf.format(new java.util.Date())) ;

    c1.setMaxAge(60*60*60*12*30)
    ;

    c2.setMaxAge(60*60*60*12*30)
    ;

    response.addCookie(c1)
    ;

    response.addCookie(c2)
    ;

    out.println("Cookie保存成功!");

    out.println("

    ")
    ;

    out.println("讀取Cookie") ;

    }else{

    response.sendRedirect("../cookieInput.html")
    ;

    }

    out.flush();

    out.close();

    }
    GetCookie.java:

    public
    void doPost(HttpServletRequest request, HttpServletResponse response)

    throws
    ServletException, IOException {

    response.setContentType("text/html;charset=utf-8");

    PrintWriter
    out = response.getWriter();

    out.println("
    ");
    out.println("");

    out.println("
    ");
    out.println("
    ");

    //讀取Cookie

    Cookie
    cookies[] = request.getCookies() ;

    Cookie
    c = null ;

    if(cookies
    != null){

    for(int
    i=0;i

    c
    = cookies[i] ;

    if(c.getName().equals("username")){

    out.println("用戶名:
    "+c.getValue());

    out.println("
    ");

    }

    if(c.getName().equals("lastVisited")){

    out.println("上次登錄的時間:
    "+c.getValue());

    }

    }

    }else{

    out.println("No
    cookie !");

    }

    out.println("
    ");
    out.println("
    ");
    out.flush();

    out.close();

    }

    閱讀全文

    與java中cookie相關的資料

    熱點內容
    沒加密招標文件 瀏覽:257
    命令來自剃頭的用英語怎麼說 瀏覽:765
    什麼app不花一分錢買東西 瀏覽:373
    布林四線指標源碼 瀏覽:968
    單片機的控制板 瀏覽:218
    襄陽軟體編程 瀏覽:841
    sshpass命令 瀏覽:106
    logo伺服器怎麼下載 瀏覽:508
    如何ftp連接伺服器 瀏覽:674
    creo自動編程 瀏覽:161
    雲伺服器在電腦怎麼開 瀏覽:432
    ipad相冊如何在文件夾中建文件夾 瀏覽:621
    和家親這個app有什麼用 瀏覽:575
    什麼app裡面有種樹打折 瀏覽:374
    編程外掛入門教學 瀏覽:974
    pdf黑白轉彩色 瀏覽:725
    英國投資加密貨幣嗎 瀏覽:887
    看完程序員那麼可愛後的感受 瀏覽:131
    廣播在什麼APP能聽 瀏覽:678
    阿克曼小車連接什麼app 瀏覽:773