java web中的cookie练习(向客户端显示上次访问本站的时间)

总的来说分为下面几个步骤:

>1.因为要向客户端输出信息,为了防止中文乱码,所以要先设置响应给客户端的编码方式了

>2.写向客户端输出的信息msg,默认为第一次访问本站

>3.获取客户端带来的cookie,下面要加一个判断,如果cookie为空,就对msg不做修改

>4.获取当前时间,并且把时间格式化输出,并且将日期转换为字符串类型(有两种方式对日期格式化输出,具体情况见代码)

>5.最后创建cookie对象并且响应给客户端

>6.输出信息msg

接下来就是代码了,初学者,可能有代码不规范的地方,还请大佬们多多指教!!!

package cn.edu.bdu;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

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

@WebServlet("/AServlet")
public class AServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//首先设置编码方式防止乱码
		response.setContentType("text/html;charset=utf-8");
		//写未访问是的信息
		String msg = "您是第一次访问本站";
		//获取客户端带来的cookie
		Cookie[] co = request.getCookies();
		//如果cookie不为空,则进行遍历
		if(co != null){
			for(Cookie c : co){
				if(c.getName().equals("lastTime")){ //名字为lastTime的cookie
					msg = "您上次访问本站的时间为" + c.getValue();
				}
			}
		}
		
		//获取当前时间
		Date date = new Date();
		//String strDate = String.format("%tF-%<tT", date); //日期类型转字符串
		
		/*
		 * 另一种方式用SimpleDateFormat来格式化输出date
		 */
		
		//创建格式化输出的对象
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
		//将date格式化为字符串
		String strDate = sdf.format(date);
		
		
		//创建cookie对象
		Cookie cookie = new Cookie("lastTime",strDate);   //cookie不能包括空格 键和值都不能包括(由于tomcat的版本比较高,所以在addCookie时是不能使用空格的)
		response.addCookie(cookie);//返回给客户端一个cookie
		
		response.getWriter().print(msg);
		
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值