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

 

 

 

 

 

原创粉丝点击