注册功能:

前端JSP:提供表单注册信息以及访问路径,发送请求到Strus2。

Struts2 : 通过模型驱动接收并封装User对象,Spring依赖注入(无参构造+setter方法)获取业务层UserService,通过集成ActionSupport类获取Excute方法,在这个方法里面操作值栈,实现业务功能,请求跳转。

service  :  通过属性注入(无参构造+setter方法)Dao , 通过工具类对密码加密,调用dao中的save方法实现注册功能。

Dao      :  在Dao实现类继承Hibernate模版:HibernateDaoSupport ,调用模版中的save方法将注册信息持久化到数据库。

登录功能&权限拦截:

jsp:将表单信息提交到Struts2,Struts通过模型驱动的方式接收.

Struts2: UserAction的login方法里面,通过Spring依赖注入获取service,调用业务层的login方法实现登录业务。

service:拿到user对象 , 对其密码加密处理,调用Dao的login方法实现登录业务。

Dao: 调用Hibernate模版的find方法,返回一个List集合,如果List集合不为空,返回list.get(0)

Struts2:如果user为空,添加错误信息,返回登录页面。如果不为空,调用ActionContext.getContext.getSession.put()方法,将其存放到域对象里面

权限拦截:利用Struts2框架实现

创建一个拦截类PrivilegeInterceptor,继承MethodFilterInterceptor , 重写doIntercept方法。ServletActionContext.getRequest().getSession().getAttribute("existUser")获取当前页面的对象。

如果值为null, 存储错误信息,返回登录页面。如果有,则说明已经登录, return invocation.invoke()放行。

在Struts.xml中为每个action都配置一个拦截器,同时将注册、登录设置为excludeMethods,因为不需要拦截这两个。

最新文章

  1. MySQL学习笔记一:常用显示命令
  2. LoadRunner 函数之 web_custom_request
  3. Geodatabase数据模型
  4. 【移动适配】移动Web怎么做屏幕适配(一)
  5. 用Qt开发第一个Hello World程序
  6. 三道题(关于虚表指针位置/合成64位ID/利用栈实现四则运算)
  7. 【32】确定你的public继承塑模出Is-A关系
  8. 03链栈_LinkStack--(栈与队列)
  9. python 列表推导的注意点
  10. ANDROID_MARS学习笔记_S03_005_Geocoder、AsyncTask
  11. Cannot find class in classpath 报错
  12. 重装系统之后Hexo快速配置
  13. javascript学习01
  14. 基于腾讯云的Centos6.2系统搭建Apache+Mysql+PHP开发环境
  15. trait与policy模板应用简单示例
  16. 笔试常考--浏览器兼容性问题及解决方案(CSS)
  17. weblogic上服务器建立
  18. python_字符串的操作
  19. Got error 28 from storage engine 解决方法
  20. Android 开发工具类 11_ToolFor9Ge

热门文章

  1. 【PAT甲级】1083 List Grades (25 分)
  2. ASP.NET Core搭建多层网站架构【8.2-使用AutoMapper映射实体对象】
  3. JDBC 通过读取文件进行初始化
  4. linux与python3安装redis
  5. 吴裕雄--天生自然TensorFlow2教程:损失函数及其梯度
  6. javascript 原型继承 与class extends 继承对比
  7. ES6简单语法
  8. IDEA中常用优化设置
  9. 蓝桥杯-铺瓷砖(dfs)
  10. 标定设备自动化-ASAP3