简单CMS项目笔记之七:后台登陆登出模块
来源:互联网 发布:玛格丽特小镇 知乎 编辑:程序博客网 时间:2024/06/05 06:27
这块儿比较简单,就是action的跳转,sql查询用户名密码的匹配,session写入;登出时action要type="redirectAction"。利用i18n作统一的错误处理值得借鉴。
一:action
还是用*通配,要注意就是登出的时候action要type="redirectAction"
<!-- 管理员登录/退出 --> <action name="log_*" class="com.yxq.action.LogInOutAction" method="{1}"> <result name="input">/pages/admin/Login.jsp</result> <result name="login">/pages/admin/view/AdminTemp.jsp</result> <result name="logout" type="redirectAction">goindex</result> </action>
二:登陆jsp
和原来写过比,就是多了fielderror,
用于接受校验出错的提示信息,然后给登录者提示一下
(错误信息是通过i18n的getText完成的)
<s2:form action="log_Login.action" theme="simple">
<table border="0" width="90%" cellspacing="0" cellpadding="0"> <tr height="50"><td colspan="2"><s2:fielderror/></td></tr> <tr height="30"> <td align="right" width="40%">用户名: </td> <td style="text-indent:5"><s2:textfield name="user.userName" size="30"/></td> </tr> <tr height="30"> <td align="right">密 码: </td> <td style="text-indent:5"><s2:password name="user.userPassword" size="30"/></td> </tr> <tr height="60"> <td></td> <td> <s2:submit value="登录"/> <s2:reset value="重置"/> <s2:a href="index.jsp">[返回首页]</s2:a> </td> </tr> </table>
这里边jsp向action传值,用的是直接传“ 实例.属性 ”的方法,
这种方法只要求action里有同名的实例,再加上对应属性的setter&getter就行了
三:action
没有向info那样单独继承一个superaction,原因是比较简单
仅多写一个bean就行了
public class LogInOutAction extends MySuperAction {protected UserSingle user;
登录:dao里查值,登录成功的话把user实例写入session
/** 功能:查询数据表,验证是否存在该用户 */public String Login(){String sql="select * from tb_user where user_name=? and user_password=?";Object[] params={user.getUserName(),user.getUserPassword()};OpDB myOp=new OpDB();if(myOp.LogOn(sql, params)){//dao层判断是否登录成功session.put("loginUser",user);//写入sessionreturn LOGIN;//跳转到管理员管理页面}else{//用户名或密码错误addFieldError("loginE",getText("city.login.wrong.input"));return INPUT;//跳到重新登录页面}}
验证是否登录:看session中有值且是user实例
/** 功能:判断当前用户是否登录 */public String isLogin(){Object ob=session.get("loginUser");//去session里取值if(ob==null||!(ob instanceof UserSingle))//判断有值 且是User实例,代表登陆成功return INPUT;elsereturn LOGIN;}
退出前清掉session(此程序session里没别的东西),之后action要客户端跳转回首页
/** 功能:退出登录 */public String Logout(){session.clear();return "logout";}
四:数据校验
还是用action的validate-方法名执行
这个在jsp里加个js验证也行
这的错误信息是通过i18n的getText完成的,所有错误统一放在src/action文件夹下的package.properties文件里
里边都是类似:city.login.no.name=\u8bf7\u8f93\u5165 <b><font color="red">\u7528\u6237\u540d\uff01</font></b> 这样的定义,值得借鉴
/** 功能:验证是否输入用户名和密码 */public void validateLogin() {String name=user.getUserName();String password=user.getUserPassword();if(name==null||name.equals(""))addFieldError("nameError",getText("city.login.no.name"));if(password==null||password.equals(""))addFieldError("passwordError",getText("city.login.no.password"));}
登录成功后进入一个比较复杂的页面,用于显示全部后台管理的信息,
这个后边单说,这会儿已经完成了登录和登出的接口
- 简单CMS项目笔记之七:后台登陆登出模块
- 简单CMS项目笔记之八:后台信息分类筛选模块
- 简单CMS项目笔记之六:信息发布模块
- 简单CMS项目笔记之九:后台信息修改、审核、删除
- 出版商后台登陆登出的分析
- 简单CMS项目笔记之二:前台页面处理流程
- 简单CMS项目笔记之五:struts标签前台显示
- 登陆登出
- 简单Blog项目笔记之七:文章的评论
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建项目
- 简单CMS项目笔记之三:搜索栏和自定义superAction
- 简单CMS项目笔记之四:信息显示(列表显示和显示具体单项)
- 简单CMS项目笔记之一:分页类的实现
- 用户登陆登出日志
- 登陆模块学习笔记
- PHP学习笔记(七):前台用户登陆、后台匹配数据库进行校验
- Django 登录/登出 模块
- spring security 集成 cas单点登陆 之 【登出后无法登陆的问题】
- android 电容屏(二):驱动调试之基本概念篇
- Android开发:ScrollView嵌套GridView的解决办法
- 定位表的最后操作时间
- 安装完Oracle数据库,给scott账户解锁方法
- Java常用工具包 Jodd
- 简单CMS项目笔记之七:后台登陆登出模块
- Hibernate的generator属性的意义
- 自制精美易用的DBGrid
- 算法导论(原书第3版)
- 人工智能的社会基础和社会价值
- android 电容屏(三):驱动调试之驱动程序分析篇
- spring事务管理器的源码和理解
- jquery 循环获取checkBox的值,以及对复选框选中,取消,操作按钮
- Java序列化的机制和原理,以及自定义序列化问题