Struts1第六天
来源:互联网 发布:vba 数组初始化 编辑:程序博客网 时间:2024/05/22 13:14
struts token
1 客户端重复刷新页面,可能导致数据的重复提交
原因:
跳转使用forward方式跳转,只显示第一期请求的路径信息
/add--->result.jsp
解决:
servlet :使用redirect方式跳转
struts :<forward redirect="true" ...>
2 客户端不登陆,可以随意其他资源
解决:
filter过滤除了登录和注册以外的所有资源
filter从session中获取用户名,如果找到,则继续后续操作。找不到则跳转到登录页面
登录流程中,必须在登录成功之后,在session中存储登录成功的用户名
3 同一个用户在系统中同时间内,只能登录一次
解决:
用户登录时,要在ServletContext中查找该用户名是否存在
如果存在,提示用户已登录
如果不存在,则让其正常登录
在用户登录成功之后,将其用户名存储在ServletContext中
4 客户端点击回退按钮,再次提交重复数据
解决:
1) 在业务层针对重复提交的数据进行业务判断,
问题:在业务层,通过访问数据库进行的判断,效率较低
2) 使用js将页面中的后退按钮置为无效,或者去掉工具栏
问题:客户端的界面不友好
3) token
优点:
界面比较友好
拦截判断工作,在web层进行处理
过程:
a.客户端首次访问系统时,系统必须分配给用户一个token
b.客户端携带token,以及自己的数据访问系统
c.系统先判断token是否有效,有效则正常访问<---|
如果无效,则跳转到错误页面 |
d.token有效地情况下,客户端正常处理完毕之前,|系统将该token置为无效
e.用户点击回退按钮,提交信息以及现有的token--|
addPage.do--->add.jsp---->add.do--->StuMgmtMappingDispatchAction--addStu()--->biz-->dao
==>
SaveTokenAction(产生新token给用户)--->addPage.do--->add.jsp---->add.do
StuMgmtMappingDispatchAction(先判断token)--addStu()--->biz-->dao
- Struts1第六天
- Struts1第二天
- Struts1第四天
- struts1
- STRUTS1
- Struts1
- struts1
- struts1
- struts1
- struts1
- Struts1
- struts1
- struts1
- Struts1
- Struts1
- struts1
- struts1
- struts1
- C#老生常谈之异步调用的参数及返回值
- 模式趣解
- Struts1第五天
- X Windows 与 Windows 95/98/NT 的比较: 无胜负之争
- qt 事件机制
- Struts1第六天
- uc/os 和uclinux的比较
- jstat 工具使用
- 数据去重复(txt文件去重复,js实现)
- 关于泡沫经济和实体经济的一点看法
- ORACLE客户端乱码--修改Oracle客户端字符集
- Qt事件
- 关于字符串与字节byte之前的相互转换问题
- 理解奈氏准则