`
hekuilove
  • 浏览: 156351 次
  • 性别: 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
分享到:
评论

相关推荐

    个人信息管理系统Struts2 spring hibernate dwr

    用户可建立自己的知识分类,对于私密信息(比喻日记等)可增加访问权限,只有登陆用户才能看到,非登陆用户只能浏览公开信息,以及增加新的信息,但无权修改以删除信息,用户权限拦截采用了Struts2的自定义拦截器 ...

    个人知识管理系统 Struts2.0 + Spring + Hibernate

    用户可建立自己的知识分类,对于私密信息(比喻日记等)可增加访问权限,只有登陆用户才能看到,非登陆用户只能浏览公开信息,以及增加新的信息,但无权修改以删除信息,用户权限拦截采用了Struts2的自定义拦截器 ...

    个人知识管理系统 Struts2 + Spring + Hibernate

    用户可建立自己的知识分类,对于私密信息(比喻日记等)可增加访问权限,只有登陆用户才能看到,非登陆用户只能浏览公开信息,以及增加新的信息,但无权修改以删除信息,用户权限拦截采用了Struts2的自定义拦截器 ...

    java项目之hrm人事管理项目(java毕业设计)

    3、拦截器功能实现以及整合动态代理 4、公告模块的增加、修改、删除、查询以及预览功能实现、文件异步上传 5、文档模块的增加、修改、删除、查询以及文档的上传下载 6、员工信息的增加、修改、删除、查询以及员工...

    低清版 大型门户网站是这样炼成的.pdf

    2.6.3 使用自定义拦截器 98 2.7 小结 100 第3章 struts 2标签库详解与ajax技术应用 103 3.1 struts 2主题与模板 103 3.2 struts 2控制标签详解 105 3.2.1 if/elseif/else标签详解 105 3.2.2 iterator标签详解 ...

    Spring in Action(第二版 中文高清版).part2

    11.3.4 使用注释声明拦截器 11.4 小结 第12章 访问企业服务 12.1 从JNDI中获取对象 12.1.1 使用传统的JNDI 12.1.2 注入JNDI对象 12.1.3 在Spring 2中注入JNDI对象 12.2 发送电子邮件 12.2.1 配置邮件发送...

    Spring in Action(第二版 中文高清版).part1

    11.3.4 使用注释声明拦截器 11.4 小结 第12章 访问企业服务 12.1 从JNDI中获取对象 12.1.1 使用传统的JNDI 12.1.2 注入JNDI对象 12.1.3 在Spring 2中注入JNDI对象 12.2 发送电子邮件 12.2.1 配置邮件发送...

    Spring in Action(第2版)中文版

    11.3.4使用注释声明拦截器 11.4小结 第12章访问企业服务 12.1从jndi中获取对象 12.1.1使用传统的jndi 12.1.2注入jndi对象 12.1.3在spring2中注入jndi对象 12.2发送电子邮件 12.2.1配置邮件发送器 12.2.2...

    Spring攻略(第二版 中文高清版).part2

    8.3 用处理程序拦截器拦截请求 297 8.3.1 问题 297 8.3.2 解决方案 298 8.3.3 工作原理 298 8.4 解析用户区域 302 8.4.1 问题 302 8.4.2 解决方案 302 8.4.3 工作原理 302 8.5 外部化区分区域的...

    Spring攻略(第二版 中文高清版).part1

    8.3 用处理程序拦截器拦截请求 297 8.3.1 问题 297 8.3.2 解决方案 298 8.3.3 工作原理 298 8.4 解析用户区域 302 8.4.1 问题 302 8.4.2 解决方案 302 8.4.3 工作原理 302 8.5 外部化区分区域的...

Global site tag (gtag.js) - Google Analytics