servlet中Cookie的使用

Cookie在各种wab的开发中是非常的重要的,它主要是用来在客户端,也就是浏览器端保存一些数据,这样在下一次用户通过该浏览器来访问的时候,它会先从Cookie里面读取文件的信息,这就是一些网站记住密码等等的实现。

Cookie只能是表示key-value对,这个key-value对由Cookie名和Cookie值来组成。web服务器可以向浏览器发送多个Cookie,但是每一个Cookie的大小一般被限制为4k。

在servlet中,通过java.servlet.http.Cookie类来封装一个Cookie消息,在HttpServletResponse接口定义了一个addCookie来向浏览器发送Cookie消息。定义了getCookies来读取浏览器向服务器发送的Cookie

Cookie里面的常用重要方法:

1.getName();获得返回的Cookie的名称。

2.setValue和getValue,分别用来设置Cookie的值和获取 它的值。

3.setMaxAge()和getMaxAge();分别用来设置和获取Cookie的有效时间。

4.setPath()和getPath();分别是设置和获得Cookie的有效路径,默认是当前访问的servlet和其子路径有效。

设置cookie的代码:

—————————————————————————————–

package ynu.sanwen.gagaj2ee;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SaveCookie extends HttpServlet {

private static final long serialVersionUID = 1269086488283563785L;

@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType(“text/html;charset=utf-8″);
Cookie tempCookie=new Cookie(“temp”,”980502568″);
tempCookie.setMaxAge(-1);//-1是默认值
response.addCookie(tempCookie);

Cookie cookie=new Cookie(“coockie”, “sanwen”);
cookie.setMaxAge(0);//这个使用之后被删除
response.addCookie(cookie);

String user=request.getParameter(“user”);
if(user!=null){
Cookie userCookie=new Cookie(“user”,user);
userCookie.setMaxAge(60*60*24);
response.addCookie(userCookie);
}

RequestDispatcher readCookie=getServletContext().getRequestDispatcher(“/readCookie.do”);
readCookie.include(request, response);
}

}

—————————————————————————————–

读取cookie的代码:

—————————————————————————————–

package ynu.sanwen.gagaj2ee;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ReadCookie extends HttpServlet {

private static final long serialVersionUID = 8711574849875795537L;

@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out=resp.getWriter();
Cookie[] cookies=req.getCookies();
String tempCoockie=null;
String cookie=null;
String user=null;
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
Cookie cookieTemp=cookies[i];
if(cookieTemp.getName().equals(“temp”)){
tempCoockie=cookieTemp.getValue();
}
if(cookieTemp.getName().equals(“cookie”)){
cookie=cookieTemp.getValue();
}
if(cookieTemp.getName().equals(“user”)){
user=cookieTemp.getValue();
}
}
}

if(tempCoockie!=null){
out.println(“tempCoockie 不为空”+tempCoockie+”<br/>”);
}else{
out.println(“tempCoockie 没设置<br/>”);
}

if(cookie!=null){
out.println(“cookie 不为空”+cookie+”<br/>”);
}else{
out.println(“cookie 没设置<br/>”);
}

if(user!=null){
out.println(“user 不为空”+user+”<br/>”);
}else{
out.println(“user 没设置<br/>”);
}
}

}

—————————————————————————————————

查看效果:

共有 0 条评论

Top