(1)登岸页面:login.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Insert title here</title> </head> <body> <form action="LoginServlet" method="post"> 用户名:<input type="text" value="${cookie.cook_name.value }"/><br/> <input type="checkbox" value="7"/>记着我,7天内免登录<br/> <input type="submit" value="登录"/><br/> <a href="https://www.jb51.net/sessionUser.jsp" >验证session</a> <a href="https://www.jb51.net/cookieUser.jsp" >验证cookie</a> </form> </body> </html>
(2)跳转页面:cookieUser.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Insert title here</title> </head> <body> <% //从欣赏器获取cookie Cookie[] cookies = request.getCookies(); String uname = null; //判定语句条件小能力 if(null != cookies){ for(Cookie cookie:cookies){ //遍历当地欣赏器中的所有cookie if(cookie.getName().equals("cook_name")){ //把cookie中的用户名取出 uname = cookie.getValue(); } //out.print("<p>name: " + cookie.getName()+"</p>"); //out.print("<p>value: " + cookie.getValue()+"</p>"); } } //判定cookie有没有失效 if(null != uname){ out.print("<p>用户名:"+uname +"</p>"); } else{ response.sendRedirect("login.jsp"); } %> </body> </html>
(3)Servlet文件:LoginServlet类
package com.servlet; import java.io.IOException; 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; import javax.servlet.http.HttpSession; /** * Servlet implementation class LoginServlet */ @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LoginServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //获取用户登录名 String username = request.getParameter("username"); //获取7天内是否免登录 String day7 = request.getParameter("chkCookie"); int cookie_day = 1; if(null != day7 && day7.equals("")){ cookie_day = Integer.valueOf(day7); } //建设cookie Cookie cookie = new Cookie("cook_name",username); //配置Cookie有限期 //cookie.setMaxAge(6);//有效期6秒 cookie.setMaxAge(3600 * 24 * cookie_day);//配置7天免登录 //写入cookie到欣赏器 response.addCookie(cookie); response.sendRedirect("https://www.jb51.net/cookieUser.jsp"); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }