Servlet过滤器和监听器

时间:2023-03-09 03:47:58
Servlet过滤器和监听器

1,Servlet过滤器

 <filter>
<filter-name>charset</filter-name>
<filter-class>org.guangsoft.filter.CharsetFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter> <filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> Filter:
package org.guangsoft.filter; public class CharsetFilter implements Filter
{
private String encoding;
public void init(FilterConfig filterconfig) throws ServletException
{
this.encoding = filterconfig.getInitParameter("endcoding");
}
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException
{
req.setCharacterEncoding(encoding);
chain.doFilter(req, resp);
}
public void destroy()
{
}
}

2,Servlet监听器

Web.xml:
<listener>
<listener-class>org.guangsoft.listener.CountListener</listener-class>
</listener>
Listener:
public class CountListener implements HttpSessionListener
{
private ServletContext sc = null;
public void sessionCreated(HttpSessionEvent se)
  {
this.sc = se.getSession().getServletContext();
Integer i = (Integer) this.sc.getAttribute("online");
if (i == null)
i = new Integer(0);
i = new Integer((i.intValue()) + 1);
this.sc.setAttribute("online", i);
}
public void sessionDestroyed(HttpSessionEvent httpsessionevent)
  {
Integer i = (Integer) this.sc.getAttribute("online");
if (i == null)
i = new Integer(1);
i = new Integer((i.intValue()) - 1);
this.sc.setAttribute("online", i);
}
}