Ⅰ 淺談web登錄
web登錄是網站上經常會遇到的功能,雖然看似簡單。但要做好易用性和引導性,還需要在設計和交互上達到平衡。
這里將要探討登錄流程中的頁面跳轉模式、登錄類型、以及登錄流程中的各種細節優化。
一、登錄頁面的兩種跳轉模式:
1、獨立頁面登錄
這種登錄方式的優點是比較正式與美觀,可以將網站更多的信息展示給當前用戶,包括大圖所展示的品牌形象,並可以提供更多的鏈接選擇(如:導航鏈接、多語言切換等等),當用戶在登錄過程中臨時起意需要放棄當前操作時,可以方便跳轉,(雖然並不是常見操作,且不推薦,卻仍為用戶提供便利性)。
但這種方式也有一定的缺點,對於瀏覽實時性比較強的網站,頁面的跳轉會破壞其操作的連貫性。並且眾多強迫症患者還會有一種,登錄完成後是否還能回到現有頁面的疑慮。事實上這種情況也確實存在。
2、當前頁面彈出窗口登錄(模態窗口)
這種方式的好處在於避免頁面跳轉對操作連貫性的破壞,把登錄對用戶造成的影響降至最低。
PS:所謂的模態窗口,是指在用戶想要對對話框以外的應用程序進行操作時,必須首先對該對話框進行響應。如單擊「確定」「取消」按鈕等將該對話框關閉。
關於兩種登錄模式的選擇,主要看用戶在使用登錄模塊時的情境。例如,未登錄狀態,若直接點擊「登錄」按鈕或「個人中心」,沒有涉及到其他功能的使用,便跳轉至獨立頁面。而當需要進行某項操作,必須登錄後才可進行時,建議使用彈出窗口,以保持操作的連貫性。
淘寶、豆瓣均為此模式。點擊「登錄」按鈕時,跳轉至獨立頁面;而點擊「立即購買」或「收藏」「評論」等功能性按鈕時,顯示彈出層登錄窗口。
二、登錄的兩種類型:
關於登錄的類型,一般有兩種,一種是郵件/用戶名/手機號登錄,另一種是第三方登錄。
1、郵件/用戶名/手機號登錄
這是一種比較常用和傳統的登錄方式,輸入用戶名/郵箱/手機號和密碼便可直接登錄。值得一提的是,之前的大部分網站僅支持用戶名登錄,而不支持使用郵箱或手機號登錄。但這種方式存在的問題就是注冊時,有可能會因為用戶名已被其他用戶注冊的限制而進行強制更改,導致注冊的網站越多,越容易忘記用戶名。
但郵件地址和手機號由於受到真實資料及數量上的限制,基本不會出現這種情況。所以,現在越來越多的網站都開始支持多種帳號形式登錄的方式。
2、第三方登錄
這種登錄方式是指通過其他的社交帳號來進行授權登錄的一種方式,目前這種方式在很多網站上都有採用。其優點是簡單快速,降低用戶注冊門檻及用戶流失數量。尤其是對於中小型的非常用網站,或僅想嘗試當前功能的用戶來說,減小了其登錄成本。但這種方式也有一些致命的缺點。例如,當第三方的帳號被封號或被盜時,其他使用該帳號進行登錄的網站基本都不可用了。
這里要說到,目前有某些網站,支持第三方登錄,但是登錄成功後,還需要單獨填寫非重復的用戶名以及密碼。這種重復填寫資料的行為更容易讓用戶產生抵觸心理。
以上兩種方式各有利弊,目前而言,對於需要搜集用戶詳細資料的網站,例如電商網站,更適合於單獨用戶注冊模式。如果使用第三方登錄,進而還需要再填寫其他資料的行為反而更加麻煩。而對於一般性的網站,簡單的用戶資料授權就已經足夠了,使用第三方登錄更為方便,也利於帳號的記憶與管理。
三、登錄過程中的優化:
1、未登錄時進行的操作,在登錄後,此操作自動生效。
例如,淘寶在未登錄時進行「收藏」或「購買」,登錄後會自動收藏或加入購物車,無需再重復登錄前操作。這是一種比較人性化的交互行為,因為在登錄前有此操作,並且為此功能進行了登錄,說明這已經是一個明確的用戶行為,基本不存在誤操作的可能性。所以在進行登錄後,自動完成此操作會更為便捷。當然,在自動完成登錄前操作時,有一個直觀可視化的交互動效,便能讓用戶更加清晰的理解當前操作已自動完成。瀏覽幾個其他網站,如、豆瓣、behance、均無此功能。
2、適時提供登錄需求
當用戶瀏覽頁面時,遇到必須登錄才能夠繼續進行的操作時, 無疑是一個掃興的行為。提高體驗的途徑,就是將登錄或注冊行為放置至最後一步才進行。
例如,在知乎的頂部以未登錄身份點擊「話題」欄目,則會彈出登錄提示框。雖然這個是用於已登錄用戶查看自己感興趣的「話題」,但卻會對未登錄用戶產生一定的阻礙。對於未登錄用戶來說,點擊「話題」按鈕後,直接跳轉至「話題廣場」不是一種更好的選擇么?當用戶找到自己感興趣的話題,需要關注此話題時,再彈出「登錄」或者「注冊」的提示。這樣,也給用戶一個更為充分的理由。
另外,縱觀目前大部分電商網站,基本上都支持未登錄就可將商品放入購物車的操作行為。這個相比以前的體驗,也基本做到了盡量在最後一步才讓用戶選擇登錄的原則。但仔細想想,這其實是可以再進一步去完善的。目前的電商網站數量繁多,在某個網站只有一次購物經歷的機會將大大增加。當用戶沒有做好去注冊成為會員的准備時,為何不在加入購物車後,支持用戶登錄/注冊的同時,也支持未登錄直接付款並填寫購買人手機與收貨地址信息的功能呢。這個對於臨時購買的用戶來說,無異於會是比較順暢的操作體驗。也許當第一次購買流程順利完成後,用戶的注冊行為會更有誠意,而不是被迫進行。
登錄注冊雖然是一個很常見的功能,但卻是影響著整個網站體驗的重要一環。當新用戶的登錄注冊體驗受阻時,再精彩的內容也難以讓用戶回頭了。
Ⅱ JAVAweb簡述完成一個登錄系統大致步驟
完成一個登錄系統的大致步驟如下:
1.創建一個表來存儲用戶的注冊信息,比如USERNAME、PASSWORD等。
2.編寫JSP頁面實現登錄的界面,並且在這個頁面上放置一個提交按鈕,提交按鈕會把御梁用戶輸入的用戶名和密碼傳遞到Servlet程序中。
3.編寫Servlet程序,實現用戶賬號和密碼的驗證,同時還要處理用戶錯誤提交以及重復登錄等問題。如拆晌
4.編寫一個過濾器,實現已經登錄認證
5.認證成功後,在客渣鋒戶端或伺服器端創建session對象,用來保存當前登錄的用戶的信息,如用戶ID、用戶名等。
6.跳轉頁面到指定界面,並把session信息傳遞到新頁面中。
7.編寫一個過濾器,用來檢查是否已經登錄,如果還沒有登錄,就跳轉回到登錄頁面。
Ⅲ Web裡面,如何判斷重復登錄
項目蘆卜塌開發時一弊仔般用Session(Httprequest里陪圓面的)來保存一個標志位。
session.set("name","value");
if(session.get("name").equals("user.name")){
System.out.println("已經登錄");
}else{
//進入登錄方法..........
}
來解決
Ⅳ java web程序spring mvc 如何解決用戶重復登錄
這個,session存儲登錄信息,是有過期時間的默認是30分鍾吧,你可以做在登錄的時候進行一個session用戶判斷就可以解決重復登錄問題,注銷陸輪時,將session中用戶清除數鎮,關閉瀏覽器一般不用做處理早畢信的。
Ⅳ web 應用如何防止重復登錄
你說的重復登錄是指,一個賬號在不同機子上同時登錄。還是只登錄的時候提交兩次請求?
如果是前者,你可以在用戶表中添加鋒芹一個欄位,來標識用戶是帆埋否登錄。如果已經登錄就不能登錄,並給用戶相關提示。
如果是後者,在點擊登錄按鈕提交請求之後禁用按鈕防態基螞止重復提交。
Ⅵ 我的oppo賬號被人多次用WEB電腦登錄,修改密碼也沒有,我該怎麼辦
怎麼會沒有用?可以把密碼設置復雜點,再看看有沒有中病毒。看看能不能更改登陸方式。
Ⅶ java web用戶重復登錄問題
最簡單的做法:
你可以在資料庫表中增加一個欄位,loginStatus(命名就隨便了)就設置2個值把 1和2(隨便什麼都行)一個用戶登錄的時候,如果loginStatus的值是1,則將其更改為2 如果是2,則更改為1這時候,將更改後的值存儲在session中,則每次進行有關用戶操作的時候, 都去表中查看loginStatus的值跟你session中的值是否相同如果不相同,則將session存儲的用戶信息remove掉你會很奇怪,為什麼會不同,很簡單:如果此時,另外一個人登錄的時候,走的是相同的業務邏輯,這時候會把loginStatus的值更改。則前一個登錄的人session中存儲的loginStatus當然就不一樣了
Ⅷ java web用戶不能重復登錄
1樓的方法是對的但實現起來會有很多問題,踢掉高螞前一次登錄反而最簡單,如下代碼:
1、添加兩個監聽器類:
public class MySessionAttributeListener implements HttpSessionAttributeListener {
public static Map<String, HttpSession> sessionMap=new ConcurrentHashMap<String, HttpSession>戚猜埋();
@Override
public void attributeAdded(HttpSessionBindingEvent arg0) {
String name=(String)arg0.getValue();
if("name".equals(name)){//name屬性保存用戶登錄信息,name=為唯一信息如用戶名
if(sessionMap.containsKey(name)){//踢掉前一次登錄
HttpSession session=sessionMap.remove(name);
session.invalidate();
}
sessionMap.put(name, arg0.getSession());
}
}
@Override
public void attributeRemoved(HttpSessionBindingEvent arg0) {}
@Override
public void attributeReplaced(HttpSessionBindingEvent arg0) {}
}
public class MySessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent arg0) {}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
String name=(String)arg0.getSession().getAttribute("name");
if(name!=null && name.length()>0){//session失效時候移除記錄
if(MySessionAttributeListener.sessionMap.containsKey(name))
MySessionAttributeListener.sessionMap.remove(name);
}
//else System.out.println("注銷用戶:未獲取到登錄用戶屬性");
}
}
2、web.xml加入監聽
<listener>
<兆盯listener-class>你的包名.MySessionListener</listener-class>
</listener>
<listener>
<listener-class>你的包名.MySessionAttributeListener</listener-class>
</listener>
3、jsp或servlet中保存登錄信息如:
request.getSession().setAttribute("name", "登錄信息");
Ⅸ java web 瀏覽器打開另一個窗口 重新登錄
處理這個問題,可以禁止Session使用Cookie,統一使用URL地址重寫。
下面舉例(項目sessionWeb)說一下怎樣通過配置禁止使用Cookie。
打開項目sessionWeb的WebRoot目錄下的META-INF文件夾(跟WEB-INF文件夾同級,如果沒有則創建),打開context.xml(如果沒有則創建),編輯內容如下:
<?xmlversion='1.0'encoding='UTF-8'?>
<Contextpath="/sessionWeb"cookies="false">
</Context>
注意:該配置只是禁止Session使用Cookie作為識別標虧舉志,並不能阻止其他的Cookie讀寫。也就是說伺服器嘩罩不銷蘆碧會自動維護名為JSESSIONID的Cookie了,但是程序中仍然可以讀寫其他的Cookie。
這樣設置後,伺服器不會自動維護名為JSESSIONID的Cookie了,那麼我們只能手動來維護了
原來窗口:
<ahref="topic/del.do?id=1;jsessionid=<%=session.getId()%>">刪除</a>
當打開新窗口,因為沒有帶入jsessionid就需要登錄了。
<ahref="topic/del.do?id=1"target="_blank">新窗口刪除</a>
Ⅹ javaweb項目,防止用戶重復登陸問題,求大神指導
可以考慮下,設定session的失效時間:
http://wenku..com/link?url=_2_-dS-GhFQyMMVQcBbyJhQqbXJSO