登陆、注销

本文详细阐述了基于Struts框架的用户登录界面设计及后台验证逻辑,包括表单提交处理、用户信息验证、错误反馈及成功登录后的跳转流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

loginUI.jsp 

<!-- 显示表单 -->
<s:form action="user_login" focusElement="loginNameInput">
    <div id="CenterAreaBg"> 
        <div id="CenterArea">
            <div id="LogoImg"><img border="0" src="${pageContext.request.contextPath}/style/blue/images/logo.png" /></div>
            <div id="LoginInfo">
                <table BORDER=0 CELLSPACING=0 CELLPADDING=0 width=100%>
                	<tr>
                		<td colspan="3"><!-- 显示错误 -->
							<font color="red"><s:fielderror/></font>
                		</td>
                	</tr>
                    <tr>
                        <td width=45 class="Subject"><img border="0" src="${pageContext.request.contextPath}/style/blue/images/login/userId.gif" /></td>
                        <td>
                        	<s:textfield name="loginName" size="20" tabindex="1" cssClass="TextField required" id="loginNameInput" />
                        </td>
                        <td rowspan="2" style="padding-left:10px;">
                        	<input type="image" tabindex="3" src="${pageContext.request.contextPath}/style/blue/images/login/userLogin_button.gif" />
                        </td>
                    </tr>
                    <tr>
                        <td class="Subject"><img border="0" src="${pageContext.request.contextPath}/style/blue/images/login/password.gif" /></td>
                        <td><s:password name="password" id="aa" size="20" tabindex="2" showPassword="false" cssClass="TextField required" /></td>
                    </tr>
                </table>
            </div>
            <div id="CopyRight"><a href="javascript:void(0)">© 2010 版权所有 </a></div>
        </div>
    </div>
    </s:form>

UserAction.java

    /**登陆*/
    public String login() throws Exception{
    	User user = userService.findByLoginNameAndPassword(model.getLoginName(),model.getPassword());
    	if(user == null){
    		addFieldError("login", "用户名或密码不正确");
    		return "loginUI" ;
    	}else{
    		//登陆用户
    		ActionContext.getContext().getSession().put("user", user);
    		return "toIndex" ;
    	}
    }
    
    /**注销*/
    public String logOut() throws Exception{  
    	ActionContext.getContext().getSession().remove("user");
    	return "logOut" ;
    }

UserServiceImpl.java

public User findByLoginNameAndPassword(String loginName, String password) {
		//使用密码的MD5摘要进行对比
		String md5Digest = DigestUtils.md5Hex(password);
		return (User) getSession().createQuery(//
				"FROM User u WHERE u.loginName=? AND u.password=?")//
				.setParameter(0, loginName)//
				.setParameter(1, md5Digest)//
				.uniqueResult();
	}

struts.xml

<!-- 用户管理 -->
        <action name="user_*" class="userAction" method="{1}">
        	<result name="list">/WEB-INF/jsp/userAction/list.jsp</result>
        	<result name="toList" type="redirectAction">user_list</result>
        	<result name="saveUI">/WEB-INF/jsp/userAction/saveUI.jsp</result>
        	
        	<result name="loginUI">/WEB-INF/jsp/userAction/loginUI.jsp</result>
        	<result name="logOut">/WEB-INF/jsp/userAction/logout.jsp</result>
        	<result name="toIndex" type="redirect">/index.jsp</result>
        </action>


一个完整的登录系统通常涉及到几个关键组件,包括主页、登录页面、登出功能以及相关的JavaBean。以下是基本的设计概述: 1. **主页** (Home Page): 登录系统的第一界面通常是主页,用户可以浏览系统信息或者查看非登录用户可用的功能。主页一般是一个静态页面,不需要JavaBean。 2. **登录页面** (Login Page): 用户通过此页面输入用户名和密码进行身份验证。这个页面会包含HTML表单,用于收集用户的输入,并通过`HttpServletRequest`等Java对象与服务器交互。对应的JavaBean可能包括一个User对象,存储用户输入的信息,以及一个LoginService,处理登录请求和验证逻辑。 ```java public class LoginForm { private String username; private String password; // getters and setters } public class LoginService { public boolean validate(LoginForm form) { // 实现验证逻辑,如数据库查询或校验规则 return userService.validate(form.getUsername(), form.getPassword()); } } ``` 3. **登录功能** (Login Functionality): 当用户提交登录表单,后台服务会调用LoginService的validate方法。如果验证成功,将设置session以保持用户登录状态;否则显示错误消息。 4. **登出功能** (Logout): 用户可以选择注销,通常涉及清除session并跳转到主页或登录页,通知用户已登出。可以用`HttpSession#setAttribute`和`HttpSession#removeAttribute`来管理session数据。 5. **JavaBean** (LoginBean/SessionBean): 这些是在后端(如Spring MVC)中使用的豆类,它们负责封装业务逻辑和数据。例如,LoginBean负责处理前端的登录请求,而SessionBean则用于保存和管理用户信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值