用户登陆,退出等基本Action

用户登陆页面user_login.jsp对应action为login.do:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>用户登陆</title>
<script type="text/javascript">
function confirmCodeNew(o){
    o.src="<s:url action='confirm' namespace='/validation'/>";
}
</script>
</head>

<body>
<form id="loginform" name="loginform" method="post" action="<s:url action='process'/>" onsubmit="return checkLoginForm();">
  <table width="308" height="232" border="0" cellpadding="0" cellspacing="0" class="table3">
    <tr>
    <td colspan="10"><span class="font_red"><s:actionerror/></span></td>
    </tr>
      <tr>
        <td width="82" height="40" align="right" valign="middle" class="font06">用户名:</td>
        <td colspan="3" align="left" valign="middle"><input type="text" name="username" id="username" tabindex="1" /></td>
      </tr>
      <tr>
        <td width="82" height="40" align="right" valign="middle" class="font06">密    码:</td>
        <td colspan="3" align="left" valign="middle"><input type="password" name="pwd" id="pwd" tabindex="2" /></td>
      </tr>
      <tr>
        <td width="82" height="40" align="right" valign="middle" class="font06">验证码:</td>
        <td width="59" align="left" valign="middle"><input name="confirm_code" type="text" class="table3" size="5" maxlength="4" /></td>
        <td width="79"><img src="<s:url action='confirm' namespace='/validation'/>" onclick="confirmCodeNew(this)" style="cursor:pointer" /></td>
        <td width="86" align="left" valign="middle" class="font06">&nbsp;</td>
      </tr>
      <tr>
        <td height="40">&nbsp;</td>
        <td colspan="3" align="left" valign="middle"><input type="checkbox" name="rember_me" onclick="remeber_me_change(this);"/>
            <span class="font06">记住用户名</span></td>
      </tr>
      <tr>
        <td height="50">&nbsp;</td>
        <td height="50" colspan="3" align="left" valign="middle"><img src="<s:url value='/images/3vsxdt_36.gif'/>" onclick="checkLoginForm()" style="cursor:pointer" width="158" height="42" border="0" /></td>
      </tr>
  </table>
  </form>
</body>
</html>

  用户登陆类(UserLogin.java):

package com.web.struts.action;

import javax.servlet.http.Cookie;

import org.apache.commons.lang.StringUtils;

import commodel.Member;
import com.service.IMemberService;
import com.tools.Constant;
import com.tools.MD5Bean;

/**
 * title:用户登陆
 * 
 * @author conkeyn
 * @时间 2009-3-24:上午10:06:25
 */
public class UserLogin extends BaseAction {

    /**  */
    private static final long serialVersionUID = -8059803575427183277L;

    private Member member;

    public void setMemberService(IMemberService memberService) {
        this.memberService = memberService;
    }

    private IMemberService memberService;

    /**
     * 退出
     * 
     * @return
     */
    public String logout() {
        getSession().removeAttribute(Constant.MEMBER_SESSION_ID);
        Cookie[] cookies = getRequest().getCookies();
        Cookie member_cookie = null;
        for (int i = 0; i < cookies.length; i++) {
            member_cookie = cookies[i];
            if (member_cookie != null
                    && StringUtils.isNotBlank(member_cookie.getName())
                    && StringUtils.isNotBlank(member_cookie.getValue())
                    && member_cookie.getName().equals(
                            Constant.MEMBER_SESSION_ID)) {
                member_cookie.setMaxAge(-1);// 设置有效期为-1秒,浏览器会自动删除
                getResponse().addCookie(member_cookie);
                break;
            }
        }
        return SUCCESS;
    }

    /**
     * 用户登陆
     * 
     * @return
     */
    public String login() {

        return "login";
    }

    /**
     * 处理用户登陆
     * 
     * @return
     */
    public String process() {
        String confirm_code = getRequest().getParameter("confirm_code");
        String confirmcode = (String) getSession().getAttribute("confirmcode");
        if (StringUtils.isNotBlank(confirm_code)
                && StringUtils.isNotBlank(confirmcode)
                && confirm_code.equals(confirmcode)) {
            String username = getRequest().getParameter("username");
            String pwd = getRequest().getParameter("pwd");
            String rember_me = getRequest().getParameter("rember_me");
            MD5Bean md5 = new MD5Bean();
            pwd = md5.MD5Encrypt(pwd);
            member = memberService.getMember(username);
            if (member == null) {
                this.addActionError("不存在该用户,请注册后再登陆!");
                return ERROR;
            } else if (!pwd.equalsIgnoreCase(member.getPwd())) {
                this.addActionError("密码错误,请重新输入!");
                return ERROR;
            }
            getSession().setAttribute(Constant.MEMBER_SESSION_ID,
                    member.getUsername());
            // 设置cookie
            if (StringUtils.isNotBlank(rember_me)
                    && rember_me.equalsIgnoreCase("true")) {
                Cookie cookie = new Cookie(Constant.MEMBER_SESSION_ID, member
                        .getUsername());
                cookie.setMaxAge(60 * 60 * 24 * 365);
                getResponse().addCookie(cookie);
            }
            member.setLoged(true);
            memberService.saveMember(member);
        } else {
            this.addActionError("验证码错误,请重新输入!");
            return ERROR;
        }
        return SUCCESS;
    }

    public Member getMember() {
        return member;
    }

    public void setMember(Member member) {
        this.member = member;
    }

}

Struts配置文件(struts-login.xml):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd" >
<struts>
    <package name="login" extends="struts-default">
        <!-- 登陆 -->
        <action name="login" class="memberAction" method="login">
            <result name="login" type="dispatcher"> /WEB-INF/pages/userlogin.jsp
            </result>
        </action>
        <action name="logout" class="memberAction" method="logout">
            <result name="success" type="redirectAction">login</result>
        </action>
        <action name="process" class="memberAction" method="process">
            <result name="error" type="dispatcher">/WEB-INF/pages/userlogin.jsp
            </result>
            <result name="success" type="dispatcher">/WEB-INF/pages/userlogin_msg.jsp
            </result>
        </action>
    </package>
</struts>

 

posted @ 2015-03-26 09:07  koal  阅读(527)  评论(0编辑  收藏  举报