1.创建1.jsp
<body> <form action="cookie/2.jsp" method="post"> 姓名:<input type="text" name="userName"/> <button type="submit">登录</button> </form> <% //获取第二个界面的信息 String msg=(String)request.getAttribute("msg"); //有可能Null if(msg!=null){ out.print(msg); } %> </body>
2.创建2.jsp
<%@page import="java.net.URLEncoder"%> <body> <% request.setCharacterEncoding("utf-8"); //解决post请求乱码问题 //获取登陆的用户名 String name =request.getParameter("userName"); //判断用户名是不是admin if(name.equalsIgnoreCase("admin")){ //在返回到第一个界面时 给一个提示 request.setAttribute("msg", "不允许使用admin登录!"); //转发 request.getRequestDispatcher("1.jsp").forward(request, response); }else{ //成功! 跳转到下个界面,并把用户名传递下去 //01.创建cookie 如果有中文 必须需要设置编码格式 Cookie cookie=new Cookie("user",URLEncoder.encode(name,"utf-8")); //02.如果想给cookie设置有效期 必须在增加之前 cookie.setMaxAge(20); //03.给响应新增cookie response.addCookie(cookie); //重定向 response.sendRedirect("3.jsp"); } %> </body>
3.创建3.jsp
<%@page import="java.net.URLDecoder"%> <body> <% //获取第二个界面的cookie Cookie [] cookies= request.getCookies(); String name=""; //遍历数组 获取我们想要的 user for(Cookie cookie:cookies){ if(cookie.getName().equals("user")){ //找到了 //进行中文的解码 name=URLDecoder.decode(cookie.getValue(), "utf-8"); out.print("用户名====》"+name); } } %> </body>