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

67 篇文章 1 订阅

登录案例,登陆成功之后跳转到一个个人主页,欢迎您 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管理界面:(点击关闭项目)
在这里插入图片描述
进入部署目录:
在这里插入图片描述

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

好的,以下是一个简单的基于Tkinter的登录界面的实现,以及跳转到围棋界面的示例代码: ```python import tkinter as tk def login(): # 获取用户名和密码 username = username_input.get() password = password_input.get() # TODO: 调用后端API进行验证 if username == "admin" and password == "admin": # 登录成功跳转到围棋界面 go_to_weiqi() else: # 登录失败,弹出错误提示 tk.messagebox.showerror(title="错误", message="用户名或密码错误!") def go_to_weiqi(): # TODO: 跳转到围棋界面的代码 pass # 创建窗口 window = tk.Tk() window.title("登录界面") window.geometry("300x200") # 创建标签和输入框 username_label = tk.Label(window, text="用户名:") username_label.grid(row=0, column=0) username_input = tk.Entry(window) username_input.grid(row=0, column=1) password_label = tk.Label(window, text="密码:") password_label.grid(row=1, column=0) password_input = tk.Entry(window, show="*") password_input.grid(row=1, column=1) # 创建登录按钮 login_button = tk.Button(window, text="登录", command=login) login_button.grid(row=2, column=0, columnspan=2, pady=10) # 进入消息循环 window.mainloop() ``` 在这个示例代码中,我们创建了一个窗口,包含了用户名和密码输入框以及登录按钮。当用户点击登录按钮时,我们调用`login()`函数进行用户名和密码的验证。如果验证成功,我们调用`go_to_weiqi()`函数跳转到围棋界面。在实际开发中,我们需要在`login()`和`go_to_weiqi()`函数中调用后端API和数据库进行验证和数据查询。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值