public class MyFilter implements javax.servlet.Filter {
2 /**
3 * 初始化
4 */
5 @Override
6 public void init(FilterConfig arg0) throws ServletException {
7 }
8 /**
9 * 销毁
10 */
11 @Override
12 public void destroy() {
13 }
14 /**
15 * 过滤
16 */
17 @Override
18 public void doFilter(ServletRequest arg0, ServletResponse arg1,
19 FilterChain arg2) throws IOException, ServletException {
20 arg0.setCharacterEncoding("utf-8"); //设置request对象的字符集格式
21 arg2.doFilter(arg0, arg1); //继续执行 请求
22 }
23 }
这个是Filter实体的代码,在web.xml文件中我们需要对其需要拦截的请求配置监听范围,或者说过滤哪些url。
2 myfilter
3 com.mine.test.MyFilter
4
5
6 myfilter
7 /*
8
2. 拦截器 我们使用struts预定义过的拦截器时只需要做相应的配置即可,大多数常用的都会在default中有定义,而在struts.xml中不写就默认使用这个default。当我们自己创建了一个Intercepter对象时我们需要对其进行配置,具体配置的方法这里就不赘述了,戳此处 http://www.blogjava.net/brock/archive/2009/08/20/291919.html 。拦截器中有三个基本的方法对应其生命周期。
a.初始化 b.执行拦截 c.销毁。针对action请求进行处理,脱离了servlet API,不处理一般的url请求。
3. Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。主要是在服务器启动时加载
主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。
package com.lzw.filter.demo;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class InitDataListener implements ServletContextListener {
private static ServletContext servletContext;
public static ServletContext getServletContext() {
return servletContext;
}
@Override
public void contextInitialized(ServletContextEvent contextEvent) {
servletContext = contextEvent.getServletContext();
//final ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
System.out.println("服务器启动完毕!");
System.out.println(servletContext);
}
@Override
public void contextDestroyed(ServletContextEvent sce) {}
}
web.xml
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
com.lzw.filter.demo.InitDataListener
控制台结果:
信息: Starting service Catalina
2013-10-31 15:13:55 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.42
服务器启动完毕!
org.apache.catalina.core.ApplicationContextFacade@7966340c
2013-10-31 15:13:56 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-apr-8080"]
2013-10-31 15:13:56 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-apr-8009"]
2013-10-31 15:13:56 org.apache.catalina.startup.Catalina start
信息: Server startup in 402 ms