導航:首頁 > 編程語言 > 記住密碼怎麼實現jsp

記住密碼怎麼實現jsp

發布時間:2024-12-30 14:18:38

『壹』 html語言,記住用戶名密碼勾選框代碼

<input name="" type="checkbox" value="" checked="checked" />記住我的選擇

這只是html的代碼,是沒有「記住」的功能的。要實現這個功能還回必須用到其它動態答網站編程語言,如asp,php,jsp等,這些編程語言都有個叫「cookie」的東東,用來在客戶端保存信息的,用它就能「記住」用戶的選擇了。

『貳』 如何在javaEE中使用cookie實現記住用戶明名密碼下次自動登錄

例如:在用戶提交用戶名和密碼之後,進入到loginServlet後,通過獲取頁面上checkbox的值來判斷用戶是否需要記住密碼,如果需要的話,使用:Cookie cookie = new Cookie("testkey","testvalue");cookie.setMaxAge(3600);// 有效時間,單位是秒cookie.setPath("abc");response.addCookie(cookie);如上幾句來保存cookie。在登錄頁面的時候,需要使用:Cookie[] cookies = request.getCookies();for (int i = 0; cookies != null && i < cookies.length; i++) { System.out.println(cookies[i].getName() + "=" + cookies[i].getValue());}來獲取cookie的值判斷用戶曾經是否已經記住密碼,如果是的話,則直接調用cookie的值來進行登錄,如果不是,則正常登錄

『叄』 java 開發,然後我想問下,jsp 頁面那個checkbox 框記住密碼是怎麼實現的

好的,樓主,我現在把實現這個業務的簡單化示例做出來過你。

要實現題目這個功能,我們需要使用Cookie瀏覽器緩存來做到。Cookie與Session的最大不同,就在於它們的生命周期,Cookie通過設置後,生命周期可以與Session一樣,或者比它長久。

通常來說,根據我的習慣,對於一些通用的業務能夠,我希望把它們封裝到一個工具類裡面,使用方法就是直接調用它的靜態方法。

CookieTool.java 源代碼:

/**
* 設置cookie(介面方法)
* @param response
* @param name cookie名字
* @param value cookie值
* @param maxAge cookie生命周期 以秒為單位
*/
public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){
Cookie cookie = new Cookie(name,value);
cookie.setPath("/");
if(maxAge>0) cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}

/**
* 根據名字獲取cookie(介面方法)
* @param request
* @param name cookie名字
* @return
*/
public static Cookie getCookieByName(HttpServletRequest request,String name){
Map<String,Cookie> cookieMap = ReadCookieMap(request);
if(cookieMap.containsKey(name)){
Cookie cookie = (Cookie)cookieMap.get(name);
return cookie;
}else{
return null;
}
}

/**
* 將cookie封裝到Map裡面(非介面方法)
* @param request
* @return
*/
private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){
Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
Cookie[] cookies = request.getCookies();
if(null!=cookies){
for(Cookie cookie : cookies){
cookieMap.put(cookie.getName(), cookie);
}
}
return cookieMap;
}

好了,工具類的靜態方法已經定義好了。

我先假定樓主對表現層提交表單到業務層是有概念的,

這里存在兩種情況:

(1)客戶端沒有登錄記錄,則進入登錄頁面

(2)客戶端存在有效的登錄記錄,進入登錄後的頁面。

因此在顯示登錄頁面之前就要通過一個業務方法進行判斷,其中最核心的是:

Cookie cokLoginName = CookieTool.getCookieByName(request,"loginName");
Cookie cokLoginPwd = CookieTool.getCookieByName(request,"loginPwd");

if (cokLoginName != null && cokLoginPwd != null && cokLoginName.getValue()!=null && cokLoginPwd.getValue()!=null){
String loginName = cokLoginName.getValue();
String loginPwd = cokLoginPwd.getValue();
//檢查到客戶端保存了用戶的密碼,進行該賬戶的驗證
//這里要使用你自己的賬戶驗證方法
//如果賬戶驗證成功,則跳轉到登錄成功的頁面
//如果賬戶驗證失敗,則
CookieTool.addCookie(response,"loginName",null,0); //清除Cookie
CookieTool.addCookie(response,"loginPwd",null,0); //清除Cookie
//然後跳轉到登錄頁面
}

其次就是在登錄JSP頁面的表單所提交到的登錄Action。這里假設表單提交到的是Servlet,讀取表單參數樓主應該沒有問題吧?我這里只關注和插入Cookie代碼。

插入的地方在賬戶密碼的正確性經過驗證,在跳轉頁面之前。假設儲存用戶輸入的帳號和密碼欄位分別為String username,String password

int loginMaxAge = 30*24*60*60; //定義賬戶密碼的生命周期,這里是一個月。單位為秒
if ( 單選框 ) {
CookieTool.addCookie(response , "loginName" , username , loginMaxAge);
CookieTool.addCookie(response , "loginPwd" , password , loginMaxAge);
}

希望我提供的工具類和方法會對樓主有幫助!有什麼問題請給我留言!謝謝!

『肆』 jsp中不能提取cookie!

//這是一個servlet的,你改成JSP的就可以用,你可以參照裡面的邏輯去做一下,說不定可以幫你(這道題是記住用戶自動登陸)

package servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Login extends HttpServlet {

public Login() {
super();
}

public void destroy() {
super.destroy();
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();

Cookie[] cookies = request.getCookies();
if(cookies != null){
for(Cookie cookie : cookies){
out.println("用戶名:"+cookie.getName()+"<br />");
out.println("密碼:"+cookie.getValue()+"<br />");
out.println(cookie.getName() + ",您好!歡迎來到登陸頁面!!");
}
}else{
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>Login Servlet</TITLE></HEAD>");
out.println(" <BODY><form action='Login' method='post'>");
out.print("<p>用戶名:<input name='name' type='text' /></p>" +
"<p>密碼:<input name='pwd' type='password' /></p>" +
"<p><input name='jizhu' type='checkbox' />記住我</p>" +
"<p><input name='sub' type='submit' value='登錄' /></p>");
out.println("</form> </BODY>");
out.println("</HTML>");
}
out.flush();
out.close();
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();

String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
String jizhu = request.getParameter("jizhu");

if(jizhu != null){
Cookie mycookie = new Cookie(name,pwd);
mycookie.setMaxAge(60*60*24*7);
mycookie.setPath("/");
response.addCookie(mycookie);
}

if(name.equals("haha") && pwd.equals("123")){
out.println(name + ",您好!歡迎來到登陸頁面!!");
}else{
out.println("登陸失敗!!");
}

out.flush();
out.close();
}

public void init() throws ServletException {
}

}

『伍』 我用jsp做了個登錄頁面,想讓它記住密碼,下次登錄時不需要再輸入密碼,怎樣實現

使用Cookie實現。

閱讀全文

與記住密碼怎麼實現jsp相關的資料

熱點內容
升級到win10後刪除 瀏覽:17
linuxtotalcommander 瀏覽:165
傳票翻打在電腦上下什麼app 瀏覽:39
db2查看資料庫字元集 瀏覽:449
小米私密文件移出後找不到 瀏覽:775
紅底白色的心是什麼app的標志 瀏覽:163
小冤家APP角色怎麼變回家長 瀏覽:822
夢幻西遊合寵模擬器網站是什麼 瀏覽:420
諾基亞930最新版本 瀏覽:201
ps製作主kv文件過大 瀏覽:884
車端面如何編程 瀏覽:279
win10u盤備份時間長 瀏覽:617
文件夾怎麼轉換為pdf 瀏覽:502
2008打開登錄密碼忘記了 瀏覽:771
蘋果7如何授權應用程序 瀏覽:899
怎樣把舊的文檔保存到桌面文件夾 瀏覽:827
wps雲數據如何恢復 瀏覽:496
微信發送過來文件 瀏覽:300
怎麼改合同網站 瀏覽:73
網路鬥地主記牌器怎麼實現的 瀏覽:377

友情鏈接