前端JSP页面: 实现保存用户名和密码
COOKIE
// 用户名
String user = "";
// 登录密码
String pass = "";
// 复选框是否选中
String checked = "";
// 获取的是请求里的所有COOKIE组成的数组
COOKIE[] COOKIEs = request.getCOOKIEs();
// 如果COOKIEs数组不为空对其进行遍历
if (COOKIEs != null && COOKIEs.length > 0) {
// 循环遍历COOKIE
for (int i = 0; i // 获取COOKIE对象
COOKIE COOKIE = COOKIEs[i];
// 将创建的COOKIE名与获取的COOKIE数组中已经存在的COOKIE名进行比较
if ("name".equals(COOKIE.getName())) {
// "name"是在另一个jsp文件中创建的COOKIE名
// 获取名字叫做"name"的COOKIE的值
user = URLDecoder.decode(COOKIE.getValue(), "utf-8");
// 将“记住用户名”设置为勾选
checked = "checked";
}
// 将创建的COOKIE名与获取的COOKIE数组中已经存在的COOKIE名进行比较
if ("password".equals(COOKIE.getName())) {
// "password"是在另一个jsp文件中创建的COOKIE名
// 获取名字叫做"password"的COOKIE的值
pass = COOKIE.getValue();
}
}
}
%>
用户登录
指的是将获取的COOKIE值放进输入框内--%>
用户名:
密码:
记住用户名和密码
后端Servlet验证:
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 java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/Login3")
public class Login3 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置请求的编码
req.setCharacterEncoding("utf-8");
//获取请求中的参数
String name=req.getParameter("name");
String password=req.getParameter("password");
String remember=req.getParameter("remember");
//设置响应的文本信息
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out=resp.getWriter();
//判断用户名和密码是否正确
if(name.equals("Admin")&&password.equals("000000")){
// 新建名为name的COOKIE
COOKIE nameCOOKIE = new COOKIE("name",name);
// 新建名为password的COOKIE
COOKIE passwordCOOKIE = new COOKIE("password", password);
// 判断复选框是否被选中,如果选中则返回on
if (remember.equals("on")) {
// 设置保存COOKIE的时间长度,
nameCOOKIE.setMaxAge(60*60*24*7); //7天
passwordCOOKIE.setMaxAge(60*60*24*7);
} else {
// 设置将不保存COOKIE
nameCOOKIE.setMaxAge(0);
passwordCOOKIE.setMaxAge(0);
}
// 输出到客户端
resp.addCOOKIE(nameCOOKIE);
resp.addCOOKIE(passwordCOOKIE);
// 登录成功后跳转到success.jsp
req.getRequestDispatcher("success.jsp").forward(req, resp);
}else if (!name.equals("Admin") && password.equals("000000")) {// 如果用户名不正确,密码正确
// 保存错误提示数据
req.setAttribute("error", "用户名不正确");
// 登录失败后将跳转到error.jsp
req.getRequestDispatcher("error.jsp").forward(req, resp);
} else if (name.equals("Admin") && !password.equals("000000")) {// 如果用户名正确,密码不正确
// 保存错误提示数据
req.setAttribute("error", "密码不正确");
// 登录失败后将跳转到error.jsp
req.getRequestDispatcher("error.jsp").forward(req, resp);
} else {// 如果用户名和密码都不正确
// 保存错误提示数据
req.setAttribute("error", "用户名和密码都不正确");
// 登录失败后将跳转到error.jsp
req.getRequestDispatcher("error.jsp").forward(req, resp);
}
}
}