servlet 过滤器 监听器

过滤器 作用

1 程序运行后加入的

2 功能

 对用户登录过滤(在每个jsp中判断session)

网上聊天,屏蔽非法文字

统一编码

自动执行

javax.servlet.Filter

public interface Filter 

   

init

void init(FilterConfig filterConfig)
          throws ServletException

 

doFilter

void doFilter(ServletRequest request,
              ServletResponse response,
              FilterChain chain)
              throws IOException,
                     ServletException

destroy

void destroy() 
标准servlet的 doGet,doPost参数是httpservletrequest
 
 过滤器是组件,用时直接加上。
在web.xml部署,同servlet
<filter>
<filter-name>first</filter-name>
<filter-class>org.sw.filter.FirstFilter</filter-class>
</filter>
 <filter-mapping>
<filter-name>first</filter-name>
<url-pattern>/*</url-pattern>
与servlet中的url-pattern不一样。表示对那个页面进行过滤,*表示对所有页面都过滤
</filter-mapping>
 作为第三方的调用
 如果过滤器要将内容传到目的地,则需要FilterChain方法继续传送

public interface FilterChain

doFilter

void doFilter(ServletRequest request,
              ServletResponse response)
              throws IOException,
                     ServletException
 
 过滤器也会执行2次
 --->过滤非法文字
只要有request ,就可以用requestdispatcher进行跳转
 --->对内容进行统一编码
request.setCharacterEncoding("gb2312");
以后就不用设码了。
  --->对是否登录进行认证session
 session属于http范畴,所以需要转换为http范围
HttpServletRequest req=(HttpServletRequest)request;
HttpSession session=req.getSession();
if(session.getAttribute("name")!=null){
	chain.doFilter(request,response);
}
else{
request.getRequestDispatcher("login.jsp").forward(request,response);
}
 
开发时只专注于具体业务的实现,登录验证留给第三方
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值