cookie的使用

关于cookie的使用,实现30天免登陆,也就是记住密码的功能

这是登录之后,网页内cookie的相关信息

 

其次就是,在用户第一次登录时,如果选择了勾选自动登录按钮,cookie就会保存用户的信息,当用户再次登录时,就可以不用输入密码,自动登录了。

 

代码的相关实现

myServlet.java

package com.my.deal;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

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;

/**
 * 登录界面
 */
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private String driverName="com.mysql.jdbc.Driver";
    private String url="jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
    private String name="root";
    private String pwd="123456";
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
        
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String flag = request.getParameter("isLogin");

        //设置页面编码格式
        response.setContentType("text/html;charset=UTF-8");
        String sql="select * from users where name='"+username+"' and password='"+password+"'";
        
        System.out.println(sql);
        Connection connection=null;
        Statement statement=null;
        ResultSet resultSet=null;
        try {
            Class.forName(driverName);//加载驱动
            connection = DriverManager.getConnection(url, name, pwd);//获取连接
            statement = connection.createStatement();
            resultSet = statement.executeQuery(sql);
            System.out.println(statement.toString());
            
            //查找以前登录过得信息
            Cookie[] cookie=request.getCookies();
            if(cookie!=null){
                for(int i=0;i<cookie.length;i++) {
                    if(cookie[i].getName().equals("username1")) {
                        if(password!=null)
                        {
                            response.sendRedirect("/check2/success.html");
                            return;
                        }
                        
                    }                
                }
            }
            
            //新账号登录,判断是否存储cookie
            if(username!=null&&password!=null) {
                if(resultSet.next()) {
                    if("autoCheck".equals(flag)) {
                        Cookie nameCookie =new Cookie("username1",username);
                        nameCookie.setMaxAge(3600*24*30);
                        Cookie pwdCookie =new Cookie("password",password);
                        pwdCookie.setMaxAge(3600*24*30);
                        response.addCookie(nameCookie);
                        response.addCookie(pwdCookie);  
                    }
                response.setContentType("text/html;charset=UTF-8");
                response.getWriter().write("欢迎你:"+username+"登录成功来到首页");
                response.getWriter().write("<br/>");
                response.getWriter().write("你的密码为:"+password);
                }
            }
            else {
                response.getWriter().write("用户名或者密码错误");
            }

        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
        try {
            resultSet.close();
            statement.close();
            connection.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

 

posted @ 2019-04-04 14:19  Kn4vE  阅读(216)  评论(0编辑  收藏  举报