关于Servlet实现Filter过滤器问题

过滤器的入门

Filter过滤器:javax.servlet.Filter 是一个接口,过滤请求,实现请求的拦截或者放行,并且添加新的功能。


过滤器的应用场景

 场景①: 用户表单提交参数,使用POST方法提交,编写Servlet,接收参数: request.getParameter() /getParameterValues()  如果在客户端提交汉字而不做任何处理,就出现中文乱码的问题。 

          解决编码问题: request.setCharacterEncoding("utf-8");

问题:如果在项目中的每一个Servlet都加上request.setCharacterEncoding("utf-8"); 这样会使代码重复,而且后期维护也不方便。能不能把这部分公共代码抽取处理,放在一个地方执行?


场景②:登录 , 输入信息 , 登录成功  , 看到用户主页。  用于验证用户是否登录成功

        HttpSession session = request.getSession(); 

        Object obj = session.getAttribute("loginInfo");

                    if(obj==null){ 

                       //没有登录标记,代表没有登录

                     }else{ 

                        ///已经登录了,继续访问此功能

                     } 

如果用户不登录直接直接访问主页,直接跳转到登录页面,在其他浏览的页面也跳转到登录页面,同样也验证用户登录是否成功。

 问题: 能不能把这部分公共验证用户是否登录成功代码抽取处理,在一个地方执行?


以上两种场景出现的问题,可以使用过滤器(Filter)解决!


过滤器编写步骤:

        特点:过滤器不是用户主动调用的,而是根据规则自己执行

1.编写一个java类,实现Filter接口,并实现其中的所有方法

2.在web.xml文件中配置Filter


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。