⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bean-cookie.jsp

📁 Spring +Web 的完整 MyEclipse 项目源码,使用者可以作为入门材料可以在此基础上深入学习
💻 JSP
字号:
<%@ page contentType="text/html;charset=GB2312" import="java.util.*"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html>
<head>
<html:base/>
<title>&lt;bean:cookie&gt;</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body bgcolor="white">

<h1>&lt;bean:cookie&gt;</h1>

<p>Cookie是Web服务器留在客户端用于识别客户身份的一种方式。它是在用户访问服务器时,服务器创建并保存在客户端的。待到
用户下一次登录时,服务器可以根据Cookie所保留的信息来"认出"客户。这种技术在如今大量使用浏览器的电子商务应用中得到
相当广泛的应用。虽然使用Cookie以后Web服务器端可以很方便的识别用户,但这也带来了很大的安全问题。因此,大多数的浏览
器都可以选择是否允许保存Cookie。</p>

<p>每个Cookie其实就是一个"名/值"对,通常,在java中使用javax.servlet.http.Cookie来构造一个Cookie对象。以下是一段Cookie
代码示例:</p>
<font class="CodeStyle">
&lt;bean:cookie id="testcookie" name="/taglib1/bean-cookie" value="emptyValue" /&gt;
&lt;%<br>
&nbsp;&nbsp;&nbsp;&nbsp;if (testcookie.getValue().equals("emptyValue")){<br>
&nbsp;&nbsp;&nbsp;&nbsp;javax.servlet.http.Cookie newcookie = new javax.servlet.http.Cookie("/taglib1/bean-cookie","Taglib1 Cookie Value");<br>
&nbsp;&nbsp;&nbsp;&nbsp;newcookie.setComment("This is a new cookie by Taglib1.");<br>
&nbsp;&nbsp;&nbsp;&nbsp;newcookie.setMaxAge(3600);<br>
&nbsp;&nbsp;&nbsp;&nbsp;response.addCookie(newcookie);<br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
%&gt;<br>
新添加的Cookie的值是:&lt;bean:write name="testcookie" property="value"/&gt;<br>
</font>

<p>上面代码的第一句使用到了&lt;bean:cookie&gt;标记,使用它来查找一个Cookie。此处,使用到了&lt;bean:cookie&gt;标记的几个
属性:</p>

<p>name属性:&lt;bean:cookie&gt;使用name属性来指定Cookie的名字。</p>
<p>id属性:在&lt;bean:cookie&gt;标记将name属性中所指定的Cookie读出后,保存在id属性所命名的对象中,这个对象的类型为
javax.servlet.http.Cookie。</p>
<p>value属性:倘若name属性所指定的Cookie不存在,就使用该value属性的值做为其默认值。</p>

<p>这样,上面代码的第一句的含义就很清楚了,它是在查找一个名为/taglib1/bean-cookie的Cookie,如果它存在,就把它赋给一个名
为testcookie的Cookie对象。倘若它不存在,就将默认的value属性的值设为testcookie的value。</p>

<p>在接下来的页面代码中,程序首先把testcookie的值取出来进行判断,倘若它等于"emptyValue",则说明还没有为该用户正式创建过
Cookie。于是便为用户创建Cookie。程序调用javax.servlet.http.Cookie类的构造函数来构造一个name为/taglib1/bean-cookie,value
为"Taglib1 Cookie Value"的Cookie。同时为其设定注释和最大过期时间,在上面的代码中最大过期时间设置为3600秒。然后将创建好的新
Cookie写入服务器返回对象中,在客户端进行保存。当用户第一次访问该页面时,由于Cookie还未建立,所以会调用Cookie的构造函数来
创建一个新的Cookie,但当用户关闭浏览器再次访问时,就会看到新添加的Cookie的值始终不变了,除非已经超过了它的最大过期时间。</p>

<p>以下是代码的运行效果,用户可以尝试关闭该浏览器然后再次打开以观察Cookie的使用效果。</p>

<bean:cookie id="testcookie" name="/taglib1/bean-cookie" value="emptyValue" />
<%
	if (testcookie.getValue().equals("emptyValue")){
		javax.servlet.http.Cookie newcookie = new javax.servlet.http.Cookie("/taglib1/bean-cookie","Taglib1 Cookie Value");
		newcookie.setComment("This is a new cookie by Taglib1.");
		newcookie.setMaxAge(3600);
		response.addCookie(newcookie);
	}
%>
新添加的Cookie的值是:<bean:write name="testcookie" property="value"/>

<p>&lt;bean:cookie&gt;标签还有一个multiple属性,此时,可以读出所有和Cookie的name相匹配的Cookie对象,当然,此时id属性所指定
的就不再是一个Cookie对象了,而是一个Cookie的对象数组。这一点与&lt;bean:parameter&gt;的multiple属性很相似。读者可以自行揣摩。
</p>

<p>

<a href="index.jsp">返回主页面</a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -