小方的Java博客
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
27 随笔 :: 17 文章 :: 115 评论 :: 0 Trackbacks
<
2008年12月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
公告
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿
(6)
给我留言
查看公开留言
查看私人留言
随笔分类
(24)
AJAX(9)
(rss)
JAVA API 自学(2)
(rss)
其他技术(6)
(rss)
开发经验点滴(1)
(rss)
程序人生(3)
(rss)
非技术(3)
(rss)
随笔档案
(27)
2008年12月 (1)
2008年8月 (1)
2007年6月 (1)
2007年3月 (1)
2007年2月 (3)
2006年10月 (3)
2006年9月 (2)
2006年8月 (4)
2006年7月 (7)
2006年6月 (4)
文章分类
(17)
Hibernate(1)
(rss)
Html & Script(1)
(rss)
J2se 基础(3)
(rss)
J2se 高级(2)
(rss)
Java 学习方法(1)
(rss)
java 设计模式(2)
(rss)
Jsp(3)
(rss)
Servlet(1)
(rss)
Struts(2)
(rss)
其它(1)
(rss)
文章档案
(17)
2006年6月 (1)
2006年2月 (15)
2005年11月 (1)
相册
other
top
work.input_hint
连接专用
收藏夹
(1)
oo(1)
(rss)
BlogJava 朋友
中东大哥
在路上
快乐笛子
爱勤劳的鱼
最新随笔
1. DWR2.0的调用前拦截
2. [整理]sql语句一些实用技巧for oracle
3. [原创]毕业设计答辩之后感想
4. [整理]JavaScript的混合继承方法
5. [hibernate3]lab sysem项目一些建议
6. [整理]JavaScript最流行的2种定义类的方式
7. [原创/整理]首次发布DWR中文文档.PDF
8. [转载]"软件外包",中国软件行业何去何从?
9. [转载]与大学生谈软件外包
10. [原创]一个javascript的时钟
搜索
积分与排名
积分 - 74641
排名 - 740
最新评论
1. re: [原创]毕业设计答辩之后感想
同感!!!!!!!!!!!!!!
--wordcount
2. re: java多线程设计模式
高质量文章
--明明的JavaBlog
3. re: [整理] java.util.Calendar
评论内容较长,点击标题查看
--杨正益
4. re: [原创]公司实习中的领悟
看了你的,我才发现我做错了很多。我现在只是要专业知识而已。而已英语我从来就没有放在心上。看了你的我决定要好好的看英语了
--花花公子
5. re: [原创]DWR2.0的调用前拦截
在你这个应用里面怎么可以获得请求的URL呀,我想判断一下用户是否对某一个资源是否有访问权限的时候怎么样才能知道他是访问的那个资源呢
--小简
6. re: [原创]DWR2.0的调用前拦截
@bln13fb
这是我们公司自己的类,这里只是个范例,你自己有自己的类
--方佳玮
7. re: [原创/整理]首次发布DWR中文文档.PDF
支持您的事业!!!
--陈庚阳
8. re: [整理]SQL语句学习手册实例版
找的您好辛苦!您用心了!
--youyouday
9. re: [原创/整理]首次发布DWR中文文档.PDF
http://www.pusuo.net
--www.pusuo.net
10. re: [原创]DWR2.0的调用前拦截
ISessionContainer
SecurityFactory
如何导入
--bln13fb
阅读排行榜
1. [原创/整理]首次发布DWR中文文档.PDF(7609)
2. [整理]JavaScript最流行的2种定义类的方式(6155)
3. [整理]SQL语句学习手册实例版(5630)
4. [整理]Google Web Toolkit 和 googlipse(GWT eclipse 插件)开发ajax(4972)
5. [原创] 用GWT做的输入前提示(3487)
6. [整理] java.lang.reflect(2977)
7. DWR2.0的调用前拦截(2890)
8. [整理]sql语句一些实用技巧for oracle(2755)
9. [整理]介绍一个GWT的网站(2313)
10. [整理] java.util.Calendar(1849)
评论排行榜
1. [原创/整理]首次发布DWR中文文档.PDF(49)
2. [原创] 用GWT做的输入前提示(10)
3. [整理]SQL语句学习手册实例版(8)
4. [整理]sql语句一些实用技巧for oracle(6)
5. [原创]毕业设计答辩之后感想(6)
6. [原创]ajax in action 第9章 j2ee版 动态双组合功能(6)
7. [整理]介绍一个GWT的网站(4)
8. [原创]公司实习中的领悟(4)
9. [整理]什么才是最好处理中文方法(4)
10. [整理]Google Web Toolkit 和 googlipse(GWT eclipse 插件)开发ajax(3)
2008年12月5日
#
DWR2.0的调用前拦截
我在做公司某个框架时有这么一个需求。每次调用dwr的方法前要检查用户是否已经登录,否则就不能执行并且退到首页。
当然了,做拦截器有很多方式,但经过研究发现DWR自带很多插件,其中就有一个调用处理的插件。具体做法如下。
在web.xml里的DWR配置中加入一个参数:
<
init-param
>
<
param-name
>
org.directwebremoting.extend.Remoter
</
param-name
>
<
param-value
>
com.xxx.base.framework.web.MyDWRRemoter
</
param-value
>
</
init-param
>
然后自己创建这个实现类。
public
class
MyDWRRemoter
extends
DefaultRemoter
{
public
Replies execute( Calls calls )
{
HttpSession session
=
WebContextFactory.get().getSession();
ISessionContainer sc
=
( ISessionContainer ) session.getAttribute( ISessionContainer.SESSION_CONTAINER_KEY );
//
session检查
if
( sc
==
null
||
sc.getUserInfo()
==
null
)
{
logOut();
return
super
.execute(
new
Calls() );
}
else
{
IUserInfo userInfo
=
sc.getUserInfo();
if
(
!
SecurityFactory.getInstance().isOnline( userInfo.getUserID(), session.getId() ))
{
logOut();
return
super
.execute(
new
Calls() );
}
}
return
super
.execute( calls );
}
private
void
logOut()
{
WebContext wct
=
WebContextFactory.get();
Util utilThis
=
new
Util(wct.getScriptSession());
utilThis.addScript(
new
ScriptBuffer(
"
logOut()
"
));
}
}
其中,检查用户是否登录,如果没有登录就返回一个空的super.execute( new Calls());, 不能返回null否则会报错。
检查通过就调用super.execute( calls ); 其实calls里还能获得很多信息。
最后大家注意logOut方法,这里用到了DWR2.0新功能:DWR反向调用,就是DWR调用javascript,具体用法大家网上可以查到,需要配置的,我这里就不多说了。补充一下,addScript调用的是html里的function logOut().
这样的话,如果用户session超时,或被管理员踢掉,一旦他做任何dwr操作就会被强迫登出到首页了。
posted @
2008-12-05 20:42
方佳玮 阅读(2890) |
评论 (3)
|
编辑
收藏
Powered by:
BlogJava
Copyright © 方佳玮