登录案例,登陆成功之后跳转到一个个人主页,欢迎您 xxx

登录案例,登陆成功之后跳转到一个个人主页,欢迎您 xxx

1.通过cookie实现

结构:
在这里插入图片描述

代码:
login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/app/loginz" method="post">
        <input type="text" name="username"><br>
        <input type="password" name="password"><br>
        <input type="submit">
    </form>
</body>
</html>

LoginServlet.java

@WebServlet("/loginz")
public class LoginServlet extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        response.setContentType("text/html;charset=utf-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //不做任何校验,只要输入就当作登录成功
        Cookie cookie = new Cookie("username", username);
        cookie.setMaxAge(180);
        cookie.setPath(request.getContextPath() + "/infog");
        response.addCookie(cookie);
        response.getWriter().println("登录成功,即将跳转至个人主页....");
        response.setHeader("refresh", "2;url=" + request.getContextPath() + "/infog");
        //Context域不可以
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    

    }
}

InfoServlet.java

@WebServlet("/infog")
public class InfoServlet extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        //
        String username = "";
        Cookie[] cookies = request.getCookies();
        if(cookies != null){
    
    
            for (Cookie cookie : cookies) {
    
    
                if("username".equals(cookie.getName())){
    
    
                    username = cookie.getValue();
                    cookie.setMaxAge(0);
                    cookie.setPath(request.getContextPath() + "/info");
                    response.addCookie(cookie);
                }
            }
        }
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().println("<!DOCTYPE html>\n" +
                "<html lang=\"en\">\n" +
                "<head>\n" +
                "    <meta charset=\"UTF-8\">\n" +
                "    <title>Title</title>\n" +
                "</head>\n" +
                "<body>");

        response.getWriter().println("欢迎您," + username);

        response.getWriter().println("</body>\n" +
                "</html>");
    }
}

结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从另一浏览器直接访问:
在这里插入图片描述

DelCookieServlet.java(删除cookie)

@WebServlet("/dell")
public class DelCookieServlet extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        //通过访问该servlet,将cookie信息删除
        Cookie[] cookies = request.getCookies();
        if(cookies != null){
    
    
            for (Cookie cookie : cookies) {
    
    
                if("username".equals(cookie.getName())){
    
    
                    cookie.setMaxAge(0);
                    //需要把这个告诉给浏览器
                    response.addCookie(cookie);
                }
            }
        }
    }
}

结果:
在这里插入图片描述

在这里插入图片描述

2.通过session实现(关闭浏览器仍然可以访问到session中的数据功能)

结构:
在这里插入图片描述
代码:
login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/app/loginz" method="post">
        <input type="text" name="username"><br>
        <input type="password" name="password"><br>
        <input type="submit">
    </form>
</body>
</html>

LoginServlet.java

@WebServlet("/loginz")
public class LoginServlet extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        response.setContentType("text/html;charset=utf-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //不做任何校验,只要输入就当作登录成功
        Cookie cookie = new Cookie("username", username);
        cookie.setMaxAge(180);
        cookie.setPath(request.getContextPath() + "/infog");
        response.addCookie(cookie);
        response.getWriter().println("登录成功,即将跳转至个人主页....");
        response.setHeader("refresh", "2;url=" + request.getContextPath() + "/infog");
        //Context域不可以
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    

    }
}

InfoServletSession.java

@WebServlet("/infos")
public class InfoServletSession extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        //
        String username = (String) request.getSession().getAttribute("username");
        if (username==null){
    
    
            username="";
        }
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().println("<!DOCTYPE html>\n" +
                "<html lang=\"en\">\n" +
                "<head>\n" +
                "    <meta charset=\"UTF-8\">\n" +
                "    <title>Title</title>\n" +
                "</head>\n" +
                "<body>");

        response.getWriter().println("欢迎您," + username);

        response.getWriter().println("</body>\n" +
                "</html>");
    }
}

结构:
在这里插入图片描述
进入Tomcat管理界面:(点击关闭项目)
在这里插入图片描述
进入部署目录:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gy99csdn/article/details/114296086
xxx