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>