- 浏览: 854389 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (280)
- java相关 (29)
- linux系统 (55)
- ipsec (0)
- ssl (3)
- 信息安全 (13)
- web相关 (35)
- windows (9)
- c,c++ (14)
- log4j (3)
- hibernate (8)
- sqlite (1)
- 程序人生 (2)
- js (2)
- 生活点滴 (3)
- 网络相关 (14)
- 问题积累 (15)
- 数据库相关 (27)
- 软件测试 (2)
- PKI相关 (2)
- 程序设计 (7)
- 犄角旮旯 (0)
- 杂七杂八 (0)
- 硬件相关 (14)
- 防火墙 (2)
- 电子商务 (2)
- 多媒体相关 (1)
- 内存管理 (4)
- 面向对象 (1)
- csp (1)
- 驱动开发 (3)
- 移动开发 (2)
- openssl多线程实例 (1)
最新评论
-
xiaoyao3857:
博主很有探索精神嘛,学习了
Linux主机名Hostname详解 -
hiskyrisa:
言简意赅,好文章。
Flex是什么 -
layznet:
犯了类似错误。使用的是derby数据库。driverClass ...
java.sql.SQLException: No suitable driver -
idision:
你好,文章有一句createSubjectKeyId(keyT ...
bouncycastle 产生证书 -
zheng12tian:
代码有全的不?只贴一部分,,,,
在LOG4J中把日志写入远程数据库
Filter作用 :
每当使用应用服务器页面或servlet的时候,应用服务器就会根据web.xml里面配置的filter 去进行过滤理。
调用处理过程就是:
1.接受request->去处理第一个filter.init-> 处理第一个filter.doFilter
2.如果不想继续使用filter过滤就在filter.doFilter中使用 return
3.如果要继续使用filter过滤就filter.doFilter中 chain.doFilter(servletRequest, servletResponse);
使用例子:
1.web.xml配置
<filter>
<filter-name>Filter_name</filter-name>
<filter-class>Filter_class_name</filter-class>
<init-param>
<description>set 'true' to enable the filter</description>
<param-name>enabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>excepts</param-name>
<param-value>Excepts_Path</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Filter_name</filter-name>
<url-pattern>filter_path</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Filter_name</filter-name>
<url-pattern>filter_path</url-pattern>
</filter-mapping>
2、java代码
2.1 init 函数
public void init(FilterConfig filterConfig) throws ServletException {
//检查是否打开SSOFilter功能
String _enable = filterConfig.getInitParameter("enabled");
if (_enable != null && "true".equalsIgnoreCase(_enable)) {
enabled = true;
}
//初始化例外列表,即不经过SSOFilter的请求地址
String _exceptStr = filterConfig.getInitParameter("excepts");
if (_exceptStr != null) {
String[] _excepts = _exceptStr.split(",");
for (int i = 0; i < _excepts.length; i ++) {
excepts.add(_excepts[i]);
}
}
}
2.2 doFilter函数
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
String path = request.getServletPath();
/**
* 当WEB程序启了SSOFilter,并且请求的路径没被配置为例外时,
* 检查用户是否已通过统一用户平台登录,已登录的话创建会话,否则转到统一登录页面。
*/
if (enabled && !excepts.contains(path)) {
if (logger.isDebugEnabled()) {
logger.debug("check member has signoned ...");
}
boolean signOned = SSOHelper.hasSignOned(request, response);
if (logger.isDebugEnabled()) {
logger.debug("Signoned? " + signOned);
}
if (!signOned) {
String SSOContextUri = SysParamHelper.getSysParam(SysParamConstants.CONTEXT_URI_SSO);
StringBuffer url = new StringBuffer(SSOContextUri);
url.append("/Login");
//记住入口地址
url.append("?entrance=");
url.append(request.getRequestURL());
if (request.getQueryString() != null) {
url.append("|");
url.append(request.getQueryString());
}
response.sendRedirect(url.toString());
return;
}
}
chain.doFilter(servletRequest, servletResponse);
}
每当使用应用服务器页面或servlet的时候,应用服务器就会根据web.xml里面配置的filter 去进行过滤理。
调用处理过程就是:
1.接受request->去处理第一个filter.init-> 处理第一个filter.doFilter
2.如果不想继续使用filter过滤就在filter.doFilter中使用 return
3.如果要继续使用filter过滤就filter.doFilter中 chain.doFilter(servletRequest, servletResponse);
使用例子:
1.web.xml配置
<filter>
<filter-name>Filter_name</filter-name>
<filter-class>Filter_class_name</filter-class>
<init-param>
<description>set 'true' to enable the filter</description>
<param-name>enabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>excepts</param-name>
<param-value>Excepts_Path</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Filter_name</filter-name>
<url-pattern>filter_path</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Filter_name</filter-name>
<url-pattern>filter_path</url-pattern>
</filter-mapping>
2、java代码
2.1 init 函数
public void init(FilterConfig filterConfig) throws ServletException {
//检查是否打开SSOFilter功能
String _enable = filterConfig.getInitParameter("enabled");
if (_enable != null && "true".equalsIgnoreCase(_enable)) {
enabled = true;
}
//初始化例外列表,即不经过SSOFilter的请求地址
String _exceptStr = filterConfig.getInitParameter("excepts");
if (_exceptStr != null) {
String[] _excepts = _exceptStr.split(",");
for (int i = 0; i < _excepts.length; i ++) {
excepts.add(_excepts[i]);
}
}
}
2.2 doFilter函数
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
String path = request.getServletPath();
/**
* 当WEB程序启了SSOFilter,并且请求的路径没被配置为例外时,
* 检查用户是否已通过统一用户平台登录,已登录的话创建会话,否则转到统一登录页面。
*/
if (enabled && !excepts.contains(path)) {
if (logger.isDebugEnabled()) {
logger.debug("check member has signoned ...");
}
boolean signOned = SSOHelper.hasSignOned(request, response);
if (logger.isDebugEnabled()) {
logger.debug("Signoned? " + signOned);
}
if (!signOned) {
String SSOContextUri = SysParamHelper.getSysParam(SysParamConstants.CONTEXT_URI_SSO);
StringBuffer url = new StringBuffer(SSOContextUri);
url.append("/Login");
//记住入口地址
url.append("?entrance=");
url.append(request.getRequestURL());
if (request.getQueryString() != null) {
url.append("|");
url.append(request.getQueryString());
}
response.sendRedirect(url.toString());
return;
}
}
chain.doFilter(servletRequest, servletResponse);
}
发表评论
-
关于Bad version number in .class file的问题
2010-11-15 14:20 970关于Bad version number in .class ... -
一个获取文件crc32校验码的简洁的java类
2010-05-12 19:48 3246从jdk1.4开始,java核心包里已经提供对crc计算的支持 ... -
Windows下Apache与Tomcat的整合
2010-05-12 13:52 1041为了完成这个任务,在 ... -
SSL双向认证java实现
2010-05-09 11:35 1775本文通过模拟场景,介 ... -
java.util.ResourceBundle 使用详解
2010-04-28 19:39 833一、认识国际化资源文件 这个类提供软件国际化的捷 ... -
基于JAAS实现登录
2010-04-25 22:11 1240JAAS:Java Authentication and ... -
什么是JAAS,以及灵活的Java安全机制
2010-04-25 22:05 1844今天在论坛上看到JASS,不清楚是什么呢,网上找了一下,受益良 ... -
Java插件技术
2010-04-25 21:31 21041.Java插件技术 Java插件技术(Java Plu ... -
java RMI的例子(转)
2010-04-25 21:11 919参考别人的程序后写了个自己的RMI 程序RMI ,远程方法 ... -
Java安全通信、数字证书及应用实践(转)
2010-04-21 21:05 1652摘要 : 在本文 ... -
Eclips 内存溢出
2010-04-13 16:26 1016在Eclipse 根目录下找到eclipse .ini ... -
Eclipse 启动不起来异常:JVM terminated. Exit code=-1
2010-04-11 10:09 7424Eclipse 启动不起来,出现以下错误: ... -
Java程序员需要了解的几个开源协议介绍
2009-12-21 21:32 1090介绍几个比较常见的开 ... -
apache lucene介绍
2009-12-15 09:16 1917什么是lucene Apache Lucene是一个开放源程序 ... -
Java基础:Java中堆内存与栈内存分配浅析
2009-08-11 20:19 1319Java 把内存划分成两种:一种是栈内存,另一种是堆内存 ... -
对synchronized(this)的一些理解
2009-07-23 10:21 1148一、当两个并发线程访问同一个对象object中的这个synch ... -
Linux下JNI调用
2009-07-09 12:43 1432整个实现过程可以分为五步来完成: 1)写一个声明了nativ ... -
如何在Java中执行其它程序
2009-07-09 12:42 2278在编写Java程序时,有时 ... -
linux下jdk的安装与卸载
2009-07-06 10:46 2075下面是卸载步骤: 用ro ... -
JNI技术小试
2009-06-23 14:28 1211目前 java 与 dll 交互的技术主要有 ...
相关推荐
SpringBoot之Filter和Listener简单运用.rar
提出一种针对动态集合的矩阵型Bloom filter表示与查找法(matrix Bloom filter,MBF),它使用一个s×m位矩阵对数据集合进行哈希表示与查找,较同类算法SBF和DBF,能继承Bloom filter算法常数查找开销的基本精髓。
l7-filter教程抓包,教你如何运用工具分析包
主要介绍了Django ORM filter() 的运用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
主要教一些简单的TI的仿真器的运用,来自百度下载
经研究,提出采用改进的布隆过滤器(Bloom filter)对RFID采集数据进行去重过滤,并运用到中间件系统中。改进的Bloom filter主要将两个标准的Bloom filter组成二维并行Bloom filter,对RFID采集数据所包含的两个属性...
P0307:采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波 P0308:图像的自适应魏纳滤波 P0309:运用5种不同的梯度增强法进行图像锐化 P0310:图像的高通滤波和掩模处理 P0311:利用巴特沃斯...
本代码对初学高级图像处理很有帮助,运用mablab编码
运用凯斯西储大学滚动轴承故障数据,运用MOMEDA对信号进行周期的增强,提高信噪比,并运用希尔伯特变换,与Teager能量算子包络解调,体现Teager能量算子二次增强。同时还存在MCKD,
输入为九轴数据,运用线性卡尔曼滤波,模拟出物体运动轨迹
运用gobarfilter进行数据分析,里面还有用fft方法对数据进行分析
filter 属性定义了元素的可视效果 blur 给图像设置高斯模糊。"radius"一值设定高斯函数的标准差,或者是屏幕上以多少像素融在一起, 所以值越大越模糊。 如果没有设定值,则默认是0;这个参数可设置css长度值,但...
Servlet实验报告.pdf
<filter-name>encodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class> <param-name>encoding <param-value>UTF-8 </filter> ...
DirectShow使用一种叫Filter Graph的模型来管理整个数据流的处理过程,运用DirectShow,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。这样使在多媒体数据库管理...
本资源是用C#编写的应用directshow库(DirectShowLib 是kawaic,snarfle等人对微软DirectShow的C#开源封装。目的是使C#开发者也能方便的使用DirectShow。该lib是对DirectShow封装得非常完善,虽然尚有很多功能未经...
用MATLAB设计的简单的陷波器,运用的是切比雪夫滤波器,特点是过渡带窄,但是通带没有巴特沃兹的平坦。
运用GA算法对LCL滤波器参数进行优化,计算各参数值
实验1:Java Web开发环境及Web编程基础;实验2 JSP、Servlet及JDBC应用开发;实验3 扩展JavaScript框架应用;实验4 Web应用综合设计; 天津理工大学