最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Web用戶登錄實(shí)例代碼

 更新時(shí)間:2016年05月29日 11:11:59   作者:itfafa  
這篇文章主要介紹了Java Web用戶登錄實(shí)例代碼的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看看吧

實(shí)現(xiàn)功能:

1、用戶登陸、注銷

2、利用session記錄用戶登陸信息

3、在JSP中展示已登陸用戶信息

實(shí)現(xiàn)原理:

登陸后通過(guò)判斷用戶名和密碼是否和存儲(chǔ)的一致,如果一致,就把用戶信息放到session中儲(chǔ)存;如果不一致就提示信息,并且返回登陸頁(yè)面。

顯示信息頁(yè)面上固定從session中找用戶登陸信息,找到就顯示用戶信息,沒(méi)找到就顯示登陸框。

注銷很簡(jiǎn)單,就是清空session信息。

主要文件:

1、LoginAction:struts2的Action類,用于處理JAVA端的主要登陸和登出邏輯。

2、login.jsp:用戶登陸頁(yè)面,用戶輸入用戶名和密碼,如果登陸失敗顯示失敗信息。

3、page.jsp:登陸成功后顯示用戶信息。

4、struts.xml:struts的配置文件。

LoginAction:struts2的Action類,用于處理JAVA端的主要登陸和登出邏輯

package luju.me.teach.struts2.login; 
import javax.servlet.http.Cookie; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 
import org.apache.commons.lang.StringUtils; 
import org.apache.struts2.ServletActionContext; 
import com.opensymphony.xwork2.Action; 
/** 
* @author 魯炬 http://luju.me 
* 
*/ 
public class LoginAction { 
private String loginname; 
private String password; 
private String msg; 
public String getMsg() { 
return msg; 
} 
public void setMsg(String msg) { 
this.msg = msg; 
} 
public String getLoginname() { 
return loginname; 
} 
public void setLoginname(String loginname) { 
this.loginname = loginname; 
} 
public String getPassword() { 
return password; 
} 
public void setPassword(String password) { 
this.password = password; 
} 
/** 用戶登陸 */ 
public String login() { 
if(StringUtils.isBlank(this.loginname)) { 
return Action.INPUT; 
} 
/* 
這里寫你自己通過(guò)用戶名查找用戶信息的業(yè)務(wù)邏輯 
比如:使用手機(jī)號(hào)登陸 
Citizen user = prmService.queryEGovCitizenByMobile(this.loginname); 
.... 
*/ 
if(user == null || user.getPwd() == null || !user.getPwd().getValue().equals(this.password)) { 
//登陸失敗 
this.msg = "用戶不存在或密碼錯(cuò)誤!"; 
return Action.INPUT; 
} else { 
//登陸成功 
//設(shè)置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); 
//設(shè)置cookie 
this.getResponse().addCookie(new Cookie("_USER_INFO_LOGIN_NAME_", this.loginname)); 
this.getResponse().addCookie(new Cookie("_USER_INFO_USER_ID_", user.getId().getValue())); 
return Action.SUCCESS; 
} 
} 
/** 
* 注銷 
*/ 
public String loginout() { 
//清空session 
this.getSession().invalidate(); 
return Action.SUCCESS; 
} 
public HttpSession getSession() { 
return ServletActionContext.getRequest().getSession(); 
} 
public HttpServletRequest getRequest() { 
return ServletActionContext.getRequest(); 
} 
public HttpServletResponse getResponse() { 
return ServletActionContext.getResponse(); 
} 
} 

struts.xml:struts的配置文件

<?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="common" namespace="/common"> 
<action name="login" class="luju.me.site.common.action.LoginAction" 
method="login"> 
<result name="input">login.jsp</result> 
<result name="success" type="redirect">/page.jsp</result> 
</action> 
<action name="loginout" class="luju.me.site.common.action.LoginAction" 
method="loginout"> 
<result name="success" type="redirect">login.action</result> 
</action> 
</package> 
</struts> 

login.jsp:用戶登陸頁(yè)面,用戶輸入用戶名和密碼,如果登陸失敗顯示失敗信息。

<%@ page language="java" pageEncoding="UTF-8"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>歡迎登錄</title> 
</head> 
<body> 
<div id="login"> 
<span>${msg}</span> 
<form name="form1" method="post" action="<c:url value="/common/login.action" />" > 
<span> 
<label>用戶名:</label> 
<input name="loginname" id="loginname" type="text" value="admin" /> 
</span> 
<span> 
<label>密碼:</label> 
<input type="password" name="password" id="password" value="123"/> 
</span> 
<span> 
<input type="submit" value="登陸" /> 
</span> 
</form> 
</div> 
</body> 
</html> 

page.jsp:登陸成功后顯示用戶信息。

<%@ page language="java" pageEncoding="UTF-8"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<% 
boolean isLogin = false; 
String loginName = (String)request.getSession().getAttribute("_USER_INFO_LOGIN_NAME_"); 
if(loginName != null && !"".equals(loginName)){ 
isLogin = true; 
} 
request.setAttribute("isLogin",isLogin); 
request.setAttribute("loginName",loginName); 
%> 
<c:if test="${isLogin}"> 
你好:${loginName} 
&nbsp;&nbsp; 
<a href="<c:url value="/common/loginout.action" />">注銷</a> 
</c:if> 
<c:if test="${!isLogin}"> 
<form name="login_form" method="post" action="<c:url value="/common/login.action" />" > 
<span> 
<label>手機(jī)號(hào):</label> 
<input name="loginname" id="loginname" type="text" value="" /> 
</span> 
<span> 
<label>密碼:</label> 
<input type="password" name="password" id="password" value=""/> 
</span> 
<span> 
<input type="submit" value="登陸" /> 
</span> 
</form> 
</c:if> 

以上所述是小編給大家介紹的Java Web用戶登錄實(shí)例代碼,希望對(duì)大家有所幫助!

相關(guān)文章

  • 運(yùn)用springboot搭建并部署web項(xiàng)目的示例

    運(yùn)用springboot搭建并部署web項(xiàng)目的示例

    這篇文章主要介紹了運(yùn)用springboot搭建并部署web項(xiàng)目的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • java.lang.IllegalStateException:方法有太多主體參數(shù)問(wèn)題

    java.lang.IllegalStateException:方法有太多主體參數(shù)問(wèn)題

    這篇文章主要介紹了java.lang.IllegalStateException:方法有太多主體參數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java權(quán)重隨機(jī)的實(shí)現(xiàn)方法

    Java權(quán)重隨機(jī)的實(shí)現(xiàn)方法

    這篇文章主要介紹了Java權(quán)重隨機(jī)的實(shí)現(xiàn)方法,實(shí)例分析了權(quán)重隨機(jī)算法的原理與完整實(shí)現(xiàn)方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • SpringBoot操作Redis三種方案全解析

    SpringBoot操作Redis三種方案全解析

    這篇文章主要介紹了SpringBoot操作Redis三種方案全解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • springboot打成jar后無(wú)法讀取根路徑和文件的解決

    springboot打成jar后無(wú)法讀取根路徑和文件的解決

    這篇文章主要介紹了springboot打成jar后無(wú)法讀取根路徑和文件的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java編程實(shí)現(xiàn)調(diào)用com操作Word方法實(shí)例代碼

    Java編程實(shí)現(xiàn)調(diào)用com操作Word方法實(shí)例代碼

    這篇文章主要介紹了Java編程實(shí)現(xiàn)調(diào)用com操作Word方法實(shí)例代碼,代碼注釋很詳細(xì),在這里分給大家,需要的朋友可以參考下。
    2017-09-09
  • 關(guān)于Java繼承中父類和子類構(gòu)造函數(shù)的問(wèn)題

    關(guān)于Java繼承中父類和子類構(gòu)造函數(shù)的問(wèn)題

    這篇文章主要介紹了關(guān)于Java繼承中父類和子類構(gòu)造函數(shù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • VSCode搭建Java開發(fā)環(huán)境的超詳細(xì)步驟

    VSCode搭建Java開發(fā)環(huán)境的超詳細(xì)步驟

    VSCode是一款多平臺(tái)的源代碼編輯器,支持多種編程語(yǔ)言,它輕量級(jí)、功能強(qiáng)大,通過(guò)豐富的插件生態(tài)系統(tǒng)可以支持更多語(yǔ)言和運(yùn)行時(shí),如C++、C#、Java、Python等,這篇文章主要介紹了VSCode搭建Java開發(fā)環(huán)境的超詳細(xì)步驟,需要的朋友可以參考下
    2024-10-10
  • JVM?運(yùn)行時(shí)數(shù)據(jù)區(qū)與JMM?內(nèi)存模型

    JVM?運(yùn)行時(shí)數(shù)據(jù)區(qū)與JMM?內(nèi)存模型

    這篇文章主要介紹了JVM?運(yùn)行時(shí)數(shù)據(jù)區(qū)與JMM?內(nèi)存模型,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值。需要的朋友可以參考一下
    2022-07-07
  • Java實(shí)現(xiàn)隊(duì)列的三種方法集合

    Java實(shí)現(xiàn)隊(duì)列的三種方法集合

    這篇文章主要介紹了Java實(shí)現(xiàn)隊(duì)列的三種方法集合,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09

最新評(píng)論

遂昌县| 东乡族自治县| 淮北市| 阳春市| 马龙县| 阳朔县| 瓮安县| 保靖县| 伊春市| 个旧市| 彰武县| 章丘市| 隆子县| 原平市| 宣威市| 买车| 十堰市| 沁源县| 安溪县| 阳谷县| 兴安盟| 桃源县| 沅陵县| 赤峰市| 龙泉市| 铜川市| 望都县| 台湾省| 兴隆县| 太白县| 施秉县| 治县。| 安宁市| 毕节市| 明光市| 阿合奇县| 宣城市| 沈阳市| 乌兰县| 炎陵县| 容城县|