过滤器的入门
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