其实用JSP操作Cookie是非常简单的,我们来看下面一段JSP程序:
<html>
<head>........(中间略)
</head>
<body>
<%
String cookieName="Sender";
Cookie cookie=new Cookie(cookieName, "Test_Content");
cookie.setMaxAge(10);
response.addCookie(cookie);
%>
........(其他内容)
</body>
</html>
这样我们就设置了一个Cookie,很简单吧?
我们来仔细研究一下这段代码:
Cookie cookie=new Cookie(cookieName, "Test_Content");
这一行建立了一个Cookie对象,初始化有两个参数,第一个参数cookieName定义了Cookie的名字,后一个参数,也是一个字符串,定义了Cookie的内容。也就是我们希望网页在用户的机器上标识的文件内容。
接下来一行:cookie.setMaxAge(10),调用了Cookie中的setMaxAge方法,设定Cookie在用户机器硬盘上的存活期为10秒。一个Cookie在用户的硬盘里面存在的时间并不是无限期的,在建立Cookie对象的时候,我们必须制定Cookie的存活期,超过了这个存活期后,Cookie文件就不再起作用,会被用户的浏览器自行删除。如果我们希望用户在下次访问这个页面的时候,Cookie文件仍然有效而且可以被网页读出来的话,我们可以将Cookie的存活期设得稍微长一些。比如cookie.setMaxAge(365*24*60*60)可以让Cookie文件在一年内有效。
使用cookie对象必须设置其生存周期,否则Cookie将会随着浏览器的关闭而自动消失。
三、 读出Cookie
Cookie文件创建好后,自然还需要我们把它读出来,否则我们不是白费力气吗?接下来我们看看如何读出在用户硬盘上的Cookie。
<html>
<head>........(中间略)
</head>
<body>
<table border=1>
<tr><td>Name</td><td>value</td></tr>
<%
Cookie cookies[]=request.getCookies();
Cookie sCookie=null;
String svalue=null;
String sname=null;
for(int i=0;i<cookies.length;i++)
{
sCookie=cookies[i];
svalue=sCookie.getValue();
sname=sCookie.getName();
%>
<tr><td><%=name%></td><td><%=svalue%></td></tr>
<%
}
%>
</table>
........(其他内容)
</body>
</html>
这一小段JSP文件可以读出用户硬盘上的所有有效的Cookie,也就是仍然在存活期内的Cookie文件。并用表格的形式列出每个Cookie的名字和内容。
我们来逐行分析一下这段代码:
Cookie cookies[]=request.getCookies() 我们用request.getCookies()读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面。
接下来我们用一个循环语句遍历刚才建立的Cookie对象数组,我们用sCookie=cookies[i]取出数组中的一个Cookie对象,然后我们用sCookie.getValue()和sCookie.getName()两个方法来取得这个Cookie的名字和内容。
通过将取出来的Cookie的名字和内容放在字符串变量中,我们就能对其进行各种操作了。在上面的例子里,可通过循环语句的遍历,将所有Cookie放在一张表格中进行显示。
本篇文章来源于 黑基网-中国最大的网络安全站点 原文链接:http://www.hackbase.com/lib/2006-11-28/15556.html
分享到:
相关推荐
在JSP中,`Cookie`是一个关键的概念,它用于在客户端存储少量信息,以便在用户浏览网站时跟踪和维护状态。 **Cookie的基本概念:** Cookie是由服务器端生成,发送到浏览器,并由浏览器保存的一小段文本信息。每当...
- 设置合适的Cookie有效期,过期后自动登出,增加安全性。 - 使用HTTPS协议加密传输Cookie,防止中间人攻击。 - 对Session ID进行安全哈希处理,防止被预测或重放攻击。 ### 5. 扩展——Session与Cookie比较 - ...
例如,如果Cookie未设置为HttpOnly,它可能被JavaScript脚本读取,增加跨站脚本攻击(XSS)的风险。因此,推荐设置`cookie.setHttpOnly(true)`来防止这种情况。 4. **隐私策略**:由于Cookie涉及用户隐私,开发者...
3. **更新计数**:如果找到了对应的Cookie,就将其值加1,表示刷新次数增加。 ```java if (refreshCountCookie != null) { int currentValue = Integer.parseInt(refreshCountCookie.getValue()); ...
当用户访问`test.jsp`时,JSP页面会加载JavaBean实例,读取`lyfcount.txt`中的计数值,增加一次计数,然后将新值写回到文件中。同时,页面会显示更新后的访问次数。 #### 结论 通过上述步骤,我们可以看到,使用...
在Web开发中,"Jsp+Servlet+Cookie"是一个常见的技术组合,用于构建动态、交互式的网站应用。在这个实例中,我们将深入探讨如何利用这些技术实现记住密码、自动登录、防止表单重复提交以及记录登录次数的功能。 ...
Secure标志确保Cookie只在HTTPS连接上传输,增加安全性。 7. **Cookie的应用**:除了会话管理,Cookie还常用于个性化推荐、网站统计、记住用户偏好等。例如,购物网站的购物车功能,通过Cookie保存用户添加的商品,...
为了执行一个线程安全的JSP,只需增加以下指令:。这将告诉JSP引擎该页面不是线程安全的,从而避免了多线程问题。 3、JSP 如何处理 HTML FORM 中的数据? JSP可以通过内置的request对象来处理HTML FORM中的数据,...
为了确保jsp的线程安全,可以增加如下指令:。这样可以确保jsp在多线程环境中安全运行。 3.jsp处理HTML FORM中的数据 jsp可以使用内置的request对象来处理html表单中的数据,例如:("item"); int howMany = new ...
在IT行业中,尤其是在Web开发领域,Cookie、Servlet和JSP是三个非常重要的概念。这篇讨论主要聚焦于如何使用这些技术来实现用户登录并记录登录次数的功能。以下是对这些知识点的详细解释: **Cookie**: Cookie是一...
9. 在JSP中如何删除一个COOKIE? <%Cookie killMyCookie = new Cookie("mycookie", null);killMyCookie.setMaxAge(0);killMyCookie.setPath("/");response.addCookie(killMyCookie);%> 10. 在一个JSP的请求处理中...
// 在JSP页面中获取或设置Cookie Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if ("visitCount".equals(cookie.getName())) { int count = Integer....
这些JavaBeans可以通过JSP的`<jsp:useBean>`指令引入,并通过`jsp:setProperty`和`jsp:getProperty`标签与页面交互。 安全方面,系统可能需要考虑防止重复投票、确保数据完整性和一致性等问题。这可能需要使用...
这个ID会被存储在用户的浏览器cookie中,每次用户发送请求时,都会携带这个ID,让服务器识别出是哪个用户。 3. **购物车实现**: 在这个项目中,购物车的每个条目可能包含商品ID、数量等信息。当用户选择添加商品...
3. **服务器端逻辑**:接收到用户投票后,JSP页面可以调用JavaBeans(也称组件)来进行业务逻辑处理,如增加投票计数、验证用户投票合法性等。JavaBeans是一个符合JavaBean规范的Java类,封装了特定的功能,便于重用...
通过研究这个压缩包内的源代码,你可以深入理解如何在JSP环境中实现用户自动登录功能,包括如何使用Cookie、Session,以及如何处理相关的安全问题。这将有助于提升你在Web开发中的技能和实践经验。
在JSP页面中,你可以使用`<jsp:useBean>`标签创建一个计数器bean,然后在`<jsp:setProperty>`中增加计数。这可能包括以下步骤: - 定义一个Java类(例如CounterBean),包含一个计数变量和增加计数的方法。 - 在...
"jsp刷新不变计数器"指的是在使用JavaServer Pages (JSP)技术构建的网页中,实现的一种即使页面被刷新,计数也不会增加的计数器机制。这种计数器的设计目的是为了确保每次实际的独立访问被准确地记录,而不会因为...
【标题】"一个简单的投票程序(JSP版)"所涉及的知识点主要集中在Java Web开发领域,具体包括Servlet和JSP技术的使用。以下是对这些技术及其在该程序中的应用进行的详细解释: 1. **Servlet**:Servlet是Java编程语言...
7. **JavaScript增强**:除了JSP和CSS,还可以利用JavaScript增加交互性,如表单验证、提示信息动态显示、登录动画效果等,提高用户体验。 8. **错误处理和反馈**:良好的用户体验还包括清晰的错误提示。如果用户名...