`
hekuilove
  • 浏览: 158884 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

自定义DWR拦截器

阅读更多
使用DWR和其它mvc框架混用时(如struts和springmvc),不会经过struts和springmvc的拦截器,如果有需求,需要自定义一个dwr拦截器。

dwr.xml配置如下
<dwr>
	<allow>
		<filter class="com.twl.util.DWRFilter"></filter>
	</allow>
</dwr>


DWRFilter.java
由于doFilter没有提供HttpServletRequest的参数,所以获取request需要使用WebContextFactory去获取
package com.twl.util;

import java.lang.reflect.Method;

import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;

import org.directwebremoting.AjaxFilter;
import org.directwebremoting.AjaxFilterChain;
import org.directwebremoting.WebContextFactory;

import com.twl.core.framework.constant.UserConstant;
import com.twl.core.framework.user.UserSessionInfo;
import com.twl.core.framework.util.ContextContainer;

/**
 * DWR过滤器
 * 
 * @version 1.0
 * @author Quinn He
 * @date 2013-6-4
 */
public class DWRFilter implements AjaxFilter {

	/**
	 * @see Filter#destroy()
	 */
	public void destroy() {
	}

	/**
	 * @see Filter#init(FilterConfig)
	 */
	public void init(FilterConfig fConfig) throws ServletException {
	}

	@Override
	public Object doFilter(Object arg0, Method arg1, Object[] arg2,
			AjaxFilterChain arg3) throws Exception {
		final HttpServletRequest request = WebContextFactory.get().getHttpServletRequest(); //获取request对象
		final UserSessionInfo userInfo=(UserSessionInfo) request.getSession().getAttribute(UserConstant.USER_SESSION_INFO);
		ContextContainer.setCurrentLoginUser(userInfo);
		return arg3.doFilter(arg0, arg1, arg2);
	}

}

1
3
分享到:
评论

相关推荐

    s2sh与dwr整合实现的增删改查

    本项目中,自定义的过滤器和拦截器可能包含了这些功能,确保了应用的安全性和可控性。 通过这个项目,开发者可以学习到如何在实际开发中组合使用这些技术,理解它们各自的职责和如何相互协作。同时,这也是一个很好...

    structs2拦截器做的阻止未登录的用户访问

    通过创建自定义的拦截器,检查用户登录状态,并在配置文件中指定拦截器的使用,我们可以有效地阻止未登录用户访问受保护的资源,从而提高Web应用的安全性。在实际项目中,还可以结合其他安全机制,如CSRF防护、XSS...

    dwr框架资料(主要是关于dwr配置文件的说明)

    4. **Customelements**:允许开发者自定义扩展DWR的功能,如安全控制、拦截器等。 5. **ScriptSession元素**:用于控制DWR如何处理JavaScript会话状态。 6. **Security元素**:配置DWR的安全策略,如IP过滤、签名...

    dwr课件,java,反向ajax

    3. 在Web应用的配置文件中配置DWR拦截器和允许调用的类。 4. 在JavaScript中,通过DWR生成的接口调用服务器端的方法。 5. 处理返回的数据,更新页面内容。 通过学习这个DWR课件,你将掌握如何在Java Web应用中实现...

    dwr中文教程简单易学,我们可以将其当做一本DWR的完整教程

    9. **自定义扩展**:理解DWR的可扩展性,如何编写自定义转换器、适配器和拦截器,以满足特定项目需求。 10. **实战示例**:通过实际项目示例,比如构建一个实时聊天应用或动态图表展示,来加深对DWR的理解和应用。 ...

    关于dwr的api的中文官方文档

    1. **安装与配置**:将DWR JAR文件添加到项目类路径,并在Web应用的`web.xml`中配置DWR拦截器。 2. **定义远程接口**:创建Java接口,这些接口的方法将被暴露给客户端JavaScript调用。 3. **映射接口**:在`dwr.xml`...

    Struts2.0+dwr的分页

    在Struts2中,我们可以使用第三方库如DisplayTag或者自定义拦截器和Action来实现分页。DisplayTag是一个强大的JSP标签库,提供了易于使用的分页和排序功能。使用DisplayTag,你需要在Action中获取到数据的总条数和...

    Struts2-Webwork2-DWR

    此外,Struts2 强大的拦截器机制允许在请求处理过程中插入自定义逻辑,比如认证、日志记录等。 **Webwork2** 是 Struts2 的前身,它解决了 Struts1 在处理动态方法调用和类型安全等方面的问题。Webwork2 引入了动作...

    spring与dwr整合(简单)

    Spring 和 Direct Web Remoting (DWR) 的整合是将 Spring 框架的依赖注入和控制反转特性与 DWR 的...在实际项目中,根据需求还可以进行更复杂的配置和定制,比如自定义拦截器、错误处理等,以满足不同场景的应用需求。

    Struts2+DWR的简单实现

    拦截器允许开发者插入自定义逻辑,例如验证、事务管理等,无需修改Action代码。 2. **动态方法调用(Dynamic Method Invocation,DMI)**:Struts2支持动态方法调用,使得Action方法可以根据传入的参数来决定执行哪个...

    dwr+spring 注解方式

    - `dwr.xml`:虽然可以使用注解减少XML配置,但DWR仍然需要一个基本的XML配置文件,用于设置全局参数和拦截器。 - 在`dwr.xml`中,可以使用`&lt;convert&gt;`标签配置转换器,将Java对象转换为JavaScript能理解的格式。 ...

    struts2与dwr整合实例

    Struts2还引入了拦截器(Interceptor)的概念,可以实现如日志、权限检查等通用功能的复用。 **DWR框架详解** DWR是一款优秀的JavaScript到Java的远程调用框架,它使得前端JavaScript可以直接调用后端Java对象的...

    个人学习收集 DWR中文文档

    4. **可扩展性**:DWR的设计允许开发者通过自定义拦截器、转换器和序列化器来扩展其功能,以适应不同的项目需求。 5. **调试工具**:DWR提供了强大的调试工具,可以帮助开发者在开发过程中追踪和解决问题。 6. **...

    struts2+dwr整合例子,部署后可直接用

    Struts2还支持拦截器,这是一种AOP(面向切面编程)的概念,可以在Action执行前后插入自定义逻辑,例如权限检查、日志记录等。 DWR,另一方面,使得前端JavaScript可以直接调用后台的Java方法,就像它们都是本地...

    Struts中的Dwr增删改查

    你可以利用Spring框架的AOP(面向切面编程)特性或者Struts的拦截器来处理事务。 8. **异常处理**:当出现错误时,DWR和Struts都可以捕获并处理异常。你可以自定义异常处理策略,如返回错误信息给客户端,或者记录...

    ssh+dwr(实现3级联)

    1. **Struts2** 是一个基于MVC设计模式的Web应用框架,它简化了开发流程,提供了丰富的拦截器、插件和自定义标签库。 2. **Spring** 是一个全面的企业级应用开发框架,包括依赖注入(DI)、面向切面编程(AOP)、...

    dwr对struts2的支持包

    描述中提到的“这个支持包是人家自己写的”,意味着这是一个社区或个人开发的非官方解决方案,它可能包含了自定义的拦截器、过滤器或者其他组件,以实现Struts2和DWR之间的通信。同时,提供源代码意味着开发者可以...

    DWR中文文档,自学好帮手

    此外,对于高级话题,如自定义转换器、拦截器和安全性设置,文档也会有详尽的讲解。 通过阅读这份中文文档,你可以掌握DWR的基本用法和高级特性,从而在开发富互联网应用(Rich Internet Applications, RIA)时更...

    dwr中文文档

    此外,DWR还支持自定义拦截器和过滤器,以满足特定需求。 DWR中文文档详细阐述了这些概念,并通过实例代码和解释帮助开发者快速上手。学习这份文档,开发者将能充分利用DWR的强大功能,提升Web应用的交互性和响应...

    dwr小例子,适合初学者使用

    1. **安装和配置DWR**:在Eclipse或MyEclipse中导入DWR库,并在web.xml中配置DWR拦截器和servlet。 2. **创建Java类**:编写Java类,包含你想暴露给JavaScript调用的方法。 3. **生成JavaScript接口**:使用DWR的...

Global site tag (gtag.js) - Google Analytics