Struts2+Spring+iBatis整合用户管理实例之二:登录和登出
来源:互联网 发布:如何投资知乎 编辑:程序博客网 时间:2024/04/29 07:42
登录和登出俩操作的流程都是:
1.jsp提交到struts的Action,Action会查找所需的实例,这时spring帮助注入实例;
2.注入的loginAction实例(spring已经往里注入了其他所需的实例)会去servise里查找实现的方法
3. 执行具体实现后,还要对session操作,记录登录、登出状态。
1.登录jsp
根据session判断是否已登录,
登录过的情况下再显示:用户名、用户注销按钮、登录时间
<% String s = (String)session.getAttribute("username"); if(null != s)//判断是否已分配session,登录过的情况下再显示以下信息 { %> <%=s %>同学你好! <input type="button" name="lo" value="用户注销"onClick="doLink('logOut')" /><br> <h4>(您已经在本站点停留了<%=(session.getLastAccessedTime()-session.getCreationTime())/1000 %>秒)</h4> <!--计算session创建时间--> <% } %>
根据传参控制调用的Action以及方法
<!-- 根据传参控制调用的Action以及方法 --><script type="text/javascript">var link;function doLink(link) {document.getElementById("myform").action = link;document.getElementById("myform").submit();}</script></head>表单
<form id="myform" action="login" method="post"><input type="button" name="b2" value="注册"onClick="window.open('register.jsp','new','height=250,width=400,top=100,left=400')" /> <input type="button" name="b1" value="用户管理"onClick="doLink('queryall')" /><br><br>username:<input type="text" name="username" /><br>password:<input type="password" name="password" /><br><input type="submit" name="sub" value="登录" /> <input type="reset" name="reset" value="重置" /></form>
2.loginAction
这个Action只管登录和登出的事
里边聚合了一个service实例,这个要靠spring来注入,
除了要调用service的方法,还有通过session来管理登录状态:
public class LoginAction extends ActionSupport { private String username; private String password; private ILogin service; public LoginAction() { }public String login(){boolean flag = false;flag = service.login(getUsername(), getPassword());if(true == flag){Map<String, Object> attibutes = ActionContext.getContext().getSession();//记录用户登录信息attibutes.put("username", username);attibutes.put("password", password);//登录session }return flag==true?SUCCESS:ERROR; } public String logOut(){ Map<String, Object> attibutes = ActionContext.getContext().getSession();attibutes.remove("username"); return SUCCESS;} //setter&getter}
3.loginService
这儿只用到了dao中的一个方法,从数据库中查询后放回给action
public class LoginService implements ILogin{private User_SSI user; private IUserDao dao;public boolean login(String username, String password) { user.setUsername(username); user.setPassword(password); List<User_SSI> l = dao.queryUserName(user.getUsername()); for(int i=0;i<l.size();i++) { String pwd = l.get(i).getPassword(); if(user.getPassword().equals(pwd)) return true; } return false; } //setter&getter
4.登录结果jsp
通过action处理后跳转到下面的页面中
成功可以返回继续操作,或者直接注销
<% String sa = (String)session.getAttribute("username"); if(null != sa && !sa.equals("") ) //null是防止NullPointer,如果session设置成功,就不是空值 { %> <h2> 登录成功 ,欢迎 :"<%=sa%>" 登录 </h2> <br> <h2> <a href="index.jsp"> 返回主页</a></h2> <br> <h2> <a href="logOut.jsp">注销按钮</a> </h2> <% } else { %> <h2>还未登录 <a href="index.jsp">点此处登录</a></h2> <% } %>
失败倒计时两秒后退回登陆页重新登录
<body><% response.addHeader("refresh","2;URL=index.jsp"); %> <h2> 登录失败,两秒后自动跳转回主页</h2> <h2> 或点此处<a href="index.jsp">重新登录</a> </h2> </body>
<body> <% response.setHeader("refresh","3;URL=index.jsp"); //倒计时跳转 %> <h2>已经注销成功, 3秒内若没有跳转,<a href="index.jsp">请点击此处</a></h2> </body>
- Struts2+Spring+iBatis整合用户管理实例之二:登录和登出
- Struts2+Spring+iBatis整合用户管理实例之二:登录和登出
- Struts2+Spring+iBatis整合用户管理实例之三:用户管理,增删改查
- Struts2+Spring+iBatis整合用户管理实例之三:用户管理,增删改查
- Struts2+Spring+iBatis整合用户管理实例之一:多个Action、service的配置
- Struts2+Spring+iBatis整合用户管理实例之一:多个Action、service的配置
- Struts2+Spring+Ibatis用户注册、登录、管理入门学习实例源码下载
- ibatis和Spring整合实例
- Spring2.5+Struts2+Ibatis整合之二
- Struts2+Ibatis+Spring整合
- ibatis学习笔记(五)>>>>>>>ibatis和Spring整合实例
- Spring IBatis Struts2 集成之二:Spring与Struts2集成
- struts2+ibatis+spring整合配置文件
- struts2+spring+ibatis框架整合
- struts2+spring+ibatis框架整合
- struts2+spring+ibatis框架整合
- Struts2+Spring +ibatis 整合问题
- Spring +Struts2+ibatis 整合细节
- 11205 - The broken pedometer
- POJ 2699 The Maximum Number of Strong Kings(最大流)
- 大端、小端详解
- 郭嘉.十胜十败
- MYSQL锁详解
- Struts2+Spring+iBatis整合用户管理实例之二:登录和登出
- ios iphone UILabel 多行文字自动换行 (自动折行)
- bat(续五)获取批处理文件所在路径
- 二分,插入,选择,冒泡,希尔排序
- Github for Windows使用图文教程
- Java中如何正确使用字体编码
- SuperVCD Store项目
- Android:安装apk时提示:There is a problem parsing the package
- 在web.xml中配置openSessionInView的使用