需求:当客户端浏览器第一次访问Servlet时响应“您好,欢迎您第一次访问!”,第二次访问时响应“欢迎您回来!”。
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class WelcomServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取cookie
Cookie[] cookies = req.getCookies();
boolean flag = false;
if (cookies != null){
for (Cookie cookie:cookies){
if ("welcome".equals(cookie.getName())){
flag = true;
break;
}
}
}
resp.setContentType("text/plain;charset=utf-8");
PrintWriter printWriter = resp.getWriter();
if(flag){
printWriter.println("欢迎回来");
}else{
printWriter.println("您好,欢迎第一次访问");
Cookie cookie = new Cookie("welcome","welcome");
cookie.setMaxAge(60);
resp.addCookie(cookie);
}
}
}
Cookie总结
Cookie对于存储内容是基于明文的方式存储的,所以安全性很低。不要在Cookie中存放敏感数据。在数据存储时,虽然在Servlet4.0中Cookie支持中文,但是建议对Cookie中存放的内容做编码处理,也可提高安全性。