Latest web development tutorials

JSP Cookie Processing

Cookie to plik tekstowy przechowywany w kliencie, a oni zaoszczędzić sporo informacji o utworze. W bazie technologii serwletów, JSP podobno być w stanie zapewnić obsługę plików cookie HTTP.

Zazwyczaj istnieją trzy kroki w celu ustalenia stałych czytelników:

  • Skrypt serwer wysyła serię plików cookie w przeglądarce. Takie jak imię i nazwisko, wiek, numer identyfikacyjny itp
  • Przeglądarki przechowywanie tych informacji na komputerze lokalnym, w celu przygotowania na wypadek nieprzewidzianych okoliczności.
  • Następnym razem, gdy przeglądarka wysyła każde żądanie do serwera, to będą również przesyłane do serwera informacje, ciasteczka, a serwer wykorzystuje te informacje do identyfikacji użytkownika lub zrobić kilka innych rzeczy.

Ten rozdział nauczy Cię jak ustawić lub zresetować metody cookies i jak z nich korzystać i jak je usunąć.

JSP Cookie przetwarzanie potrzeb chińskiego kodowania i dekodowania, co następuje:

String   str   =   java.net.URLEncoder.encode("中文");            //编码
String   str   =   java.net.URLDecoder.decode("编码后的字符串");   // 解码

Analiza Cookie

Cookie jest zazwyczaj (choć JavaScript można ustawić bezpośrednio w pliku cookie przeglądarki) w informacji nagłówka HTTP. JSP, należy ustawić nagłówek pliku cookie, aby wysłać następujące informacje do serwera:

HTTP/1.1 200 OK
Date: Fri, 04 Feb 2015 21:03:38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name=w3big; expires=Friday, 04-Feb-07 22:03:38 GMT; 
                 path=/; domain=w3big.com
Connection: close
Content-Type: text/html

Jak widać, nagłówek Set-Cookie zawiera parę klucz-wartość, a GMT (Greenwich Mean) czas, ścieżkę, nazwę domeny. parę klucz-wartość jest kodowana jako URL. Ważność tej dziedzinie jest polecenie, które informuje przeglądarkę, po jakim czasie można usunąć ten plik.

Jeśli Twoja przeglądarka jest skonfigurowana do przechowywania plików cookie, wtedy zapisać informacje do czasu ich wygaśnięcia. Jeśli użytkownik odwiedza każda strona dopasować ścieżkę plików cookie i nazwę domeny, a następnie przeglądarka będzie ponownie wysłać plik cookie do serwera. Przeglądarka stronie nagłówek wygląda tak:

GET / HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc)
Host: zink.demon.co.uk:1126
Accept: image/gif, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: name=xyz

skrypty JSP, aby uzyskać dostęp do plików cookie przez getCookies Object Request () metoda, która zwraca tablicę obiektów Cookie.


Metody Servlet Cookie

Poniższa tabela zawiera listę obiektów Cookie powszechnie stosowane metody:

Nie. Sposób i opis
1 public void setDomain (wzór String)

Ustaw domenę pliku cookie, takie w3cschool.cc
2 public String getDomain ()

Uzyskaj domenę pliku cookie, takie w3cschool.cc
3 public void setMaxAge (int ważności)

Ustawianie wygaśnięcia ciasteczka w sekundach, domyślnie jest to ważne dla bieżącej sesji czasu przeżycia
4 public int getMaxAge ()

Uzyskaj upływie ciasteczka w sekundach, domyślnie jest -1, co oznacza, że ​​ciasteczka będą żyć aż do przeglądarki jest zamknięty
5 public String getName ()

Zwraca nazwę pliku cookie, nazwa nie może zostać zmieniona po jej utworzeniu
6 public void setValue (String nowaWartość)

Ustaw wartość cookie
7 public String getValue ()

Pobiera wartość cookie
8 public void setPath (String uri)

Ustawianie ścieżki pliku cookie, domyślnie jest aktualny adres URL dla wszystkich stron katalogu i wszystkich podkatalogach
9 public String getPath ()

Uzyskaj ścieżkę plików cookie
10 public void setSecure (boolean flag)

Aby wskazać, czy ciasteczka szyfrowana transmisja
11 public void setComment (cel String)

Ustawianie komentarz opisać cel cookie. Gdy przeglądarka ciasteczka prezentowane użytkownikowi, komentarze będą bardzo przydatne
12 public String getComment ()

Zwraca komentarz opisujący cel cookies lub null, jeśli nie ma to

Ustawienia cookies za pomocą JSP

Użyj JSP ustawić ciasteczko składa się z trzech etapów:

(1) Tworzenie obiektu Cookie: wywołanie konstruktora Cookie przy użyciu nazwy plików cookie i wartości jako parametry, są łańcuchy.

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

Pamiętaj, aby pamiętać, że nazwy i wartości nie może zawierać spacji ani następujących znaków:

[ ] ( ) = , " / ? @ : ;

(2) Ustawienie to jest ważne: Call setMaxAge () funkcja wskazuje, jak długo plik cookie jest ważny (w sekundach). Poniżej znajdują się przykłady na okres 24 godzin.

cookie.setMaxAge(60*60*24); 

(3) wysyła cookie do nagłówków odpowiedzi HTTP: Wywołanie funkcji response.addCookie () w celu odpowiedzi na nagłówku HTTP, aby dodać plik cookie.

response.addCookie(cookie);

Przykłady Demo

Kod pliku main.jsp przedstawia się następująco:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.net.*" %>
<%
   // 编码,解决中文乱码   
   String str = URLEncoder.encode(request.getParameter("name"),"utf-8");  
   // 设置 name 和 url cookie 
   Cookie name = new Cookie("name",
		   str);
   Cookie url = new Cookie("url",
			  request.getParameter("url"));

   // 设置cookie过期时间为24小时。
   name.setMaxAge(60*60*24); 
   url.setMaxAge(60*60*24); 

   // 在响应头部添加cookie
   response.addCookie( name );
   response.addCookie( url );
%>
<html>
<head>
<title>设置 Cookie</title>
</head>
<body>

<h1>设置 Cookie</h1>

<ul>
<li><p><b>网站名:</b>
   <%= request.getParameter("name")%>
</p></li>
<li><p><b>网址:</b>
   <%= request.getParameter("url")%>
</p></li>
</ul>
</body>
</html>

Poniżej znajduje się prosty formularz HTML za pomocą metody GET do przekazywania danych do pliku main.jsp klient i ustawić ciasteczko:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>本教程(w3big.com)</title>
</head>
<body>

<form action="main.jsp" method=GET>
站点名: <input type="text" name="name">
<br />
网址: <input type="text" name="url" />
<input type="submit" value="提交" />
</form>

</body>
</html>

Zapisz powyższy kod HTML do pliku test.htm.

Umieść plik w bieżącym katalogu w ramach projektu WebContent jsp (z main.jsp tym samym katalogu).

Odwiedzając http: // localhost: 8080 / testjsp / test.html main.jsp przedstawić dane formularza do pliku, pokazano demo Gif poniżej:

Spróbuj wpisać "Nazwa witryny" i "URL", a następnie kliknij w przycisk, wyświetli się "Nazwa witryny" i "URL" w ekranie i ustaw "Nazwa witryny" i "URL" dwa ciasteczka.


Użyj JSP do zapoznania Cookie

Chcesz przeczytać cookie, będzie trzeba zadzwonić request.getCookies () aby uzyskać tablicę obiektów javax.servlet.http.Cookie, a następnie przejście przez macierz pomocą getName () metoda i sposób getValue (), aby uzyskać każdy plik cookie nazwa i wartość.

Przeczytajmy ostatnim przykładem cookie, co następuje cookie.jsp kod pliku:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.net.*" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>获取 Cookie</title>
</head>
<body>
<%
   Cookie cookie = null;
   Cookie[] cookies = null;
   // 获取cookies的数据,是一个数组
   cookies = request.getCookies();
   if( cookies != null ){
      out.println("<h2> 查找 Cookie 名与值</h2>");
      for (int i = 0; i < cookies.length; i++){
         cookie = cookies[i];
        
         out.print("参数名 : " + cookie.getName());
         out.print("<br>");
         out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>");
         out.print("------------------------------------<br>");
      }
  }else{
      out.println("<h2>没有发现 Cookie</h2>");
  }
%>
</body>
</html>

Po dostępu do przeglądarki, wyjście jest:


Użyj JSP Usuń Cookie

Usuń cookies jest bardzo prosta. Jeśli chcesz usunąć pliki cookie, aby wykonać poniższe kroki, aby zrobić na linii:

  • Będąc istniejący plik cookie jest przechowywany w obiekcie Cookie.
  • Plik cookie będzie ustawiony na 0.
  • To ciasteczko zostanie ponownie dodany do nagłówka odpowiedzi.

Przykłady Demo

Poniższa procedura usuwa plik cookie o nazwie "nazwa", gdy jesteś drugi bieg cookie.jsp, nazwa będzie null.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.net.*" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>获取 Cookie</title>
</head>
<body>
<%
   Cookie cookie = null;
   Cookie[] cookies = null;
   // 获取当前域名下的cookies,是一个数组
   cookies = request.getCookies();
   if( cookies != null ){
	  out.println("<h2> 查找 Cookie 名与值</h2>");
      for (int i = 0; i < cookies.length; i++){
         cookie = cookies[i];
         if((cookie.getName( )).compareTo("name") == 0 ){
            cookie.setMaxAge(0);
            response.addCookie(cookie);
            out.print("删除 Cookie: " + 
            cookie.getName( ) + "<br/>");
         }
         out.print("参数名 : " + cookie.getName());
         out.print("<br>");
         out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>");
         out.print("------------------------------------<br>");
      }
  }else{
	  out.println("<h2>没有发现 Cookie</h2>");
  }
%>
</body>
</html>

Dostęp poprzez przeglądarkę, wyjście jest:

Kolejna wizyta http: // localhost: 8080 / testjsp / cookie.jsp, otrzyma następujące wyniki:

Możesz zobaczyć nazwę width = "70%" "name" cookie zniknęła.

Można również ręcznie usunąć pliki cookie w przeglądarce. Przeglądarka IE, klikając w menu Narzędzia, a następnie wybierz Opcje internetowe kliknij przycisk Usuń pliki cookie, można usunąć wszystkie pliki cookie.