一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - JavaWeb基于Session實現(xiàn)的用戶登陸注銷方法示例

JavaWeb基于Session實現(xiàn)的用戶登陸注銷方法示例

2021-02-26 13:16linuxidc JAVA教程

為了安全起見,session常常用來保存用戶的登錄信息。那么服務器是怎么來實現(xiàn)的呢?下面這篇文章就來給大家介紹了關于JavaWeb基于Session實現(xiàn)的用戶登陸注銷的相關資料,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧

前言

Cookie:cookie是客戶端技術,程序把每個用戶的數(shù)據(jù)以cookie的形式寫給用戶各自的瀏覽器。

當用戶使用瀏覽器再去訪問服務器中的web資源時,就會帶著各自的數(shù)據(jù)區(qū),這樣,web資源處理的就是各自的數(shù)據(jù)了。

Session:session是服務器端技術,利用session技術,服務器在運行時可以為每一個用戶的瀏覽器創(chuàng)建其獨享的session對象,由于session為用戶瀏覽器獨享,所以用戶在訪問服務器的web資源時,可以把各自的數(shù)據(jù)放在session中,當用戶再次去訪問服務器中的其他web資源時,其他web資源再從用戶各自的session
取出數(shù)據(jù)為用戶服務。

Session和Cookie的主要區(qū)別:

  • Cookie是把用戶的數(shù)據(jù)寫給用戶的瀏覽器
  • Session技術把用戶的數(shù)據(jù)寫到用戶獨占的session中。
  • Session對象由服務器創(chuàng)建,開發(fā)人員可以調(diào)用request對象的getSession方法得到session對象。

我們常常通過Session來存儲用戶的部分登陸信息來驗證用戶是否在線,這應該時最容易實現(xiàn)的一種Web端方案,本文以SSM(Spring、SpringMVC、myBatis)框架為載體,來具體實現(xiàn)這套登陸系統(tǒng)。

方法如下:

1.通過前端傳遞用戶名密碼到后端接口,接口拿到值后,對其進行 MD5 加密,與數(shù)據(jù)庫中的字段進行比較,返回狀態(tài)給前端,前端根據(jù)返回值進行頁面跳轉(zhuǎn)。

MD5加密工具類

?
1
2
3
4
5
6
7
8
public String EncoderByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException{
    //確定計算方法
    MessageDigest md5=MessageDigest.getInstance("MD5");
    BASE64Encoder base64en = new BASE64Encoder();
    //加密后的字符串
    String newstr=base64en.encode(md5.digest(str.getBytes("utf-8")));
    return newstr;
  }

DAO層以及Mapper

?
1
2
3
4
<select id="valiteUser" parameterType="java.lang.String" resultType="com.heitian.ssm.model.Userinfo">
    SELECT password FROM t_user
    WHERE username = #{username}
</select>

Service層實現(xiàn)類

?
1
2
3
4
5
6
7
8
9
10
11
12
public String valiteUser(Userinfo userinfo) {
    try{
      Userinfo userdemo=userDao.valiteUser(EncoderByMd5(userinfo.getUsername()));
      if(userinfo.getPassword().equals(userdemo.getPassword())){
        return "pass";
      }
    }catch (Exception e){
      e.printStackTrace();
      return "error";
    }
    return "refuse";
  }

Controller層

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@ResponseBody
@RequestMapping("/loginUser")
public HashMap<String,Object> loginUser(HttpServletRequest request, Userinfo userinfo){
  HashMap<String,Object> result=new HashMap<String, Object>();
  HttpSession session = request.getSession();
  System.out.println("login fail");
  String status=userService.valiteUser(userinfo);
  if(status.equals("pass")){
    session.setAttribute("CURRENT_USER",userinfo.getUsername());
    result.put("status","pass");
  }else{
    if(status.equals("refuse")){
      result.put("status","refuse");
    }else {
      result.put("status","error");
    }
  }
  return result;
}

通過返回status信息,來判斷登陸是否成功,如果成功則將Session中寫入用戶名鍵值對。

2.當其他頁面訪問時,如何判斷是否有用戶登陸在線呢,我通過JS來取Session值來判斷。

即:先去拿Session的值,如果拿到為空或為null,則說明此會話在此之前沒有登陸行為,我們自動將其重定向到首頁,如果有值,則說明有登陸行為,且登陸在線的用戶為CURRENT_USER

所取出來的值,這時我們在用用戶名去調(diào)后臺接口即可。

?
1
2
3
4
5
6
7
8
<script language="JavaScript">
  $(document).ready(function(){
      var myName="<%=session.getAttribute("CURRENT_USER")%>";
      var projiectid1= "<%=request.getAttribute("projectid")%>";
      if(myName=="null"){
        window.location.href="/page/toindex" rel="external nofollow" ;
      }
</script>

3.用戶注銷

注銷,即清除Session中的值即可,由后臺開放一個注銷接口。

?
1
2
3
4
5
6
@RequestMapping("/quitUser")
  public String quitUser(HttpServletRequest request){
    HttpSession session = request.getSession();
    session.removeAttribute("CURRENT_USER");
    return "index";
  }

這樣就實現(xiàn)了一套從登陸到注銷的用戶管理體系,但是這是一種最基礎的體系,安全性由很大的問題,所以類似于JWT TOKEN之類的驗證方案還是很有用武之地的。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://www.linuxidc.com/Linux/2017-12/149087.htm

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美爽妇 | 亚州性夜夜射在线观看 | 蜜桃视频一区二区 | 俄罗斯三级在线观看级 | 国产自拍啪啪 | 四虎在线视频免费观看视频 | 精品久久久久久午夜 | 香蕉tv亚洲专区在线观看 | 秋霞理论一级在线观看手机版 | 国产精品视频第一区二区 | 欧美 亚洲 综合 卡通 另类 区 | 日韩精品国产自在欧美 | 丁香五香天堂网 | 色婷婷久久综合中文久久一本` | 3d动漫被吸乳羞羞 | 国产青青操 | 男生同性视频twink在线 | 变态 调教 视频 国产九色 | 日韩欧美一区二区三区视频 | 国产一区二区三区高清视频 | 日本高清视频网址 | 丝袜足控免费网站xx动漫漫画 | 国产精品欧美一区二区 | 久久国产精品永久免费网站 | 亚洲天堂精品在线 | 99re最新网址 | 亚洲欧美日韩中文高清一 | 俺去俺也在线www色官网 | 国产专区亚洲欧美另类在线 | 天天综合天天影视色香欲俱全 | 亚洲午夜久久久 | 桃色公寓| 青草草视频在线观看 | 倩女还魂在线观看完整版免费 | 色四虎| 四虎免费在线观看 | 暖暖高清日本在线 | 99视频全部看免费观 | 精品国产成a人在线观看 | 国产成人8x视频一区二区 | 免费视频 久久久 |