总的来说分为下面几个步骤:
>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);
}
}