首页 > 其他分享 >Filter登录验证案例

Filter登录验证案例

时间:2023-01-29 17:14:39浏览次数:37  
标签:req 登录 验证 resp contains request uri Filter

登录验证案例

需求:

  1. 访问day4_case案例的资源。验证其是否登录
  3. 如果登录了,则直接放行。
  4. 如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录"。

 

 

代码实现:

LoginFilter:

复制代码
/**
 * 登陆验证的过滤器
 */
@WebFilter("/*")
public class LoginFilter implements Filter {
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        //强制转换
        HttpServletRequest request = (HttpServletRequest) req;
        //1、获取资源请求路径
        String uri = request.getRequestURI();
        //2、判断是否包含登陆相关的资源,要注意排除掉css/js/图片/验证码等资源
        if (uri.contains("/login.jsp") || uri.contains("/loginServlet") || uri.contains("/css/") || uri.contains("/js/") || uri.contains("/fonts/") || uri.contains("/checkCodeServlet")){
            //包含,用户就是想登陆,放行
            chain.doFilter(req, resp);
        }else {
            //不包含,需要验证用户是否登录
            //3、从session中获取user
            Object user = request.getSession().getAttribute("user");
            if (user!=null){
                //登录了,放行
                chain.doFilter(req, resp);
            }else {
                //没有登录,跳转登陆页面
                request.setAttribute("login_msg","您尚未登陆,请登录");
                request.getRequestDispatcher("/login.jsp").forward(request,resp);
            }
        }

    }

    public void init(FilterConfig config) throws ServletException {

    }

    public void destroy() {

    }
}

 

标签:req,登录,验证,resp,contains,request,uri,Filter
From: https://www.cnblogs.com/qihaokuan/p/17073202.html

相关文章

  • 登录案例实现
    创建实体类创建数据库控制类  创建工具类数据库连接池   测试类  登录页面  失败页面  成功页面  登录服务类 ......
  • 登录案列 需求 分析
    登录案列需求1编写登录页面用户名和密码两个输入框2使用Druid数据库连接池技术,操作mysql数据库中的用户表3使用JdbcTemplate技术封装JDBC4登录成功......
  • Microsoft 365 解决方案:如何在搜索页面增加或者删除Filter(过滤条件)选项卡
    Blog链接:https://blog.51cto.com/u_13637423我们都知道如果用户在SharePointsite中做文档等检索,会返回很多搜索结果,默认的情况下我们可以在搜索结果页面切换不同的选项卡,......
  • Filter细节web.xml配置方式以及执行流程&生命周期
    Filter细节web.xml配置方式<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/200......
  • win10启动后黑屏很久才进入登录界面
    问题描述电脑某次更新后启动速度变得非常慢,主要表现在黑屏很久才能进入登录界面,以前开机差不多十秒就完成了。网上搜索了各种解决办法,包括:禁用所有非Microsoft服务;关闭ULPS......
  • 学习ASP.NET Core Blazor编程系列二十三——登录(2)
    学习ASP.NETCoreBlazor编程系列文章之目录学习ASP.NETCoreBlazor编程系列一——综述学习ASP.NETCoreBlazor编程系列二——第一个Blazor应用程序(上)学习A......
  • 98. 验证二叉搜索树
    问题描述https://leetcode.cn/problems/validate-binary-search-tree/description/解题思路二叉搜索树的性质是:root节点要大于左子树的最大值,小于右子树的最小值。同时......
  • 布隆过滤器(BloomFilter)
    避免缓存击穿的利器之BloomFilterBloomFilter概念布隆过滤器(英语:BloomFilter)是1970年由一个叫布隆的小伙子提出的。它实际上是一个很长的二进制向量和一系列随机映射......
  • node借助jsonwebtoken生成token以及验证token是否过期
    生成token使用jsonwebtoken插件我当时使用的版本"jsonwebtoken":"^9.0.0",cnpmijsonwebtoken-S登录后生成token//routes/index.js文件varexpress=require(......
  • 巧用ExceptionFilter筛选器
    异常筛选器异常筛选器怎么使用我就不说了。主要记录两点:1、如何在开发环境和生产环境提示不同的异常信息? 因为我们知道,项目在开发期间是需要将异常完整信息展示方便......