用户登陆,退出等基本Action(2)

用户登陆页面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'/>" οnsubmit="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'/>" οnclick="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" οnclick="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'/>" οnclick="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>
 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值