在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ Servlet Cookies
Servlet web.xml welcome-file-list
Servlet從數(shù)據(jù)庫讀取記錄性能優(yōu)化
Servlet URL重寫帶參數(shù)
War文件
Web技術基礎
Servlet GenericServlet類
Servlet API
Servlet ServletInputStream類
使用MyEclipse創(chuàng)建Servlet
Servlet增刪改查
Servlet ServletConfig配置信息
Servlet Cookies
Servlet重定向
Servlet生命周期
Servlet HttpSession會話
Servlet HttpServlet類
Servlet注冊表單示例
Servlet表單隱藏字段
Servlet下載文件
Servlet教程
Servlet身份驗證過濾器
Servlet ServletOutputStream類
Servlet HttpSession登錄注銷實例
Servlet啟動時加載
Servlet事件和監(jiān)聽器
使用Eclipse創(chuàng)建Servlet
Servlet ServletContextEvent事件
Servlet HttpSessionEvent統(tǒng)計在線用戶數(shù)實例
Servlet RequestDispatcher請求轉發(fā)
Servlet使用注釋
Servlet過濾器示例
Servlet過慮器
Servlet ServletContext配置信息
Servlet登錄注銷Cookies實例
Servlet工作流程
Servlet會話跟蹤
Servlet登錄實例
Servlet ServletRequest接口
Servlet ServletRequestEvent類和接口
Servlet入門程序
Servlet查詢搜索數(shù)據(jù)示例
Servlet FilterConfig應用示例
Servlet顯示所有頭信息
Servlet屬性設置
使用NetBeans創(chuàng)建Servlet
Servlet接口實現(xiàn)
Servlet上傳文件

Servlet Cookies

Cookie是在多個客戶端請求之間持久存儲的一小段信息。

Cookie具有名稱,單個值和可選屬性,例如注釋,路徑和域限定符,生存周期和版本號。

默認情況下,每個請求都被視為新的請求。在cookie技術中,servlet響應可以添加cookie。 所以cookie存儲在瀏覽器的緩存中。之后,如果用戶發(fā)出請求,默認情況下會帶上cookie。 因此,我們就可以知道用戶舊用戶。

Servlet中有2種類型的Cookie。

  • 非持久性cookie
  • 持久性Cookie

非持久性cookie

  • 它僅適用于單個會話。當用戶關閉瀏覽器時都會刪除它。

持久性Cookie

  • 它對多個會話有效。當用戶關閉瀏覽器時也不會刪除它。只有在用戶注銷或注銷時才被刪除。
  • 維持狀態(tài)最簡單的技術。
  • Cookie在客戶端維護。
  • 如果從瀏覽器中禁用Cookie,則無法正常工作。
  • 只能在Cookie對象中設置文本信息。

javax.servlet.http.Cookie類提供了使用Cookie的功能。它為Cookie提供了很多有用的方法。

Cookie類的構造方法

構造方法 描述
Cookie() 構建一個cookie。
Cookie(String name, String value) 構造具有指定名稱和值的cookie。

Cookie類的方法

下面中給出了一些常用的Cookie類方法。

方法 描述
public void setMaxAge(int expiry) 設置cookie的最大生命周期(以秒為單位)。
public String getName() 返回cookie的名稱。創(chuàng)建后無法更改名稱。
public String getValue() 返回cookie的值。
public void setName(String name) 更改cookie的名稱。
public void setValue(String value) 更改cookie的值。

使用Cookies所需的其他方法

要添加cookie或從cookie獲取值,需要其他接口提供的一些方法。它們分別是:

  • public void addCookie(Cookie ck)HttpServletResponse接口的方法用于在響應對象中添加cookie。
  • public Cookie[] getCookies()HttpServletRequest接口的方法用于從瀏覽器返回所有的cookie。

下面來看看創(chuàng)建cookie的簡單代碼。

Cookie ck=new Cookie("user","maxsu jaiswal");//creating cookie object  
response.addCookie(ck);//adding cookie in the response

如何刪除Cookie?

下面來看看刪除cookie的簡單代碼。它主要用于注銷或注銷用戶。

Cookie ck=new Cookie("user","");//deleting value of cookie  
ck.setMaxAge(0);//changing the maximum age to 0 seconds  
response.addCookie(ck);//adding cookie in the response

下面來看看簡單的代碼用來獲取所有的cookies。

Cookie ck[]=request.getCookies();  
for(int i=0;i<ck.length;i++){  
    out.print("<br>"+ck[i].getName()+" "+ck[i].getValue());//printing name and value of cookie  
}

在這個例子中,我們將用戶名稱(username)存儲在cookie對象中,并在另一個servlet中訪問它,會話對應于特定用戶。所以如果從多個瀏覽器訪問指定cookie名稱,那么將得到不同的值。

打開Eclipse,創(chuàng)建一個動態(tài)Web項目:CookieServlet,其完整的項目結構如下 -

以下是幾個主要代碼文件。

文件:index.html -

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Cookies In Servlet</title>
</head>
<body>
    <div style="text-align:center;">
        <form action="servlet1" method="post">
            用戶名:<input type="text" name="username" value="Maxsu"/><input
                type="submit" value="提交" />
        </form>
    </div>
</body>
</html>

文件:FirstServlet.java -

package com.yiibai;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class FirstServlet extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse response) {
        try {
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();

            String name = request.getParameter("username");
            String username = new String(name.getBytes("ISO-8859-1"),"utf-8");

            out.print("<!DOCTYPE html>\r\n" + 
                    "<html>\r\n" + 
                    "<head>\r\n" + 
                    "<meta charset=\"UTF-8\"><body>");
            out.print("歡迎您, " + username);

            Cookie ck = new Cookie("uname", username);// creating cookie object
            response.addCookie(ck);// adding cookie in the response

            // creating submit button

            out.print("<form action='servlet2' method='post'>");
            out.print("<p>Cookies已在瀏覽器中設置,現(xiàn)在跳轉到第二個Servlet中讀取Cookies的值。</p>");
            out.print("<input type='submit' value='提交到第二個Servlet'>");
            out.print("</form>");

            out.close();

        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

文件:SecondServlet.java -

package com.yiibai;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class SecondServlet
 */
public class SecondServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response) {
        try {
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            Cookie ck[] = request.getCookies();
            out.print("Hello " + ck[0].getValue());
            out.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }

}

文件:web.xml -

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>CookieServlet</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>FServlet</servlet-name>
    <servlet-class>com.yiibai.FirstServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>FServlet</servlet-name>
    <url-pattern>/servlet1</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>SServlet</servlet-name>
    <servlet-class>com.yiibai.SecondServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>SServlet</servlet-name>
    <url-pattern>/servlet2</url-pattern>
  </servlet-mapping>
</web-app>

在完成上面代碼編寫后,部署這個Web應用程序,打開瀏覽器訪問URL: http://localhost:8080/CookieServlet , 如是程序沒有錯誤,應該會看到以下結果 -

提交后,看到以下界面 -

在第二個Servlet中讀取的Cookies值如下 -


上一篇:Servlet上傳文件下一篇:Web技術基礎