JSP Cookies

付费节点推荐


免费节点


节点使用教程


Cookies处理

Cookies是存储在客户机的文本文件,它们保存了大量轨迹信息。在servlet技术基础上,JSP显然能够提供对HTTP cookies的支持。

通常有三个步骤来识别回头客:

  • 服务器脚本发送一系列cookies至浏览器。比如名字,年龄,ID号码等等。
  • 浏览器在本地机中存储这些信息,以备不时之需。
  • 当下一次浏览器发送任何请求至服务器时,它会同时将这些cookies信息发送给服务器,然后服务器使用这些信息来识别用户或者干些其它事情。

Jsp保存用户状态的两大机制:

  • Session
  • Cookie

 

Cookies 方法

下表列出了Cookie对象中常用的方法:

序号 方法 & 描述
1 public void setDomain(String pattern)设置cookie的域名,比如bcoder.cn
2 public String getDomain()获取cookie的域名,比如bcoder.cn
3 public void setMaxAge(int expiry)设置cookie有效期,以秒为单位,默认有效期为当前session的存活时间
4 public int getMaxAge()获取cookie有效期,以秒为单位,默认为-1 ,表明cookie会活到浏览器关闭为止
5 public String getName()返回 cookie的名称,名称创建后将不能被修改
6 public void setValue(String newValue)设置 cookie的值
7 public String getValue()获取cookie的值
8 public void setPath(String uri)设置cookie 的路径,默认为当前页面目录下的所有URL,还有此目录下的所有子目录
9 public String getPath()获取cookie 的路径
10 public void setSecure(boolean flag)指明cookie是否要加密传输
11 public void setComment(String purpose)设置注释描述 cookie的目的。当浏览器将cookie展现给用户时,注释将会变得非常有用
12 public String getComment()返回描述cookie目的的注释,若没有则返回null

 

在JSP中创建和使用Cookie

(1)创建一个Cookie对象: 调用Cookie的构造函数,使用一个cookie名称和值做参数,它们都是字符串。
Cookie cookie = new Cookie("key","value");
(2) 设置有效期:调用setMaxAge()函数表明cookie在多长时间(以秒为单位)内有效。下面的操作将有效期设为了24小时.
cookie.setMaxAge(60*60*24);
(3) 将cookie发送至HTTP响应头中:调用response.addCookie()函数来向HTTP响应头中添加cookies.
response.addCookie(cookie);
(4)读取Cookies对象:需要调用request.getCookies()方法来获得一个javax.servlet.http.Cookie对象的数组,然后遍历这个数组,使用getName()方法和getValue()方法来获取每一个cookie的名称和值。
Cookie []cookies=request.getCookies();
(5)使用JSP删除Cookies :删除cookies非常简单。如果您想要删除一个cookie,按照下面给的步骤来做就行了:

  1. 获取一个已经存在的cookie然后存储在Cookie对象中。
  2. 将cookie的有效期设置为0。
  3. 将这个cookie重新添加进响应头中。

Cookies登录页面处理练习

[t]login.jsp[/t]

<%@ page language="java" import="java.util.*,java.net.*" contentType="text/html; charset=utf-8"%>

 

 

用户登录


<%
request.setCharacterEncoding("utf-8");
String username="";
String password = "";
Cookie[] cookies = request.getCookies(); //获取已保存的cookie信息至下面表单中。
if(cookies!=null&&cookies.length>0)
{
for(Cookie c:cookies)
{
if(c.getName().equals("username"))
{
username = URLDecoder.decode(c.getValue(),"utf-8");
}
if(c.getName().equals("password"))
{
password = URLDecoder.decode(c.getValue(),"utf-8");
}
}
}
%>

用户名: "/>
密码:
十天内记住我的登录状态

 

[t]dologin.jsp[/t]

<%@ page language="java" import="java.util.*,java.net.*" contentType="text/html; charset=utf-8"%>

 

 

登录成功


<%
request.setCharacterEncoding("utf-8");
//首先判断用户是否选择了记住登录状态
String[] isUseCookies = request.getParameterValues("isUseCookie");
if(isUseCookies!=null&&isUseCookies.length>0)
{
//把用户名和密码保存在Cookie对象里面
String username = URLEncoder.encode(request.getParameter("username"),"utf-8");
//使用URLEncoder解决无法在Cookie当中保存中文字符串问题
String password = URLEncoder.encode(request.getParameter("password"),"utf-8");

Cookie usernameCookie = new Cookie("username",username);
Cookie passwordCookie = new Cookie("password",password);
usernameCookie.setMaxAge(864000);
passwordCookie.setMaxAge(864000);//设置最大生存期限为10天
response.addCookie(usernameCookie);
response.addCookie(passwordCookie);
}
else
{
//不使用Cookies
Cookie[] cookies = request.getCookies();
if(cookies!=null&&cookies.length>0)
{
for(Cookie c:cookies)
{
if(c.getName().equals("username")||c.getName().equals("password"))
{

c.setMaxAge(0); //设置Cookie失效
response.addCookie(c); //重新保存。
}
}
}
}
%>

查看用户信息

[t]user.jsp[/t]

<%@ page language="java" import="java.util.*,java.net.*" contentType="text/html; charset=utf-8"%>

 

 

 

用户信息


<%
//获取Cookie用户信息
request.setCharacterEncoding("utf-8");
String username="";
String password = "";
Cookie[] cookies = request.getCookies();
if(cookies!=null&&cookies.length>0)
{
for(Cookie c:cookies)
{
if(c.getName().equals("username"))
{
username = URLDecoder.decode(c.getValue(),"utf-8"); //获取username
}
if(c.getName().equals("password"))
{
password = URLDecoder.decode(c.getValue(),"utf-8");
}
}
}
%>

用户名:<%=username %>


密码:<%=password %>

未经允许不得转载:Bcoder资源网 » JSP Cookies

相关推荐

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册