需求:当客户端浏览器第一次访问Servlet时响应“您好,欢迎您第一次访问!”,第二次访问时响应“欢迎您回来!”。

  1. import javax.servlet.ServletException;
  2. import javax.servlet.http.Cookie;
  3. import javax.servlet.http.HttpServlet;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import java.io.IOException;
  7. import java.io.PrintWriter;
  8. public class WelcomServlet extends HttpServlet {
  9. @Override
  10. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  11. this.doPost(req, resp);
  12. }
  13. @Override
  14. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  15. //获取cookie
  16. Cookie[] cookies = req.getCookies();
  17. boolean flag = false;
  18. if (cookies != null){
  19. for (Cookie cookie:cookies){
  20. if ("welcome".equals(cookie.getName())){
  21. flag = true;
  22. break;
  23. }
  24. }
  25. }
  26. resp.setContentType("text/plain;charset=utf-8");
  27. PrintWriter printWriter = resp.getWriter();
  28. if(flag){
  29. printWriter.println("欢迎回来");
  30. }else{
  31. printWriter.println("您好,欢迎第一次访问");
  32. Cookie cookie = new Cookie("welcome","welcome");
  33. cookie.setMaxAge(60);
  34. resp.addCookie(cookie);
  35. }
  36. }
  37. }

image.png
image.png

Cookie总结

Cookie对于存储内容是基于明文的方式存储的,所以安全性很低。不要在Cookie中存放敏感数据。在数据存储时,虽然在Servlet4.0中Cookie支持中文,但是建议对Cookie中存放的内容做编码处理,也可提高安全性。