java Cookie+Session實現自動登入
這是2016年的第一篇blog,首先在這裡祝大家新年工作開心,平平安安,生活舒心,日子紅紅火火!
之前我們聊過PHP的自動登入,我們也非常詳細的給大家分析了實現的原理,有了上次課的基礎(PHP自動登入
的連結:http://blog.csdn.net/bayren820/article/details/50397633),相信大家對於今天java實現同樣的功能,就不會
感到特別陌生了,大不了就是語法不一樣,好了,我們開始今天的分享!
還是老規矩,我們結合程式碼,給大家做詳細講解:
登入介面(就是一個普通的Servlet)
out.println("<h1>使用者登入</h1>");
out.println("<form action='/MyCookies/Icookiedeal' method='post'>");
out.println("使用者名稱:<input type='text' name='uname'>");
out.println("密碼:<input type='password' name='upassword'>");
out.println("<input type='submit' value='提交'>");
out.println("</form>");
中間處理頁面(我們重點不是聊資料庫,因此這裡就不連線資料庫了)
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// java接收表單傳遞過來的引數,都是String字元型別
String uname = request.getParameter("uname");
String upassword = request.getParameter("upassword");
// 建立一個Session物件
HttpSession session = request.getSession();
if("123".equals(upassword)){
// session給屬性賦值,和PHP裡面的$_SESSION['uname']是一樣的功能
session.setAttribute("uname", uname);
// cookie儲存兩週的SessionID,我們說過,這裡Cookie的名字,必須是瀏覽器自動返回的固定名字
// 因為當我們用這個JSESSIONID的名字儲存Cookie時,伺服器端會自動幫助我們判斷,無需額外程式碼
Cookie cookie = new Cookie("JSESSIONID",session.getId());
cookie.setMaxAge(2*7*24*3600);
// 需要response物件,將Cookie寫入本地瀏覽器
response.addCookie(cookie);
}
判斷登入狀態,讀取使用者名稱介面
HttpSession session = request.getSession();
// 讀取屬性uname的值,由於我們用Cookie儲存了JSESSIONID的生命週期
// 因此即使你重啟了瀏覽器,我們依舊能夠在伺服器端SessionID沒有過期之前,獲取到使用者名稱
String uname = (String) session.getAttribute("uname");
if(uname != null){
out.print(uname+"</h1>");
}
大部分的程式碼結束了,但是有幾個問題需要注意:
1. 表單提交中文亂碼問題,由於我們是post提交,因此解決方案十分容易,在中間處理頁面加上一句話即可:
request.setCharacterEncoding("utf8"),這樣request過來的引數都轉成了utf8編碼,防止了中文亂碼!
2.Cookie儲存中文亂碼的問題(雖然本次課程沒有涉及到,但是這個知識點我還是準備在這裡分享,以後我們肯
定會用到的,大家先有個印象),java中預設Cookie儲存中文是會亂碼的,這一點沒有PHP做的好,下面我們
講講解決辦法:在中間處理頁面,加上一句:java.net.URLEncoder.encode("uname","utf8"),進行Base64轉
碼;然後在讀取頁面,再加上一句java.net.URLDecoder.decode("uname","utf8"),進行解碼即可!
好了,分享到此結束,今天干貨真是非常多,大家好好理解!!!預告一下,下次分享的內容:PHP的Yii框架
大家可以關注我的微信公眾號:iwork,我會每天推送一篇原創文章,讓大家都能有所收穫!
相關推薦
java Cookie+Session實現自動登入
這是2016年的第一篇blog,首先在這裡祝大家新年工作開心,平平安安,生活舒心,日子紅紅火火! 之前我們聊過PHP的自動登入,我們也非常詳細的給大家分析了實現的原理,有了
SpringMVC+Cookie+Session實現自動登入
實現自動登入其實並不是特別的困難,下面來介紹我所實現的自動登入的一種方式,首先,必須提到Cookie和Session,Cookie是儲存在客戶端的而Session是儲存在服務端的,每次客戶端通過遊覽器訪問服務端的時候,會有一個JSESSIONID作為key值儲存在Cooki
ASP.Net之使用Cookie和Session實現自動登入
一、UserLogin.aspx程式碼 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserLogin.aspx.cs" Inherits="UserLoginNameSpace" %>
JavaWeb_利用Cookie技術實現自動登入
//------------------------------------儲存Cookie------------------------------- package com.MainServlet; import java.io.File; import java.
Cookie和Session實現儲存登入狀態免登入。
首先Cookie和Session都是為了狀態管理,HTTP協議是無狀態的,不能儲存每次提交的資訊,即當伺服器返回與請求相對應的應答之後,這次事務的所有資訊就丟掉了。 如果使用者發來一個新的請求,伺服器無法知道它是否與上次的請求有聯絡。 對於
.net mvc 利用cookie實現自動登入 退出後登出資訊
1.登入Action中將使用者資訊加入到cookie中: HttpCookie cookie = new HttpCookie("useridMsg"); cookie.Expires= DateTime.Now.AddDays(7); cookie["u
Servlet通過Cookie儲存使用者資訊,實現自動登入的demo.
開始介面HTML,跳轉到判斷是否有Cookie的Servlet. SessionStartPage.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <
phantomJS利用cookie實現自動登入
phantomjs是一個基於webkit核心的無頭瀏覽器。即沒有UI介面的一個瀏覽器,只是其內的點選、翻頁等人為相關操作需要程式設計實現。PhantomJS提供JavaScript API介面,即通過
jsp通過Cookie實現自動登入
一、什麼是使用者自動登入? 對於我們的網站向已註冊使用者提供某些專門的服務,比如網上購物、線上下載、收費瀏覽等等,就會要求使用者在使用這些服務之前進入登入頁面,輸入使用者名稱和密碼,並進行驗證。 如果使用者經常訪問我們的網站,假如每天都訪問一次,或者好幾次,那麼使用者每次都
C#.net cookie、session實現自動登陸
一、什麼是使用者自動登入? 對於我們的網站向已註冊使用者提供某些專門的服務,比如網上購物、線上下載、收費瀏覽等等,就會要求使用者在使用這些服務之前進入登入頁面,輸入使用者名稱和密 碼,並進行驗證。 如果使用者經常訪問我們的網站,假如每天都訪問一次,或者好幾次,
Filter過濾器+cookie實現自動登入和安全登入
實現思想: 我們只要登陸成功就把登入資訊儲存到cookie中,將使用者名稱存入session中,下一次進入介面只要通過AutoLoginfilter攔截獲取cookie,如果有登入資訊的cookie就取出來,進行自動登入處理,每一次訪問通過secureLo
cookie技術實現自動登錄+驗證用戶名輸入是否正確
ets htm text cti 創建 sel turn 失去焦點 table login頁面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% Strin
php微信網頁開發實現自動登入註冊功能例項
功能:自動登入註冊功能 描述:php實現微信網頁自動登入註冊功能 範圍:適用於所有php版本 thinkphp5.0例項 $token = cookie('token'); if($token){ //這裡寫登入後的邏輯 }else{ $
Python實現自動登入,強行突破圖形驗證碼!
驗證碼有圖形驗證碼、極驗滑動驗證碼、點觸驗證碼、宮格驗證碼。這回重點講講圖形驗證碼的識別。 學習Python中有不明白推薦加入交流群 號:516107834 &
利用Python識別圖形驗證碼!實現自動登入!室友驚訝的合不攏嘴!
驗證碼有圖形驗證碼、極驗滑動驗證碼、點觸驗證碼、宮格驗證碼。這回重點講講圖形驗證碼的識別。 雖說圖形驗證碼最簡單,但是對於我這等新手,還是要苦學一番。首先尋找測試網站,網站選的是如雲閣小說網,小網站不怕被封。他們的驗證碼一般如下:
java+maven工程 實現 自動對war包進行復制並修改和替換每個的配置檔案
在工作中碰到一個比較苦惱的事情,(這裡以7條線為例子)同一個war包 需要部署7條生產線,但是每個生產線的編號以及ip都不同,導致我們手動的每個包去替換配置檔案和配 置ip的js檔案 &n
java+maven工程 實現 自動對war包進行復制並修改和替換每個的配置文件
classes cep res 發生 分離 sys span 一個 pla 在工作中碰到一個比較苦惱的事情,(這裏以7條線為例子)同一個war包 需要部署7條生產線,但是每個生產線的編號以及ip都不同,導致我們手動的每個包去替換配置文件和配 置ip
SSM整合系列之 基於Shiro框架實現自動登入(RememberMe)
一、前言:Shiro框架提供了記住我(RememerMe)的功能,比如我們訪問一些網站,關閉了瀏覽器,下次再開啟還是能記住你是誰,下次訪問的時候無需登入即可訪問,本文將實現記住我的功能。 專案git地址:https://github.com/gitcaiqing/SSM_DEMO.git
mstsc儲存使用者名稱和密碼,實現自動登入遠端桌面
MSTSC引數說明 首先可以使用mstsc /?來檢視關於mstsc的引數說明 根據上述的命令說明,我這裡實現的bat檔案為 mstsc C:/a.rdp /console /v: xxx.xxx.xxx.xxx:3389 rdp檔案生成方法 最近由