Filter Servlet实例应用
来源:百度文库 编辑:神马文学网 时间:2024/04/27 11:57:02
Filter的意思是可以在Servlet实例进行实质性的处理之前,起到“过滤”的作用.
一个Filter可以过滤一个或多个Servlet,Filter必须实现javax.Servlet.Filter接口,并且必须定义以下三个方法:init(),destory(),doFilter().
下面的例子演示记录客户端主机信息的Filter:
程序代码:
/**
* 该实例演示记录客户端主机信息的Filter
* www.javatx.cn
*/
package cn.javatx;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
/**
* @author ljfan
*
*/
public class logFilter implements Filter {
private ServletContext context;
/* (non-Javadoc)
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
*/
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
context = arg0.getServletContext();
}
/* (non-Javadoc)
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
context.log("[" + arg0.getRemoteHost() + "] request: " +((HttpServletRequest)arg0).getRequestURI());
arg2.doFilter(arg0, arg1);
context.log("[" + arg0.getRemoteHost() + "] done");
}
/* (non-Javadoc)
* @see javax.servlet.Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
context = null;
}
}
当前web应用的web.xml配置为:
程序代码:
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
logFilter
cn.javatx.logFilter
logFilter
/*
最后用myeclipse插件自动部署到tomcat路径下,启动tomcat,在浏览器中输入
http://localhost:8080/Filter/ (Filter为此web应用名称)
可以在tomcat 目录的log目录下的localhost.2006-01-02.log看到以下消息:
2006-1-2 16:25:51 org.apache.catalina.core.ApplicationContext log
信息: [127.0.0.1] request: /Filter/
2006-1-2 16:25:51 org.apache.catalina.core.ApplicationContext log
信息: [127.0.0.1] done
这表明logFilter已经被server调用成功.
当然在实际应用中filter还有其他用处,象登陆验证,编码转化等.
Java天下社区
http://www.javatx.cn
欢迎大家上来交流Java技术。
一个Filter可以过滤一个或多个Servlet,Filter必须实现javax.Servlet.Filter接口,并且必须定义以下三个方法:init(),destory(),doFilter().
下面的例子演示记录客户端主机信息的Filter:
程序代码:
/**
* 该实例演示记录客户端主机信息的Filter
* www.javatx.cn
*/
package cn.javatx;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
/**
* @author ljfan
*
*/
public class logFilter implements Filter {
private ServletContext context;
/* (non-Javadoc)
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
*/
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
context = arg0.getServletContext();
}
/* (non-Javadoc)
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
context.log("[" + arg0.getRemoteHost() + "] request: " +((HttpServletRequest)arg0).getRequestURI());
arg2.doFilter(arg0, arg1);
context.log("[" + arg0.getRemoteHost() + "] done");
}
/* (non-Javadoc)
* @see javax.servlet.Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
context = null;
}
}
当前web应用的web.xml配置为:
程序代码:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
最后用myeclipse插件自动部署到tomcat路径下,启动tomcat,在浏览器中输入
http://localhost:8080/Filter/ (Filter为此web应用名称)
可以在tomcat 目录的log目录下的localhost.2006-01-02.log看到以下消息:
2006-1-2 16:25:51 org.apache.catalina.core.ApplicationContext log
信息: [127.0.0.1] request: /Filter/
2006-1-2 16:25:51 org.apache.catalina.core.ApplicationContext log
信息: [127.0.0.1] done
这表明logFilter已经被server调用成功.
当然在实际应用中filter还有其他用处,象登陆验证,编码转化等.
Java天下社区
http://www.javatx.cn
欢迎大家上来交流Java技术。
Filter Servlet实例应用
servlet和JSP过滤器Filter
Servlet,Filter的url-pattern详解
Servlet和Filter的url匹配
Servlet和Filter的url匹配url-pattern
Servlet,Filter的url-pattern详解 - LuckyFox - JavaEye技术网站
web.xml中listener, filter,servlet 加载顺序及其详解
实例应用
Servlet中的过滤器(拦截器)Filter与监听器Listener的作用和区别11
Servlet
Ajax应用实例
Portlet应用开发实例
Excel函数应用实例
注册表实例应用-视频教程
iptables高级应用实例
JFreeChart应用实例
:Word2003实例应用目录
应用程序设计实例
上海东方医院无线应用实例
故障恢复控制台应用实例
视频教程:Word2003实例应用目录.
视频教程:Word2003实例应用目录
上海东方医院无线应用实例
视频教程:Word2003实例应用目录!