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用户登录实例代码,希望对大家有所帮助!