六、dwr的过滤器和日志配置

dwr的过滤器和日志配置
1、过滤器使用
利用dwr给我们提供的过滤器,我们只要实现了dwr给我们提供的过滤器的接口,我们就可以在dwr中使用过滤器。看dwr的文档
org.directwebremoting
Interface AjaxFilter
All Known Implementing Classes:
ExecuteAjaxFilter, ExtraLatencyAjaxFilter, H3SessionAjaxFilter

--------------------------------------------------------------------------------

public interface AjaxFilterA filter is a way to insert procesing tasks at various points during the processing of an Ajax call.

Example filters:

Authentication
Latency simulators
Data cleansing - remove private data
Logging filters - when you need specific logging action


Since:
DWR 2.0
Author:
Joe Walker [joe at getahead dot ltd dot uk]

--------------------------------------------------------------------------------

Method Summary
java.lang.Object doFilter(java.lang.Object obj, java.lang.reflect.Method method, java.lang.Object[] params, AjaxFilterChain chain)
The doFilter method of the AjaxFilter is called by DWR each time an Ajax request is made on a method that this filter is configured against.


我们看到有AjaxFilter接口,dwr给我们提供了三个实现类,我们今天自己来实现AjaxFilter接口,然后在dwr.xml里面配置上我们实现的过滤器就可以实现过滤。这个过滤不同于我们在j2ee规范里面在servlet里面提供的过滤器,虽然实现的功能都是过滤的功能,但是这里必须要实现AjaxFilter接口而不是j2ee规范里面在servlet里面提供的过滤器,所以这个仅仅需要在dwr.xml里面去配置,并不需要在web.xml里面去配置。
看看例子:
package com.lukuijun.filter;
import java.lang.reflect.Method;
import org.directwebremoting.AjaxFilter;
import org.directwebremoting.AjaxFilterChain;
public class DWRFilter implements AjaxFilter {
/**
* @param Object object 目标对象
* @param Method method 目标对象的方法
* @param Object[] arr 目标对象的参数数组
* @param AjaxFilterChain chain 过滤器链
*/
public Object doFilter(Object object, Method method, Object[] arr,
AjaxFilterChain chain) throws Exception {
System.out.println("拦截目标方法:" + method.getName());
Object obj = chain.doFilter(object, method, arr);
System.out.println("目标方法" + method.getName() + "执行结束");

return obj;
}
}
用法和servlet里面的过滤器差不多,但是注意一点,如果这个过滤器调用了目标对象的方法,那么返回的时候是返回调用了目标方法它的放回值,如果返回其他值就有可能出现错误。一定是返回目标方法返回的值。
dwr.xml中配置过滤器:
在<create>标签里面配置<filter class="com.lukuijun.filter.DWRFilter"></filter>
运行看看结果:
拦截目标方法:testCrossDomain
跨域成功
目标方法testCrossDomain执行结束
说明我们配置的过滤器拦截到了目标方法,我这个过滤器是针对这个类级别的。我可以对类中的所有方法过滤,只要这个方法是对外公开的。针对全局的过滤器,需要配置在allow标签下。
局部的过滤器和全局的过滤器。dwr官方也不敢保证过滤器的安全性,这个需要我们根据实际情况去处理

2、日志的配置
dwr给我们提供了一些日志,它主要是针对我们如果我们所用的jdk版本如果是1.4以下的版本,因为在1.3的时候,官方没有给我们提供基础的日志配置信息。在用dwr的时候如果我们用的jdk是1.3版本的,那么这个版本过低而且没有日志的信息,所以dwr官方给我们提供了这么一个日志,实现了自己的日志,并不用我们去引入其他的日志包,还有一点,这个日志的配置,官方中采用了如果是jdk1.4及以上版本的话,会采用commons.logging当中的日志信息,commons.logging中的日志信息是apache中的一个项目。这个项目给我们提供了一个通用的日志接口,我们常用的log4j就是实现了接口在它基础上提供的,怎么样在我的应用中配置我的日志,日志配置好后,我可以通过日志查看信息,我们这里的日志,为了方便调试。我们现在希望把dwr源码中调试的一些信息给我们打印出来,给我们看,这些信息对今后研究源码是有帮助的。
a、引入日志包
log4j.jar
commons-logging.jar 给我们提供通用的接口
在src下面
commons-logging.properties里面写一句话
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4jLogger
org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.Log4jLogger
接着在web.xml里面配置:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值