欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

案例:自动登录,记住密码(Session+JSP)

程序员文章站 2022-05-12 16:18:32
用来判断cookie有没有值package com.bdit;import javax.servlet.http.Cookie;public class DBCookie { public static Cookie getCookie(Cookie[] cookies,String key){ if(cookies!=null&&cookies.length>0){ for(Cookie cookie:cookies){...

用来判断cookie有没有值

package com.bdit;

import javax.servlet.http.Cookie;

public class DBCookie {
    public static Cookie getCookie(Cookie[] cookies,String key){
        if(cookies!=null&&cookies.length>0){
            for(Cookie cookie:cookies){
                if(cookie.getName().equals(key)){
                    return cookie;
                }
            }
        }
        return null;
    }
}

servlet

package com.bdit.servlet;

import com.bdit.sevice.TreeSevice;
import com.bdit.vo.Tree;

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;

@WebServlet(urlPatterns = {"/treeServlet"})
public class TreeServlet 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");
        resp.setContentType("text/html;charset=UTF-8");

        String username=req.getParameter("username");
        String pass=req.getParameter("pass");
        String hobby=req.getParameter("hobby");
        String hobby2=req.getParameter("hobby2");

        TreeSevice sevice=new TreeSevice();
        //根据用户名和密码查找
        Tree tree=sevice.find(username,pass);

        if(tree!=null&&tree.getUsername().equals(username)&&tree.getPass().equals(pass)){
            if(hobby2!=null&&hobby2.equals("2")){
            if(hobby!=null&&hobby.equals("1")){
                Cookie cookie1=new Cookie("username",username);
                Cookie cookie2=new Cookie("pass",pass);
                cookie1.setPath(req.getContextPath());
                cookie2.setPath(req.getContextPath());
                cookie1.setMaxAge(60*60*24);
                cookie2.setMaxAge(60*60*24);
                resp.addCookie(cookie1);
                resp.addCookie(cookie2);
                Cookie cookie3=new Cookie("hobby","checked");
                cookie3.setPath(req.getContextPath());
                cookie3.setMaxAge(60*60*24);
                resp.addCookie(cookie3);
                Cookie cookie4=new Cookie("hobby2","checked");
                cookie4.setPath(req.getContextPath());
                cookie4.setMaxAge(15);
                resp.addCookie(cookie4);
                resp.sendRedirect("success.jsp");
            }
            else{
                resp.sendRedirect("success.jsp");
            }
            }else{
                if(hobby!=null&&hobby.equals("1")) {
                    Cookie cookie1 = new Cookie("username", username);
                    Cookie cookie2 = new Cookie("pass", pass);
                    cookie1.setPath(req.getContextPath());
                    cookie2.setPath(req.getContextPath());
                    cookie1.setMaxAge(60 * 60 * 24);
                    cookie2.setMaxAge(60 * 60 * 24);
                    resp.addCookie(cookie1);
                    resp.addCookie(cookie2);
                    Cookie cookie3 = new Cookie("hobby", "checked");
                    cookie3.setPath(req.getContextPath());
                    cookie3.setMaxAge(60 * 60 * 24);
                    resp.addCookie(cookie3);
                }else{
                    resp.sendRedirect("success.jsp");
                }
            }
        }else if(tree==null){
            resp.sendRedirect("error.jsp");
        }

    }
}

主页面index.jsp

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2020/10/20
  Time: 21:10
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.bdit.DBCookie" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>

  <%
      String username="";
      String pass="";
      String hobby="";
      String hobby2="";

    Cookie cookie4=DBCookie.getCookie(request.getCookies(),"hobby2");
    if(cookie4!=null){
        Cookie cookie5=DBCookie.getCookie(request.getCookies(),"hobby");
        if(cookie5!=null){
            Cookie cookie1= DBCookie.getCookie(request.getCookies(),"username");
            if(cookie1!=null){
                username=cookie1.getValue();
            }
            Cookie cookie2=DBCookie.getCookie(request.getCookies(), "pass");
            if(cookie2!=null){
                pass=cookie2.getValue();
            }
            hobby=cookie5.getValue();
        }
        hobby2=cookie4.getValue();
    }else{
        Cookie cookie3=DBCookie.getCookie(request.getCookies(),"hobby");
        if(cookie3!=null){
            Cookie cookie1= DBCookie.getCookie(request.getCookies(),"username");
            if(cookie1!=null){
                username=cookie1.getValue();
            }
            Cookie cookie2=DBCookie.getCookie(request.getCookies(), "pass");
            if(cookie2!=null){
                pass=cookie2.getValue();
            }
            hobby=cookie3.getValue();
        }
    }
  %>
 <form action="treeServlet" method="post">
     账号:<input type="text" name="username" value=<%=username%> ><br>
     密码:<input type="text" name="pass" value=<%=pass%> ><br>
     <input type="radio" name="hobby" <%=hobby%> value="1">记住密码<br>
     <input type="radio" name="hobby2" <%=hobby2%> value="2">自动登录<br>
     <input type="submit">
     <%
        if(hobby2.equals("checked")){
            response.sendRedirect("treeServlet?username="+username+"&pass="+pass+"");
        }
     %>

 </form>

  </body>
</html>

成功页面success.jsp

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2020/10/21
  Time: 21:18
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h2>登录成功</h2>

<form action="index.jsp">
    <input type="submit" value="返回主页">
</form>
</body>
</html>

失败页面error.jsp

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2020/10/21
  Time: 21:19
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h2>登录失败</h2>
<a href="index.jsp">回主页</a>
</body>
</html>

本文地址:https://blog.csdn.net/vlucky_long/article/details/110249647