【servlet】初学过滤器Filter

一、过滤器定义
过滤:安全、干净
过滤应该是一种后加入的功能


二、过滤器在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、原则:开发时只专注于具体的业务实现,而对于登陆之类的验证,肯定属于组件,想整个程序中单独加入的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值