过滤器和监听器

1 过滤器

使用过滤器对所有jsp设置编码格式:
package com.bdqn.filter;

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 EncodingFilter implements Filter{



    public void doFilter(ServletRequest req, ServletResponse resp,
            FilterChain chain) throws IOException, ServletException {
        req.setCharacterEncoding("utf-8");
        chain.doFilter(req, resp);
        resp.setCharacterEncoding("utf-8");

    }


    }


}
配置web.xml
<filter>
  <filter-name>EncodingFilter</filter-name>
  <filter-class>com.bdqn.filter.EncodingFilter</filter-class>   
  </filter>
  <filter-mapping>
  <filter-name>EncodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>

2.1 监听器HttpSessionBindingListener

当实现HttpSessionBindingListener接口的对象存放到sessions时开始监听,无需配置web.xml文件:
package com.bdqn.entity;

import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;

import com.bdqn.utils.Contants;

public class User implements HttpSessionBindingListener{
private String name;
private String pwd;

public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getPwd() {
    return pwd;
}
public void setPwd(String pwd) {
    this.pwd = pwd;
}

public void valueBound(HttpSessionBindingEvent arg0) {
    Contants.count++;
}
public void valueUnbound(HttpSessionBindingEvent arg0) {
    Contants.count--;   
}

}

2.2 监听器HttpSessionListener

需要配置web.xml文件
package com.bdqn.listening;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;


public class LoginListener implements HttpSessionListener{

    public void sessionCreated(HttpSessionEvent event) { 
        ServletContext sc = event.getSession().getServletContext();
        Integer count = (Integer) sc.getAttribute("count");
        Integer count2 = 0;
        if(count==null){
            count2=new Integer(1);
        }else{
        count2 = new Integer(count++);
        }
        event.getSession().setAttribute("count", count2);


    }

    public void sessionDestroyed(HttpSessionEvent event2) {
        ServletContext sc = event2.getSession().getServletContext();
        Integer count = (Integer) sc.getAttribute("count");
        Integer count2 = 0;
        if(count==null){
            count2=new Integer(0);
        }else{
        count2 = new Integer(count--);
        }
        event2.getSession().setAttribute("count", count2);

    }

}
配置web.xml
 <listener>
  <listener-class>
  com.bdqn.listening.LoginListener
  </listener-class>
  </listener>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值