Latest web development tutorials

JSP معالجة كوكي

ملف تعريف الارتباط هو ملف نصي المخزنة في العميل، وأنها توفر الكثير من المعلومات المسار. في أساس تكنولوجيا بريمج، التخطيط الاستراتيجي المشترك على ما يبدو أن تكون قادرة على تقديم الدعم لملفات تعريف الارتباط HTTP.

عادة هناك ثلاث خطوات لتحديد تكرار الزوار:

  • النصي الخادم بإرسال سلسلة من الكعكة إلى المتصفح. مثل الاسم والعمر ورقم الهوية، الخ
  • المتصفحات تخزين هذه المعلومات على الجهاز المحلي، للتحضير لحالات الطوارئ.
  • في المرة القادمة المتصفح يرسل أي طلب إلى الملقم، كما سيتم إرسالها إلى خادم معلومات ملف تعريف الارتباط، ويستخدم خادم هذه المعلومات لتعريف المستخدم أو أن تفعل بعض الأشياء الأخرى.

وهذا الفصل يعلمك كيفية تعيين أو إعادة تعيين طرق الكعكة، وكيفية الوصول إليها وكيفية إزالتها.

JSP كوكي تجهيز احتياجات ترميز الصيني وفك شفرة، على النحو التالي:

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

تحليل كوكي

وعادة ما يتم وضع كوكي (على الرغم من أن جافا سكريبت يمكن وضعها مباشرة في المتصفح browser) في معلومات رأس HTTP. JSP، تعيين رأس الكعكة لإرسال المعلومات التالية إلى الملقم:

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

كما ترون، يحتوي على رأس تعيين ملف تعريف الارتباط زوج قيمة المفتاح، وهو توقيت غرينتش (غرينتش)، والمسار، واسم النطاق. يتم ترميز زوج قيمة المفتاح كما هو محدد. صحة الحقل هي الأوامر التي تخبر المتصفح بعد وقت ما يمكنك إزالة هذه الكعكة.

إذا تم تكوين المستعرض الخاص بك لتخزين ملفات تعريف الارتباط، ثم فإنه سيتم حفظ المعلومات حتى تنتهي. إذا كان المستخدم بزيارة أي صفحة تطابق مسار الكوكي واسم المجال، ثم المتصفح سيتم إعادة يرسل ملف تعريف الارتباط مرة أخرى إلى الخادم. رأس الجانب متصفح يبدو مثل هذا:

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

مخطوطات التخطيط الاستراتيجي المشترك للوصول إلى ملف تعريف الارتباط بواسطة getCookies الكائن الطلب) طريقة، والتي ترجع صفيف من الكائنات كوكي (.


بريمج طرق كوكي

يسرد الجدول التالي الكائنات كوكي الأساليب المستخدمة شيوعا:

لا. طريقة ووصف
1 setDomain الفراغ الجمهور (نمط سلسلة)

تعيين نطاق ملفات تعريف الارتباط، مثل w3cschool.cc
2 جمهور سلسلة getDomain ()

الحصول على نطاق الكعكة، مثل w3cschool.cc
3 setMaxAge الفراغ الجمهور (الباحث انتهاء)

وضع انقضاء كوكي، في ثوان، الافتراضي هو صالح للدورة الحالية للبقاء الوقت
4 getMaxAge كثافة العمليات العامة ()

الحصول على انتهاء الكعكة، في ثوان، الافتراضي هو -1، مشيرا إلى أن الكعكة سوف ترقى إلى المتصفح مغلق
5 جمهور سلسلة getName ()

يعود اسم الكعكة، لا يمكن تغيير اسم بعد إنشائه
6 setValue باطلة العامة (سلسلة NEWVALUE)

تعيين قيمة ملف تعريف الارتباط
7 جمهور سلسلة getValue ()

يحصل على قيمة الكعكة
8 setPath الفراغ الجمهور (سلسلة اوري)

تحديد مسار ملف تعريف الارتباط، الافتراضي هو عنوان URL الحالي لجميع دليل الصفحات، وجميع الدلائل تحت
9 جمهور سلسلة getPath ()

الحصول على مسار الكوكي
10 setSecure الفراغ الجمهور (العلم منطقية)

للإشارة إلى ما إذا كان تعريف ارتباط مشفر نقل
11 setComment الفراغ الجمهور (الغرض سلسلة)

وضع تعليق على وصف الغرض من الكعكة. عندما قدم المتصفح browser للمستخدم، وتعليق تكون مفيدة جدا
12 جمهور سلسلة getComment ()

إرجاع تعليق يصف الغرض من الكعكة، أو لاغية إذا لم يكن هناك

إعدادات ملفات تعريف الارتباط باستخدام JSP

ضبط استخدام التخطيط الاستراتيجي المشترك الكعكة يتكون من ثلاث خطوات:

(1) إنشاء كائن كوكي: استدعاء كوكي منشئ باستخدام اسم الكعكة وقيمة كمعلمات، فهي سلاسل.

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

مما لا شك فيه أن نأخذ في الاعتبار أن أسماء وقيم لا يمكن أن تحتوي على مسافات أو الأحرف التالية:

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

(2) وضع صالح: دعوة setMaxAge () إلى وظيفة متى الكوكي هو صالح داخل (في ثواني). وفيما يلي مجموعة صالحة لمدة 24 ساعة.

cookie.setMaxAge(60*60*24); 

(3) يرسل ملف تعريف الارتباط إلى رؤوس استجابة HTTP: استدعاء دالة response.addCookie () للرد على رأس HTTP لإضافة الكعكة.

response.addCookie(cookie);

أمثلة تجريبي

كود ملف الإنجليزية main.jsp على النحو التالي:

<%@ 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>

ما يلي هو شكل HTML بسيط عبر طريقة GET لتقديم البيانات إلى ملف الإنجليزية main.jsp العميل وتعيين ملف تعريف الارتباط:

<!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>

حفظ الكود أعلاه في ملف test.htm.

وضع الملف في الدليل الحالي في إطار مشروع WebContent التخطيط الاستراتيجي المشترك (مع الإنجليزية main.jsp نفس الدليل).

بالانتقال إلى http: // المضيف المحلي: 8080 / testjsp / test.html الإنجليزية main.jsp تقديم بيانات النموذج إلى ملف المتحركة التجريبي هو مبين أدناه:

حاول كتابة "اسم الموقع" و "URL"، ثم تضغط على زر إرسال، فإنه سيتم عرض "اسم الموقع" و "URL" في الشاشة، وتعيين "اسم الموقع" و "URL" اثنين من الكعكة.


استخدام التخطيط الاستراتيجي المشترك لقراءة كوكي

تريد قراءة ملفات تعريف الارتباط، سوف تحتاج إلى استدعاء request.getCookies () طريقة للحصول على مجموعة من وجوه javax.servlet.http.Cookie، ومن ثم اجتياز مجموعة باستخدام getName () طريقة وطريقة getValue () للحصول على كل الكعكة اسم وقيمة.

دعونا نقرأ المثال الأخير من الكعكة، وفيما يلي كود ملف cookie.jsp:

<%@ 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>

بعد وصول المتصفح، خرج هو:


استخدام التخطيط الاستراتيجي المشترك حذف كوكي

إزالة الكعكة هو بسيط جدا. إذا كنت ترغب في حذف ملف تعريف ارتباط، لمتابعة الخطوات التالية للقيام على الخط:

  • كونه الكعكة القائمة ثم يتم تخزينها في كائن كوكي.
  • سيتم تعيين ملف تعريف الارتباط إلى 0.
  • وستضاف هذه الكعكة مرة أخرى في رأس استجابة.

أمثلة تجريبي

الإجراء التالي على حذف ملف تعريف الارتباط المسمى "اسم" عندما كنت في الثانية cookie.jsp المدى، سوف يكون اسم فارغة.

<%@ 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>

الوصول إليها من خلال المتصفح، والناتج هو:

آخر زيارة HTTP: // المضيف المحلي: 8080 / testjsp / cookie.jsp، وسوف تحصل على النتائج التالية:

يمكنك مشاهدة عرض اسم = "70٪" "اسم" من ذهب ملفات تعريف الارتباط.

يمكنك أيضا حذف ملفات تعريف الارتباط في المتصفح الخاص بك يدويا. متصفح إنترنت إكسبلورر من خلال النقر على القائمة أدوات، ثم حدد خيارات إنترنت، انقر فوق حذف ملفات تعريف الارتباط، يمكنك حذف جميع ملفات تعريف الارتباط.