标签:
用户登录业务:
1、用户登录页面点击登录校验用户名和密码不能为空!
2、登录失败页面不跳转,显示登录失败错误信息!
3、登录成功跳转到首页,首页显示登录人的姓名。
-------------------------相关代码-----------------------------------
1、login.jsp
首先提交执行函数checkForm进行用户名和密码的校验,然后提交到action="${pageContext.request.contextPath }/user_login.action",代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- saved from url=(0080)http://localhost:8080/mango/login.jhtml?redirectUrl=%2Fmango%2Fcart%2Flist.jhtml --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>会员登录</title> <link href="${pageContext.request.contextPath}/css/common.css" rel="stylesheet" type="text/css"/> <link href="${pageContext.request.contextPath}/css/login.css" rel="stylesheet" type="text/css"/> <script type="text/javascript"> function checkForm(){ //用户名校验 var username = document.getElementById("username").value; if(username==null || username==''){ alert("用户名不能为空"); return false; } //密码校验 var password = document.getElementById("password").value; if(password==null || password==''){ alert("密码不能为空"); return false; } } </script> </head> <body> <div class="container header"> <div class="span5"> <div class="logo"> <a href="http://localhost:8080/mango/"> "<img src="${pageContext.request.contextPath}/image/r___________renleipic_01/logo.gif" alt="商城"> </a> </div> </div> <div class="span9"> <div class="headerAd"> <img src="${pageContext.request.contextPath}/image/header.jpg" width="320" height="50" alt="正品保障" title="正品保障"> </div> </div> <%@include file="menu.jsp" %> </div> <div class="container login"> <div class="span12"> <div class="ad"> <img src="${pageContext.request.contextPath}/image/login.jpg" width="500" height="330" alt="会员登录" title="会员登录"> </div> </div> <div class="span12 last"> <div class="wrap"> <div class="main"> <div class="title"> <strong>会员登录</strong>USER LOGIN </div> <div><s:actionmessage/></div> <form id="loginForm" action="${pageContext.request.contextPath }/user_login.action" method="post" novalidate="novalidate" onsubmit="return checkForm();"> <table> <tbody><tr> <th> 用户名: </th> <td> <input type="text" id="username" name="username" class="text" maxlength="20"> </td> </tr> <tr> <th> 密 码: </th> <td> <input type="password" id="password" name="password" class="text" maxlength="20" autocomplete="off"> </td> </tr> <tr> <th> 验证码: </th> <td> <span class="fieldSet"> <input type="text" id="captcha" name="captcha" class="text captcha" maxlength="4" autocomplete="off"><img id="captchaImage" class="captchaImage" src="${pageContext.request.contextPath}/image/captcha.jhtml" title="点击更换验证码"> </span> </td> </tr> <tr> <th> </th> <td> <label> <input type="checkbox" id="isRememberUsername" name="isRememberUsername" value="true">记住用户名 </label> <label> <a >找回密码</a> </label> </td> </tr> <tr> <th> </th> <td> <input type="submit" class="submit" value="登 录"> </td> </tr> <tr class="register"> <th> </th> <td> <dl> <dt>还没有注册账号?</dt> <dd> 立即注册即可体验在线购物! <a href="./会员注册.htm">立即注册</a> </dd> </dl> </td> </tr> </tbody></table> </form> </div> </div> </div> </div> <div class="container footer"> <div class="span24"> <div class="footerAd"><img src="${pageContext.request.contextPath}/image/footer.jpg" width="950" height="52" alt="我们的优势" title="我们的优势" /></div> </div> <div class="span24"> <ul class="bottomNav"> <li> <a >关于我们</a> | </li> <li> <a>联系我们</a> | </li> <li> <a>招贤纳士</a> | </li> <li> <a>法律声明</a> | </li> <li> <a>友情链接</a> | </li> <li> <a target="_blank">支付方式</a> | </li> <li> <a target="_blank">配送方式</a> | </li> <li> <a>服务声明</a> | </li> <li> <a>广告声明</a> </li> </ul> </div> <div class="span24"> <div class="copyright">Copyright © 2005-2015 网上商城 版权所有</div> </div> </div> </body></html>
/** * 登录 * @return */ public String login(){ User existUser = userService.login(user); if(existUser==null){ //登录失败 this.addActionMessage("登录失败:用户名或密码错误或未激活!"); return LOGIN; }else{ //登录成功,将信息存入到session中 ServletActionContext.getRequest().getSession().setAttribute("existUser", existUser); return "loginSuccess"; } }
/** * 登录 * @param user * @return */ public User login(User user) { return userDao.login(user); }
/** * 登录 * @param user * @return */ public User login(User user) { String hql = "from User where username=? and password=? and state=?"; List<User> list = this.getHibernateTemplate().find(hql, user.getUsername(),user.getPassword(),1); if(list!=null && list.size()>0){ return list.get(0); } return null; }
<!-- 用户action --> <action name="user_*" class="userAction" method="{1}"> <result name="registPage">/WEB-INF/jsp/regist.jsp</result> <result name="input">/WEB-INF/jsp/regist.jsp</result> <result name="msg">/WEB-INF/jsp/msg.jsp</result> <result name="loginPage">/WEB-INF/jsp/login.jsp</result> <result name="login">/WEB-INF/jsp/login.jsp</result> <result name="loginSuccess" type="redirect">index</result> </action>
首先需要引入struts2的标签。
<%@ taglib uri="/struts-tags" prefix="s"%>
然后在页面中加入显示错误信息的代码。<div><s:actionmessage/></div>
login.jsp页面代码上面已列出,里面找得到这两句代码。
7、当登录成功时,需要跳转到首页,去掉登录注册的显示,增加显示登录人的姓名、我的订单和退出。
因为index.jsp中包含menu.jsp信息,所以需要在index.jsp中引入struts2的标签,如此menu.jsp中就可以用struts2的标签来进行条件判断了。
menu.jsp代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <div class="span10 last"> <div class="topNav clearfix"> <ul> <s:if test="#session.existUser == null"> <li id="headerLogin" class="headerLogin" style="display: list-item;"> <a href="${pageContext.request.contextPath }/user_loginPage.action">登录</a>| </li> <li id="headerRegister" class="headerRegister" style="display: list-item;"> <a href="${pageContext.request.contextPath }/user_registPage">注册</a>| </li> </s:if> <s:else> <li id="headerLogin" class="headerLogin" style="display: list-item;"> 欢迎您:<s:property value="#session.existUser.name"/>| </li> <li id="headerLogin" class="headerLogin" style="display: list-item;"> <a href="#">我的订单</a>| </li> <li id="headerRegister" class="headerRegister" style="display: list-item;"> <a href="#">退出</a>| </li> </s:else> <li> <a>会员中心</a> | </li> <li> <a>关于我们</a> </li> </ul> </div> <div class="cart"> <a href="./购物车.htm">购物车</a> </div> <div class="phone"> 客服热线: <strong>88888888</strong> </div> </div> <div class="span24"> <ul class="mainNav"> <li> <a href="./index.htm">首页</a> | </li> <li> <a href="./蔬菜分类.htm">定制套餐</a> | </li> <li> <a >安全频道</a> | </li> <li> <a>商城卡</a> | </li> <li> <a>蔬菜基地</a> | </li> <li> <a>节气养生</a> | </li> <li> <a>便民服务</a> | </li> </ul> </div>
标签:
原文地址:http://blog.csdn.net/xiongwt/article/details/45254805