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里面配置:
分享到:
相关推荐
1. **安装与配置**:如何在你的Java应用服务器上集成DWR,配置DWR的XML配置文件(dwr.xml),以及如何在web.xml中设置过滤器和servlet。 2. **基本概念**:解释了Reverse Ajax、C/sweetalert、Batching和Caching等...
只需要配置相应的拦截器或过滤器,就可以让DWR处理特定的HTTP请求。 **7. 总结** DWR作为一种强大的AJAX解决方案,简化了前后端通信,提高了Web应用的交互性和响应性。了解其工作原理和配置使用方法,可以帮助...
- **安全性**:始终启用DWR的安全过滤器,防止未授权的访问。 - **性能优化**:考虑批量调用和缓存策略,减少网络往返次数。 - **日志管理**:根据项目需求合理配置日志级别,确保调试和故障排查的便利性。 5. *...
配置包括设置DWR的拦截器、过滤器以及允许访问的类等。 3. **创建可远程调用的Java对象** 要使Java对象可被JavaScript访问,需要在服务器端创建一个Java类,并使用DWR的`@RemoteProxy`注解标记。这个类中的公共...
确保DWR过滤器和Struts过滤器按正确的顺序执行。 **4.5 DWR与Weblogic或PageFlow** 对于运行在Weblogic服务器上的应用程序,DWR同样可以提供强大的支持。 **4.6 DWR与Hibernate** Hibernate是一个流行的对象关系...
- **主要配置**: 包括DWR过滤器的配置、初始化参数等。 - **常用参数列表**: 如安全性相关的参数、性能优化参数等。 - **日志配置**: 可以配置DWR的日志级别和日志记录机制。 - **多个dwr.xml配置**: 支持多个`...
2. **DWR的配置**:在项目中使用DWR,首先需要在服务器端进行配置,包括在web.xml中配置DWR过滤器和Servlet,以及在项目的类路径下创建dwr.xml配置文件,用于定义允许客户端访问的Java类和方法。 3. **DWR的使用**...
- `dwr.xml`:虽然可以使用注解减少XML配置,但DWR仍然需要一个基本的XML配置文件,用于设置全局参数和拦截器。 - 在`dwr.xml`中,可以使用`<convert>`标签配置转换器,将Java对象转换为JavaScript能理解的格式。 ...
在`dwr.xml`中,你可以指定允许访问的类和方法,还可以配置安全策略,如IP过滤,或者自定义转换器和错误处理器。例如,你可能会看到这样的配置: ```xml ``` 这段配置表示允许JavaScript访问`...
9. **进阶主题**:可能包括异步调用、批量调用、CSP(Content Security Policy)支持、自定义过滤器和扩展DWR等功能的深入探讨。 在实际开发中,DWR 3.0的使用者可以通过这个中文文档学习如何创建DWR配置文件,定义...
3. **日志配置** DWR支持多种日志机制。在没有`java.util.logging`的JDK 1.3环境中,DWR会默认使用`HttpServlet.log()`方法记录日志。如果类路径包含`logging.jar`,DWR会自动切换到使用`logging`进行日志输出。你...
3. **配置DWR**:在Web应用的web.xml中配置DWR的Servlet和过滤器,定义允许的类和方法。 4. **创建Java类和方法**:编写服务器端的Java类和方法,这些方法将在客户端的JavaScript中被调用。 5. **生成JavaScript接口...
在使用DWR之前,需要在Web应用的`web.xml`中配置DWR过滤器和Servlet。过滤器确保HTTP请求被正确地路由到DWRServlet,Servlet则处理AJAX请求并返回响应。 3. **创建远程接口** 在服务器端,我们需要创建一个公开给...
1. **配置**:DWR的配置主要包括在Web应用的`web.xml`中设置过滤器和Servlet,以及在服务器端定义允许的Java类和方法。 2. **安全设置**:确保只允许特定的JavaScript和Java对象进行交互,防止跨站脚本攻击(XSS)和...
6. `web.xml`:Web应用的部署描述符,配置了Struts2和DWR的过滤器和监听器。 这个项目展示了如何利用Struts2和DWR的强强联合,实现高效、动态的Web应用。通过这个例子,开发者可以学习到如何在实际开发中有效地利用...
**标题解析:** "LogViewer(DWR2)" 指的是一个基于DWR2技术的日志查看器示例项目。DWR (Direct Web Remoting) 是一个开源的JavaScript库,它允许Web应用程序在客户端和服务器之间进行实时通信,无需使用Ajax或页面...
6. `filters`:添加处理请求和响应的过滤器,可以用于安全检查或日志记录。 **PPT**:这是一套DWR的学习教程,可能包括以下主题: 1. **DWR简介**:讲解DWR的概念、特点和优势。 2. **环境搭建**:演示如何配置...
- **开始顺序**:确保DWR在Struts过滤器之前被初始化。 ##### 4.5 DWR与Weblogic或PageFlow 探讨在特定应用服务器下DWR的配置和优化。 ##### 4.6 DWR与Hibernate - **让DWR和Hibernate一起工作的检查列表**:确保...