JavaEE-Cookie记住姓名密码
核心代码:
Cookie.jsp:
<%--
Document : Cookie
Created on : 2020-4-21, 21:43:39
Author : WUWEIBO
--%>
<%@page import="java.net.URLDecoder"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<title>登录</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="login in.css"/>
</head>
<body class="style">
<%
//获取请求相关的cookie
Cookie[] cookies = request.getCookies();//返回所有Cookie对象
//用户名和密码
String username = ""; //声明姓名,赋空字符串
String password = ""; //声明密码,赋空字符串给password
//判断cookie是否存在
if(cookies != null){ //如果Cookie不为空即存在
for(int i=0;i<cookies.length;i++){ //遍历所有Cookie
if(cookies[i].getName().equals("username")){ //如果存在Cookie名字为username
//username = cookies[i].getValue();
username = URLDecoder.decode(cookies[i].getValue(), "utf-8"); //则将名为username的属性值赋值给username
}
if(cookies[i].getName().equals("password")){ //如果存在Cookie名字为password
password = cookies[i].getValue(); //则将此Cookie的值赋给password
}
}//后面在客户端显示各Cookie的属性值
}
%>
<h1>Login</h1>
<form action="FIRST" method="GET">
姓名:
<input class="style1" type="text" autocomplete="off" name="username" value="<%=username%>">
<br />
密码:
<input class="style1" type="password" name="password" value="<%=password%>">
<br/>
<input type="checkbox" name="radiobutton" value="radiobutton" checked>记住密码</input>
<br/>
<br/>
<button type="submit" class="style2">登录</button>
<input type="reset" class="style2" value="重置" ></input>
<br />
<br />
<a href ="http://www.scuec.edu.cn/jky/">计算机科学学院</a>
</form>
</body>
</html>
FIRST.java:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Cookie;
import java.net.URLEncoder;
/**
*
* @author WUWEIBO
*/
public class FIRST extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
//获取用户名和密码及是否记住密码
String username = request.getParameter("username"); //获取客户端输入的姓名
String password = request.getParameter("password"); //获取客户端输入的密码
String radiobutton1 = request.getParameter("radiobutton"); //获取客户端是否记住密码状态
//生成cookie
if(radiobutton1!= null){ //如果记住密码不为空即选择记住密码
Cookie nameCookie = new Cookie("username", URLEncoder.encode(username, "utf-8")); //创建nameCookie,名字是username
//Cookie nameCookie=new Cookie("username",username);另一种创建Cookie的方式
Cookie passwordCookie=new Cookie("password",URLEncoder.encode(password, "utf-8")); //创建passwordCookie,名字是password
passwordCookie.setMaxAge(30*24*60*60); //设置passwordCookie的过期时间
nameCookie.setMaxAge(30*24*60*60); //设置nameCookie的过期时间
response.addCookie(nameCookie); //添加nameCookie到服务器端
response.addCookie(passwordCookie);//添加passwordCookie到服务器端
}
PrintWriter out = response.getWriter(); //response顾名思义就是服务器度对浏览器的响应,PrintWriter它的实例就是问前台的JSP页面输出结果
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet FIRST</title>");
out.println("</head>");
out.println("<body>");
out.println("name:" + request.getParameter("username"));
out.println("password:"+request.getParameter("password"));
out.println("</body>");
out.println("</html>");
out.println("<a href='Cookie.jsp'>检验密码是否保存成功</a>");
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
浙公网安备 33010602011771号