filter保存用户名 和密码

public class LoginFilter implements Filter {

    public void destroy() {
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        try {
            HttpServletRequest req = (HttpServletRequest) request;
            HttpServletResponse res = (HttpServletResponse) response;
            TUser tuser = (TUser) req.getSession().getAttribute("tuser");
            if (tuser != null) {
                chain.doFilter(req, res);
                return;
            }
            Cookie[] cookies = req.getCookies();
            String str = null;
            if (cookies != null) {
                for (Cookie cookie : cookies) {
                    String name = cookie.getName();
                    if (name.equals("mes")) {
                        str = cookie.getValue();
                    }
                }
            }
            if (str == null) {
                chain.doFilter(req, res);
                return;
            }
            String[] strs = str.split(":");
            String username = strs[0];
            String password = strs[1];
            LoginService ls = new LoginService();
            tuser = ls.find(username, password);

            if (tuser == null) {
                Cookie cookie = new Cookie("mes", username + ":" + password);
                cookie.setPath("/");
                cookie.setMaxAge(0);
                res.addCookie(cookie);
                chain.doFilter(req, res);
                return;
            }
            req.getSession().setAttribute("tuser", tuser);
            chain.doFilter(req, res);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void init(FilterConfig fConfig) throws ServletException {
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是 Flask 和 Layui 实现这个功能的代码: HTML 页面代码(login.html): ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Login</title> <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.css"> </head> <body> <div class="layui-container"> <div class="layui-row"> <div class="layui-col-md-offset3 layui-col-md6"> <form class="layui-form" action="{{ url_for('login') }}" method="post"> <div class="layui-form-item"> <label class="layui-form-label">Username</label> <div class="layui-input-block"> <input type="text" name="username" required lay-verify="required" placeholder="Please enter your username" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">Password</label> <div class="layui-input-block"> <input type="password" name="password" required lay-verify="required" placeholder="Please enter your password" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit="" lay-filter="login">Login</button> </div> </div> </form> </div> </div> </div> <script src="https://cdn.staticfile.org/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.all.js"></script> <script> // 注意:此处的代码需要写在 layui.all.js 加载之后 layui.use(['form', 'layer'], function(){ var form = layui.form; var layer = layui.layer; // 监听表单提交事件 form.on('submit(login)', function(data){ // 执行表单提交操作 var formData = data.field; $.post(data.form.action, formData, function(res){ if(res.code == 0){ // 登录成功,跳转到欢迎界面 window.location.href = '{{ url_for('welcome') }}'; }else{ // 登录失败,提示错误信息 layer.msg(res.msg, {icon: 5}); } }); return false; // 阻止表单跳转 }); }); </script> </body> </html> ``` Flask 后端代码: ```python from flask import Flask, render_template, request, redirect, url_for app = Flask(__name__) # 配置密钥,用于加密 session 数据 app.secret_key = '123456' @app.route('/') def index(): return render_template('login.html') @app.route('/login', methods=['POST']) def login(): # 获取表单数据 username = request.form.get('username') password = request.form.get('password') # 验证用户名密码 if username == 'admin' and password == '123456': # 验证通过,设置 session 数据 session['username'] = username # 返回登录成功的信息 return {'code': 0, 'msg': 'Login success'} else: # 验证失败,返回错误信息 return {'code': 1, 'msg': 'Username or password is incorrect'} @app.route('/welcome') def welcome(): # 获取 session 数据,判断用户是否已经登录 if 'username' not in session: return redirect(url_for('index')) else: return render_template('welcome.html') if __name__ == '__main__': app.run(debug=True) ``` 上述代码中,我们在 Flask 中使用了 session 来保存用户的登录状态。当用户登录成功时,我们设置了 session['username'] 的值,当用户访问欢迎界面时,我们检查 session 中是否存在 'username' 键,如果存在,则表示用户已经登录,可以访问欢迎界面,否则重定向到登录界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值