一、过滤器定义
过滤:安全、干净
过滤应该是一种后加入的功能
二、过滤器在web中的主要作用
1、过滤器是程序运行后加入的
2、功能
任何网站都需要对用户是否登录进行过滤
网上聊天系统,屏蔽非法文字
对请求内容进行统一编码
以上功能都是自动执行的
三、实现过滤器
1、所在类实现filter接口
注意:如果过滤器要将内容传递到目的地,则需要FilterChain ,将请求继续向下转发
切记:过滤器是种组件用的时候加上去就可以了
例1---编码转换
建立过滤器设置编码
如:request.setCharacterEncoding("GB2312")
例2---用户是否登录
切记:session属于http范畴,所以ServletRequest对象需要先转换成HttpServletRequest对象
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session =req.getSession;
然后进行session验证
四、总结
1、实现filter接口(javax.servlet.Filter)
2、doFilter方法中必须有chain.doFilter(req, resp)
3、web.xml中添加过滤器
4、过滤器是种组件用的时候加上去就可以了
5、原则:开发时只专注于具体的业务实现,而对于登陆之类的验证,肯定属于组件,想整个程序中单独加入的
过滤:安全、干净
过滤应该是一种后加入的功能
二、过滤器在web中的主要作用
1、过滤器是程序运行后加入的
2、功能
任何网站都需要对用户是否登录进行过滤
网上聊天系统,屏蔽非法文字
对请求内容进行统一编码
以上功能都是自动执行的
三、实现过滤器
1、所在类实现filter接口
注意:如果过滤器要将内容传递到目的地,则需要FilterChain ,将请求继续向下转发
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class LoginFilter implements Filter{
// 初始化方法,是在容器启动时自动初始化的
@Override
public void destroy()
{ }
//处理过滤
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException
{chain.doFilter(arg0, arg1);}
//销毁过滤器
@Override
public void init(FilterConfig arg0) throws ServletException
{}}
2、web.xml中添加过滤器
<!-- 添加过滤器 -->
<filter>
<filter-name>login</filter-name>
<filter-class>类所在包.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>login</filter-name>
<!-- 与servlet中的url-pattern不同,此处表示对哪个页面进行过滤,如果全部过滤,则“/*” -->
<url-pattern>/*</url-pattern>
</filter-mapping>
切记:过滤器是种组件用的时候加上去就可以了
例1---编码转换
建立过滤器设置编码
如:request.setCharacterEncoding("GB2312")
例2---用户是否登录
切记:session属于http范畴,所以ServletRequest对象需要先转换成HttpServletRequest对象
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session =req.getSession;
然后进行session验证
四、总结
1、实现filter接口(javax.servlet.Filter)
2、doFilter方法中必须有chain.doFilter(req, resp)
3、web.xml中添加过滤器
4、过滤器是种组件用的时候加上去就可以了
5、原则:开发时只专注于具体的业务实现,而对于登陆之类的验证,肯定属于组件,想整个程序中单独加入的