亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在JavaWeb中利用Session實現一個用戶登陸注銷功能

發布時間:2021-01-13 15:00:09 來源:億速云 閱讀:415 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關怎么在JavaWeb中利用Session實現一個用戶登陸注銷功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

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

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

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

Session和Cookie的主要區別:

  • Cookie是把用戶的數據寫給用戶的瀏覽器

  • Session技術把用戶的數據寫到用戶獨占的session中。

  • Session對象由服務器創建,開發人員可以調用request對象的getSession方法得到session對象。

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

方法如下:

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

MD5加密工具類

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

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

Service層實現類

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層

  @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

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

<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中的值即可,由后臺開放一個注銷接口。

@RequestMapping("/quitUser")
  public String quitUser(HttpServletRequest request){
    HttpSession session = request.getSession();
    session.removeAttribute("CURRENT_USER");
    return "index";
  }

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

看完上述內容,你們對怎么在JavaWeb中利用Session實現一個用戶登陸注銷功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洱源县| 宁强县| 商丘市| 鹿泉市| 读书| 子长县| 罗平县| 临澧县| 本溪| 丰城市| 阿图什市| 常山县| 阿克| 张家港市| 岐山县| 垣曲县| 桦川县| 扬中市| 博爱县| 连平县| 津市市| 乐昌市| 襄城县| 绩溪县| 清丰县| 安徽省| 威信县| 古丈县| 靖安县| 台北县| 锦州市| 屏边| 二手房| 克山县| 刚察县| 称多县| 德州市| 淳化县| 章丘市| 寿阳县| 西昌市|