当前位置: 代码迷 >> Web前端 >> 深入感受JavaWeb开发内幕――由创建Cookie到Cookie的简单应用
  详细解决方案

深入感受JavaWeb开发内幕――由创建Cookie到Cookie的简单应用

热度:93   发布时间:2012-11-10 10:48:51.0
深入体验JavaWeb开发内幕――由创建Cookie到Cookie的简单应用
MakeCookie .java

package net.csdn.cookie;import java.io.IOException;
import java.io.PrintWriter;import java.util.Date;
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 MakeCookie extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
 makeCookie(response);}private void makeCookie(HttpServletResponse response)
throws IOException {
//为客户端指定显示编码
  response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();
//创建一个Cookie实例名字为"username",值为"lijizh1013"Cookie cookie = new Cookie("username","lijizh1013");
//为Cookie设置存活时间,默认的为到该浏览器关闭
 cookie.setMaxAge(24*3600);
//为Cookie设置路径
 cookie.setPath("/Cookie/MakeCookie");
//向浏览器写入Cookie
 response.addCookie(cookie);out.println("Cookie已经写入到客户端!");
}
public void doPost(HttpServletRequest request, HttpServletResponse response
)throws ServletException, IOException {doGet(request, response);}}

效果:

在浏览器发送请求前没有任何cookie文件

发送请求后:

获取Cookie的值:

getCookie(request, response);

具体如下:

private void getCookie(HttpServletRequest request,
			HttpServletResponse response) throws IOException {
              为浏览器设置显示编码
               response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
           //通过  request.getCookies()返回一个Cookie数组对数组进行遍历得到具体的Cookie后,通过Cookie对象的getName()和getValue()方法得到Cookie的
          //名和值
                Cookie [] cookies = request.getCookies();
		for(int i=0;cookies!=null && i<cookies.length;i++){
			String cname = cookies[i].getName();
			String cvalue = cookies[i].getValue();
			out.println("获取Cookie"+cname+"――"+cvalue);
		}
效果如图:

一个关于获取用户访问时间的实例:

response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		out.println("你上次访问的时间是:");
		Cookie [] cookies = request.getCookies();
		for(int i=0;cookies!=null && i<cookies.length;i++){
			if(cookies[i].getName().equals("LastAccessName")){
				long time  = Long.valueOf(cookies[i].getValue());
				Date date = new Date (time);
				out.println(date.toLocaleString());
			}
	    
			
		}
		Cookie cok = new Cookie("LastAccessName",System.currentTimeMillis()+"");
		cok.setMaxAge(1*3600);
		response.addCookie(cok);

效果如图:

当用户第一访问时:

下一次再访问时:

再次访问时:

这样就可以通过Cookie得知浏览器上次访问的时间了,赶快自己试一试吧!




 
  相关解决方案