JavaWeb————利用Cookies和Session实现用户登录操作

首先让我们来编写实现登录的页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
<form action="http://localhost:8080/ServletDemo/session" method="get">
    用户名:<input type="text" name="username"><br>
<!--    当然这里可以有密码和许多东西,我只是懒~(ૢ˃ꌂ˂ૢ)     -->
    <input type="submit" value="提交">
</form>
</body>
</html>

接下来我们来保存数据

public class SessionServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html; charset=UTF-8");  
        PrintWriter out=response.getWriter();
        Cookie[] cookies=request.getCookies();
        
        //获取session,将前端提交的用户名保存入session中
        HttpSession session=request.getSession();
        String username=request.getParameter("username");
        session.setAttribute("user",username);
        
        //跳转到登录Servlet
        response.sendRedirect("/ServletDemo/login");

    }
}

登录成功跳转到LoginServlet类

public class LoginServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html;charset=utf-8");   //解决乱码问题
        
        //获取session
        HttpSession session=request.getSession();
        String username= (String) session.getAttribute("user");  //获取用户名信息

        if (username==null){
            response.getWriter().write("您还未登陆,请<a href='/ServletDemo/a.html'>登陆</a>");
        }else {
            response.getWriter().print("您已登陆,欢迎您 "+username);
            response.getWriter().print("<a href='/ServletDemo/logout'>退出</a>");
            //创建Cookie对象用来保存Session的id
            Cookie cookie=new Cookie("JSESSIONID",session.getId());
            cookie.setMaxAge(30*60);
            cookie.setPath("/ServletDemo");
            response.addCookie(cookie);
        }
    }
}

实现注销Servlet,删除session即可

public class LogoutServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.getSession().removeAttribute("user");
        response.sendRedirect("/ServletDemo/login");

    }
}

结果如下:

1:登录

2:登陆成功

3:注销登录

猜你喜欢

转载自blog.csdn.net/u013523775/article/details/105188432