Java登陆验证模块的实现及小结.doc

上传人:wux****ua 文档编号:9625044 上传时间:2020-04-06 格式:DOC 页数:3 大小:40.52KB
返回 下载 相关 举报
Java登陆验证模块的实现及小结.doc_第1页
第1页 / 共3页
Java登陆验证模块的实现及小结.doc_第2页
第2页 / 共3页
Java登陆验证模块的实现及小结.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述
登陆验证模块的实现登陆页面验证首先是验证账号, 验证码是否填写,密码长度是否符合要求,验证码是否正确。这几个验证是通过自定义的几个$.fn扩展函数实现的($.fn.remote=Function(url,msg,msgCnt)实现的,一般将这些自定义的函数放在一个js文件中,便于维护。自定义函数一般包含相应的提示字符串,及节点对象$(“#id”)等参数。通过函数对节点的var value = this.val();value是否为空或空字符串的判断,相应的改变节点text属性的值。1验证码正确验证1)验证码正确与否的验证是通过采用了Ajax技术的函数实现的。对应的action的result的属性为json(result要配置ok的参数),action类要有布尔类型的名为ok的属性,通过返回值ok,更改相应的改变节点text属性的值。如:$.fn.remote=function(url,msg,msgCnt)var value=this.val();/获得表单提交的数据,如你所填入的验证码/资费名称var name=this.attr(name);/获得表单名称,如验证码文本框的name:verifiCode var b=false;$.ajax(url:url+?+name+=+value,dataType:json,async:false,success:function(data) if(data)$(msgCnt).text();b=true;else$(msgCnt).text(msg); );return b;2)验证码的点击更新是利用了result=stream的属性(要配置name=inputName,name=contentType的参数),点击发送请求,对应的action(该类必须有InputStream类的属性,且名字要和result相应参数的属性值相同)生成验证码并存入session。2账户和密码的验证当前面一系列的验证结果都满足条件时,才能提交表单。可定义一个函数实现:if(b1 & b2 & b4) $(#loginForm).submit();相应action 接受到数据后,根据账户和密码调用DAO的相关方法,查询返回admin。如果admin存在则转发到主页面(通过result在admin的不同状态下返回的字符串实现不同的type=redirectAction),此时将admin存入session。为后面的登陆检查验证做准备。session.put(KEY_ADMIN, admin);如果不存在就,还是停留在登陆页面。3检查登陆验证。为了防止未登录而访问数据,通过struts2的自定义拦截器功能实现登陆检查验证。可通过实现接口Interceptor或者抽象类AbstractInterceptor,我选择继承AbstractIntercepto,相对较简洁。在接口定义的方法intercept(ActionInvocation in)实现验证逻辑。通过ActionInvocation的getInvocationContext()方法获得action上下文对象ActionContext。通过action上下问对象获得session对象,在session对象中获取admin对象:Admin admin = (Admin)session.get(Constants.KEY_ADMIN);如果admin为空,则通过return 返回字符串及全局result回到登陆页面。如果admin不为空,则通过ActionInvocation对象调用invoke()方法,调用后面的action。权限管理:每个用户具有不同的角色,不同的角色具有不同的权限。当用户登陆的时候,根据用户对象取得用户所具有的角色,根据角色id在privileges.xml(通过privilegereader类)文件中获得用户具有的所有权限,然后将此所有权限的集合存入session。当用户每一次发送请求时都要通过拦截器,在拦截器中截取用户的请求路径(request.getServletPath()),并检查是否存在于session中的用户所具有权限中。如果没有就返回到提示页面,如果有就调用invoke()方法执行后面的action,result。拦截器的配置:1. 首先注册拦截器2. 然后定义拦截器栈,将默认拦截器栈也加进来。3. 为当前package中所有Action指定默认的拦截器:资费管理模块:资费管的功能主要有资费信息的增加、管理、删除和修改等功能。采用三大框架整合技术实现的。在applicationContext.xml文件中配置连接池(用户名、密码、驱动包、连接路径),将连接池注入SessionFactory中,在SessionFactory中配置Hibernate框架参数:如方言dialect,show_sql等,指定映射描述。然后开启组件扫描:因为采用注解的形式,所以dao要继承HibernateDaoSupport,定义一个set方法调用父类的super.setSessionFactory(sf)方法,实例化HibernateTemplate。在dao中利用getHibernateTemplate()实现一列的增删改查方法。List list = getHibernateTemplate().find(hql,name);关于事务:在applicationContext.xml文件中定义事务管理Bean,然后定义通知,可以在里面()指定目标组件中的哪些方法采用哪种事务管理方式。然后定义,指定切入点,将指定的dao当做目标。然后关联通知和切入点:。将dao用Respository扫描进组件。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!