zoukankan      html  css  js  c++  java
  • 用户登陆,退出等基本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>
  • 相关阅读:
    hdwiki 学习笔记 01
    hdwiki model目录下的函数类
    hdwiki 的模板和标签
    Linux下CPU内存占用过高思路分析
    Linux下后台运行jar包
    Arrays.asList集合类的集合转换方法的坑!!!(不支持的操作异常:UnsupportedOperationException)
    Linux下定时备份mysql数据库
    解决Navicat远程连接数据库出现错误:1130-host ... is not allowed to connect to this MySql server
    深入JVM学习
    JUC的等待唤醒机制(wait/notify await/singal)之生产者和消费者问题
  • 原文地址:https://www.cnblogs.com/koal/p/4367657.html
Copyright © 2011-2022 走看看