Cookie实现免用户名和密码自动登录
前言
我们在访问网站的时候,有的网站一天之内访问好几次,如果用户每次访问都需要这些登录操作就会感到相当厌烦。所以通过Cookie的技术手段让网站“记住”那些在曾经登录过的用户。当该用户下次再来访问的时候,网站可以识别该用户,并为其自动完成登录过程。
实现免用户名和密码自动登录效果:

登录界面
效果图

代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%String username = null;String password = null;Cookie[] cookies = request.getCookies();if (cookies!=null){//遍历Cookiefor (Cookie cookie : cookies) {if ("username".equals(cookie.getName())){username = cookie.getValue();out.print("用户名:"+username+"");}if ("password".equals(cookie.getName())){password = cookie.getValue();out.print("密码:"+password+"");}}//将用户名添加到session域中request.getSession().setAttribute("username",username);if ("root".equals(username) && "root".equals(password)){response.sendRedirect("welcome.jsp");}}
%>
<html>
<head><title>Cookie免密登录</title>
</head>
<style>div{margin: auto;text-align: center;}
</style>
<body><div><form action="login" method="post">账号:<input type="text" name="username"><br>密码:<input type="password" name="password"><br><input type="submit" value="登录"></form></div>
</body>
</html>
Servlet代码:
package 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("/login")
public class login extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取用户名String username = request.getParameter("username");//获取密码String password = request.getParameter("password");//设置响应内容类型和编码方式response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//获取输出流PrintWriter out = response.getWriter();if ("root".equals(username) && "root".equals(password)){//将用户名和密码添加到Cookie中Cookie cookiename = new Cookie("username","root");Cookie cookiepwd = new Cookie("password","root");//设置Cookie的过期时间-1小时-(单位/秒)cookiename.setMaxAge(60*60);cookiepwd.setMaxAge(60*60);//发送Cookie给客户端response.addCookie(cookiename);response.addCookie(cookiepwd);//转发到welcome页面request.getRequestDispatcher("welcome.jsp").forward(request,response);}else {out.print("");out.print("");}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request,response);}
}
登录成功页面
效果图

代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%//判断浏览器缓存有没有用户名的Cookie信息if (session.getAttribute("username")==null){response.sendRedirect("login.jsp");}
%>
<html>
<head><title>登录成功,欢迎您<%=session.getAttribute("username")%></title>
</head>
<body>欢迎您:<%=session.getAttribute("username")%>
</body>
</html>
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
