Java使用Filter实现登录验证

 更新时间:2023年11月13日 09:21:09   作者:雾林小妖  
本文主要介绍了Java使用Filter实现登录验证,Filter类似于门卫,你在进入之前门卫需要盘查你,身份合法进入,身份不合法拦截,感兴趣的可以了解一下

1、什么是Filter

Filter可认为是Servlet的一种特殊用法,主要是对用户发起的请求进行预处理或后处理,意思就是在请求到达用户想请求的地址之前先进入Filter,或者在离开用户请求之后进入Filter。Filter类似于门卫,你在进入之前门卫需要盘查你,身份合法进入,身份不合法拦截。

1.1、Filter过滤器的使用场景

1、对用户的请求进行统一认证,适合做权限管理。

2、对请求和响应进行加密处理。

3、对用户发送的请求或者响应的数据进行过滤处理。

4、对所有用户的请求或者响应进行记录,可以进行日志管理。

2、Filter的使用方式

说明1:Filter的使用需要实现Filter接口,并重写doFilter方法

说明2:导包信息import javax.servlet.Filter;

说明3:当用户正在进行登录的时候需要放行。

2.1、创建Filter

public class LoginFilter implements Filter{
	//销毁方法
	public void destroy() {
	}
	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
			throws IOException, ServletException {
		//将ServletRequest转化成HttpServletRequest
	  HttpServletRequest request=(HttpServletRequest)servletRequest;
        HttpServletResponse response=(HttpServletResponse)servletResponse;
        //获取当前用户的请求地址
        String url=request.getRequestURI();
        //如果请求的地址中包含login,就放行
        //如果用户正在通过login.jsp或者请求login.do进行登录,要放行。
        if(url.indexOf("login")>-1){
        	//放行
        	filterChain.doFilter(request, response);
        	return ;
        }
        HttpSession session=request.getSession();
        String username=(String)session.getAttribute("username");
        //如果username值为空,说明没有登录,因为登录成功后会将用户信息保存在session中。
        if(username!=null){
        	//放行
        	filterChain.doFilter(request, response);
        	return ;
        }
        //如果没有登录转发到login.jsp
        request.getRequestDispatcher("login.jsp").forward(request, response);
	}
	@Override
	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		
	}

}

2.2、在web.xml中配置Filter信息

<!-- 自定义过滤器 -->
  <filter>
        <filter-name> LoginFilter </filter-name>
        <filter-class>com.it.filter. LoginFilter </filter-class>
    </filter>
    <filter-mapping>
        <filter-name> LoginFilter </filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>

 到此这篇关于Java使用Filter实现登录验证的文章就介绍到这了,更多相关Java Filter登录验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java静态代码块作用及执行顺序解析

    Java静态代码块作用及执行顺序解析

    这篇文章主要介绍了Java静态代码块作用及执行顺序解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • javafx实现图片3D翻转效果方法实例

    javafx实现图片3D翻转效果方法实例

    程序实现思路: 在javafx中Node对象有一个effect属性,可以用于实现各种特效。PerspectiveTransform特效可以使Node对象实现透视变换。因此我们可以通过计算透视变换中每个点的位置来实现3D翻转特效。
    2013-04-04
  • 详解java定时任务

    详解java定时任务

    这篇文章主要为大家详细介绍了java定时任务,使用JDK中的Timer定时任务来实现,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • Java代码注释规范(动力节点整理)

    Java代码注释规范(动力节点整理)

    代码注释是架起程序设计者与程序阅读者之间的通信桥梁,最大限度的提高团队开发合作效率。也是程序代码可维护性的重要环节之一。下面通过本文说一下我们在日常开发中使用的代码注释规范
    2017-03-03
  • 详解SpringBoot集成Redis来实现缓存技术方案

    详解SpringBoot集成Redis来实现缓存技术方案

    本篇文章主要介绍了详解SpringBoot集成Redis来实现缓存技术方案,具有一定的参考价值,有兴趣的可以了解一下
    2017-06-06
  • java8中parallelStream性能测试及结果分析

    java8中parallelStream性能测试及结果分析

    本篇文章给大家用代码实例做了segmentfaultjava8中parallelStream性能测试,并对测试结果做了说明,需要的朋友学习下吧。
    2018-01-01
  • Java实现本地缓存的方式汇总

    Java实现本地缓存的方式汇总

    引入缓存,主要用于实现系统的高性能,高并发,这篇文章主要介绍了Java实现本地缓存的几种方式,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • java http token请求代码实例

    java http token请求代码实例

    这篇文章主要介绍了java http token请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java黑科技:replace首个替换一秒搞定

    Java黑科技:replace首个替换一秒搞定

    要实现只替换第一个匹配项,可以使用Java中的String类的replaceFirst方法,该方法接受两个参数,第一个参数是要替换的字符串或正则表达式,第二个参数是替换后的字符串,需要的朋友可以参考下
    2023-10-10
  • 解决spring-boot-maven-plugin报红的问题

    解决spring-boot-maven-plugin报红的问题

    这篇文章主要给大家介绍一下如何解决spring-boot-maven-plugin报红的问题,文中通过图文讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2023-08-08

最新评论