一 注册功能&登录功能,权限拦截
注册功能:
前端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,因为不需要拦截这两个。
最新文章
- MySQL学习笔记一:常用显示命令
- LoadRunner 函数之 web_custom_request
- Geodatabase数据模型
- 【移动适配】移动Web怎么做屏幕适配(一)
- 用Qt开发第一个Hello World程序
- 三道题(关于虚表指针位置/合成64位ID/利用栈实现四则运算)
- 【32】确定你的public继承塑模出Is-A关系
- 03链栈_LinkStack--(栈与队列)
- python 列表推导的注意点
- ANDROID_MARS学习笔记_S03_005_Geocoder、AsyncTask
- Cannot find class in classpath 报错
- 重装系统之后Hexo快速配置
- javascript学习01
- 基于腾讯云的Centos6.2系统搭建Apache+Mysql+PHP开发环境
- trait与policy模板应用简单示例
- 笔试常考--浏览器兼容性问题及解决方案(CSS)
- weblogic上服务器建立
- python_字符串的操作
- Got error 28 from storage engine 解决方法
- Android 开发工具类 11_ToolFor9Ge