Java Web用户登录实例代码
实现功能:
1、用户登陆、注销
2、利用session记录用户登陆信息
3、在JSP中展示已登陆用户信息
实现原理:
登陆后通过判断用户名和密码是否和存储的一致,如果一致,就把用户信息放到session中储存;如果不一致就提示信息,并且返回登陆页面。
显示信息页面上固定从session中找用户登陆信息,找到就显示用户信息,没找到就显示登陆框。
注销很简单,就是清空session信息。
主要文件:
1、LoginAction:struts2的Action类,用于处理JAVA端的主要登陆和登出逻辑。
2、login.jsp:用户登陆页面,用户输入用户名和密码,如果登陆失败显示失败信息。
3、page.jsp:登陆成功后显示用户信息。
4、struts.xml:struts的配置文件。
LoginAction:struts2的Action类,用于处理JAVA端的主要登陆和登出逻辑
packageluju.me.teach.struts2.login;
importjavax.servlet.http.Cookie;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importorg.apache.commons.lang.StringUtils;
importorg.apache.struts2.ServletActionContext;
importcom.opensymphony.xwork2.Action;
/**
*@author鲁炬http://luju.me
*
*/
publicclassLoginAction{
privateStringloginname;
privateStringpassword;
privateStringmsg;
publicStringgetMsg(){
returnmsg;
}
publicvoidsetMsg(Stringmsg){
this.msg=msg;
}
publicStringgetLoginname(){
returnloginname;
}
publicvoidsetLoginname(Stringloginname){
this.loginname=loginname;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
/**用户登陆*/
publicStringlogin(){
if(StringUtils.isBlank(this.loginname)){
returnAction.INPUT;
}
/*
这里写你自己通过用户名查找用户信息的业务逻辑
比如:使用手机号登陆
Citizenuser=prmService.queryEGovCitizenByMobile(this.loginname);
....
*/
if(user==null||user.getPwd()==null||!user.getPwd().getValue().equals(this.password)){
//登陆失败
this.msg="用户不存在或密码错误!";
returnAction.INPUT;
}else{
//登陆成功
//设置session
this.getSession().setAttribute("_USER_INFO_LOGIN_NAME_",this.loginname);
this.getSession().setAttribute("_USER_INFO_USER_ID_",user.getId().getValue());
this.getSession().setAttribute("_USER_INFO_USER_INFO_",user);
//设置cookie
this.getResponse().addCookie(newCookie("_USER_INFO_LOGIN_NAME_",this.loginname));
this.getResponse().addCookie(newCookie("_USER_INFO_USER_ID_",user.getId().getValue()));
returnAction.SUCCESS;
}
}
/**
*注销
*/
publicStringloginout(){
//清空session
this.getSession().invalidate();
returnAction.SUCCESS;
}
publicHttpSessiongetSession(){
returnServletActionContext.getRequest().getSession();
}
publicHttpServletRequestgetRequest(){
returnServletActionContext.getRequest();
}
publicHttpServletResponsegetResponse(){
returnServletActionContext.getResponse();
}
}
struts.xml:struts的配置文件
<?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <packagename="common"namespace="/common"> <actionname="login"class="luju.me.site.common.action.LoginAction" method="login"> <resultname="input">login.jsp</result> <resultname="success"type="redirect">/page.jsp</result> </action> <actionname="loginout"class="luju.me.site.common.action.LoginAction" method="loginout"> <resultname="success"type="redirect">login.action</result> </action> </package> </struts>
login.jsp:用户登陆页面,用户输入用户名和密码,如果登陆失败显示失败信息。
<%@pagelanguage="java"pageEncoding="UTF-8"%>
<%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>欢迎登录</title>
</head>
<body>
<divid="login">
<span>${msg}</span>
<formname="form1"method="post"action="<c:urlvalue="/common/login.action"/>">
<span>
<label>用户名:</label>
<inputname="loginname"id="loginname"type="text"value="admin"/>
</span>
<span>
<label>密码:</label>
<inputtype="password"name="password"id="password"value="123"/>
</span>
<span>
<inputtype="submit"value="登陆"/>
</span>
</form>
</div>
</body>
</html>
page.jsp:登陆成功后显示用户信息。
<%@pagelanguage="java"pageEncoding="UTF-8"%>
<%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>
<%
booleanisLogin=false;
StringloginName=(String)request.getSession().getAttribute("_USER_INFO_LOGIN_NAME_");
if(loginName!=null&&!"".equals(loginName)){
isLogin=true;
}
request.setAttribute("isLogin",isLogin);
request.setAttribute("loginName",loginName);
%>
<c:iftest="${isLogin}">
你好:${loginName}
<ahref="<c:urlvalue="/common/loginout.action"/>">注销</a>
</c:if>
<c:iftest="${!isLogin}">
<formname="login_form"method="post"action="<c:urlvalue="/common/login.action"/>">
<span>
<label>手机号:</label>
<inputname="loginname"id="loginname"type="text"value=""/>
</span>
<span>
<label>密码:</label>
<inputtype="password"name="password"id="password"value=""/>
</span>
<span>
<inputtype="submit"value="登陆"/>
</span>
</form>
</c:if>
以上所述是小编给大家介绍的JavaWeb用户登录实例代码,希望对大家有所帮助!