日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java的登陆验证问题

發(fā)布時間:2025/6/17 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java的登陆验证问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

java中的登陸驗(yàn)證問題可以有多種方式進(jìn)行驗(yàn)證,通過攔截器功能完成,可以通過過濾器功能完成,也可以簡單的代碼在JSP頁面中單獨(dú)完成,其中都 涉及到一個關(guān)鍵的驗(yàn)證步驟,這個驗(yàn)證原理ASP,PHP,JAVA等語言都大致相同,但具體到不同語言實(shí)現(xiàn)時有些差別;同時驗(yàn)證還涉及另外一個獨(dú)立的問題 是驗(yàn)證到什么程度的問題,下面我就以我的認(rèn)識講解一下;

一,驗(yàn)證原理

下面看看JAVA中的驗(yàn)證關(guān)鍵步驟,一般我們用session變量來保存用戶成功登錄后的密碼,為了防止用戶把URL復(fù)制下來然后直接在瀏覽器地址 欄中輸入試圖登錄,即非登錄訪問,這個時候我們首先需要進(jìn)行驗(yàn)證工作,主要是檢測保存密碼 session?是否存在,或者其是否等于預(yù)先設(shè)定的密碼;session 變量時保存在服務(wù)器端,可以在前后有關(guān)聯(lián)的跨頁面間存在,在 session 不超時的情況下,可通過判斷服務(wù)器端該變量是否存在來判斷是否已經(jīng)登錄,存在則已經(jīng)登錄,不存在則沒有登錄;

這里先了解一個輔助問題:null 和空值的問題,這不同語言處理不完全相同;

(1)Java中,null我這里的指的是沒有定義的,即根本就不存在,沒有分配內(nèi)存空間的情況,只是預(yù)先知道其數(shù)據(jù)類型,如 String a=null;

(2)而空值則是有數(shù)據(jù)類型的,實(shí)際存在的,分配了內(nèi)存空間的,只不過內(nèi)容為空而已,如:String a="";

那Java中如果用戶沒有成功登陸,那在服務(wù)器端指定名稱的session變量是不存在的,所以這個時候指定名稱的session變量需要跟null比較來進(jìn)行判斷是否已經(jīng)登錄了,

[java] view plaincopy
  • //推薦的驗(yàn)證方式??
  • Object?pwd=session.getAttribute("loginUserPwd");??
  • if(pwd?==?null){???
  • ????out.print("你還沒有登錄");??
  • ????//...other?code...??
  • }else{??
  • ????out.print("你已經(jīng)登錄了");??
  • ????//...other?code...??
  • }??

  • 能不能跟字符型的空值進(jìn)行比較判斷是否已經(jīng)登錄了呢?不能, 為什么呢?原因是java中當(dāng)試圖查找一個不存在的session變量,返回的null,即不存在,沒定義,沒有分配內(nèi)存的,(java中)當(dāng)強(qiáng)制轉(zhuǎn)換為 String型時,不存在的null變成實(shí)際存在的String類型且內(nèi)容為null的結(jié)果,也就不等于String類型的空值,如果設(shè)計(jì)不為空判定為已 經(jīng)登錄,那因?yàn)檫@個原因,就出現(xiàn)沒有登錄的也可以訪問了,顯然不是我們想要的;

    [java] view plaincopy
  • //通過空值判斷是否已經(jīng)登錄,錯誤方式??
  • String?pwd=(String)session.getAttribute("loginUserPwd");???
  • //注意:通過java的String類型強(qiáng)制轉(zhuǎn)換后,不存在的null變成了實(shí)際存在String類型的null,??
  • //即未登陸的也通過驗(yàn)證了,誤也??
  • if(pwd?!=?""){????
  • ????out.print("你已經(jīng)登錄了");???
  • ????//...other?code...??
  • }else{??
  • ????out.print("你還沒有登錄");??
  • ????//...other?code...??
  • }??

  • 那能不能跟字符型的null來進(jìn)行比較判斷是否已經(jīng)登錄了呢?可以,但過程變得麻煩,不推薦使用;
    通過空值方式比較是否登錄我們知道,不存在的 session 變量通過String強(qiáng)制轉(zhuǎn)換后變成實(shí)際存在的字符型的 null ,那我們可以設(shè)計(jì)等于字符型的null的判定為未登錄,但會出現(xiàn)一個情況就是用戶的密碼正好為字符型的null時反而不能通過驗(yàn)證了,當(dāng)然可以做其它的處 理來解決這個問題,但邏輯和代碼變復(fù)雜了,我不希望這樣,簡單比較方便;

    [java] view plaincopy
  • //通過是否等于字符型的null值來判斷是否已經(jīng)登錄,不推薦使用??
  • String?pwd=(String)session.getAttribute("loginUserPwd");???
  • //注意:通過java的String類型強(qiáng)制轉(zhuǎn)換后,不存在的null變成了實(shí)際存在String類型的null,??
  • //對于密碼正好是字符型的null出現(xiàn)驗(yàn)證不通過的情況,需要做其它處理??
  • if(pwd?==?"null"){???
  • ????out.print("你還沒有登錄");???
  • ????//...other?code...??
  • }else{??
  • ????out.print("你已經(jīng)登錄了");??
  • ????//...other?code...??
  • }??
  • ?

    二,驗(yàn)證的細(xì)度

    上面的驗(yàn)證方式,只能判斷是否已經(jīng)登錄了,但是很多的站點(diǎn),是允許多用戶的情況,各個不同用戶只能對各自自己的資源進(jìn)行管理,所以進(jìn)行資源管理時, 首先要登錄,登錄了還需要進(jìn)一步區(qū)別驗(yàn)證是否是自己本人,即不能出現(xiàn)在同一個站點(diǎn)中,自己登錄了,同時可以修改另一個用戶的資料的情況;

    通過上面我們知道通過判斷服務(wù)器端session變量的是否存在可以判定是否登錄,但這個對一個站點(diǎn)來說,這僅能判斷是否已經(jīng)登錄到了本站點(diǎn),在多用戶用 戶的情況下,如果一個用戶登錄后,使用適當(dāng)?shù)腢RL即可訪問另一個用戶的資料,這個是不希望出現(xiàn)(可能管理員除外),所以這個時候,驗(yàn)證不能是判斷否為 空,而是通過session變量是否等于用戶本身設(shè)置的某個密碼,來判斷是否是自己本人登錄,這就使登錄驗(yàn)證細(xì)到用戶級別,同一個站點(diǎn)的多個用戶各自只能 管理自己的資料;

    [java] view plaincopy
  • //判斷是否已經(jīng)登錄,并且是否是自己本人登錄??
  • Object?pwd=session.getAttribute("loginUserPwd");??
  • String?clientPWD?=?(String)session.getAttribute("loginUserPwd");?//數(shù)據(jù)來源客戶端用戶的輸入??
  • String?serverPWD?=?"XXX";??//這個密碼來源于服務(wù)器端某個文件或DB中,是用戶自己事先設(shè)置好的??
  • if(pwd?==?null?||?clientPWD?!=?serverPWD?){???
  • ????out.print("你還沒有登錄,或不是自己本人登錄");??
  • ????//...other?code...??
  • }else{??
  • ????out.print("你已經(jīng)登錄了,并且是自己登錄");??
  • ????//...other?code...??
  • }??

  • 可能還有其他的方式來驗(yàn)證,如果有其它的方式,給我留言一下,我參考參考...

    注:轉(zhuǎn)載 http://blog.csdn.net/shenzhennba/article/details/8100853


    轉(zhuǎn)載于:https://www.cnblogs.com/wcyBlog/p/3820403.html

    總結(jié)

    以上是生活随笔為你收集整理的Java的登陆验证问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产毛片a| 樱花影院最新免费观看攻略 | 国产精品探花一区二区三区 | 捆绑japanhdxxxxvideos | 污视频软件在线观看 | 黄a毛片| 国产精品免费av一区二区 | 欧美少妇喷水 | 日本深夜福利 | 日韩一区不卡视频 | 一区二区日韩精品 | 欧美变态口味重另类 | aa在线| 蜜桃久久一区二区三区 | 成人在线免费看片 | 91综合网 | 国产中文在线播放 | 天天操天天插天天干 | 免费黄色av网址 | 一二三四精品 | 羞羞影院体验区 | 欧美一区二区三区四区在线 | 国产精品无码永久免费不卡 | 91福利专区| 熟妇人妻va精品中文字幕 | 新红楼梦2005锦江版高清在线观看 | 免费无码一区二区三区 | 日韩一级不卡 | 亚洲自拍中文 | 最新日韩中文字幕 | 免费看欧美一级特黄a大片 国产免费的av | 在线亚洲+欧美+日本专区 | 91精品国产入口在线 | 禁果av一区二区三区 | 欧美爽爽爽 | 色噜噜综合网 | 亚洲综合网在线 | 亚洲天堂av片| 青青草一区 | 久久久久亚洲日日精品 | 日韩成人精品一区二区 | 午夜激情亚洲 | 欧美剧场 | 黄色香蕉网站 | 欧美久久成人 | av男人的天堂在线 | 老公吃小头头视频免费观看 | 丝袜 亚洲 另类 欧美 重口 | 国内一级黄色片 | 女人18毛片水真多18精品 | 五月99久久婷婷国产综合亚洲 | 日批视频免费 | 国产freexxxx性播放麻豆 | 国产黄色在线免费观看 | 999zyz玖玖资源站永久 | 日韩三级黄色片 | 国产成人精品无码高潮 | 国产欧美一区二区三区沐欲 | 精品乱子伦一区二区三区 | 男女吻胸做爰摸下身 | 老司机久久 | 日韩精品一区二区亚洲av性色 | 成人av免费在线 | 国产无遮挡18禁无码网站不卡 | 亚洲の无码国产の无码步美 | 男人操女人免费视频 | 亚洲.www| 超碰在线中文字幕 | 99久久精品国产色欲 | 久久高清无码电影 | 日韩欧美网址 | 打屁股疼的撕心裂肺的视频 | 色峰视频 | 深夜福利视频在线观看 | 无码精品一区二区三区AV | 黑人中文字幕一区二区三区 | 中文字幕在线视频一区 | 日韩激情在线视频 | xxxxx在线观看 | 青青草成人网 | 久久人人干 | 亚洲av成人无码久久精品 | 欧美中文字幕一区二区三区 | 国产91美女视频 | 91视频高清 | 日本高清无吗 | 韩国三级中文字幕 | 日韩精品你懂的 | 国产在线观看免费av | 不卡的av网站 | 亚洲区自拍偷拍 | 久久大胆视频 | 在线久草| 岛国av大片| 上海女子图鉴 | 一本一本久久a久久精品综合麻豆 | 超碰88| 91第一页| 亚洲色图在线视频 |