導航:首頁 > 編程語言 > 記住密碼怎麼實現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相關的資料

熱點內容
萬步有約查看數據如何看處方 瀏覽:458
福彩3d和值工具下載 瀏覽:433
連接配置文件不運行如何處理 瀏覽:893
ev3編程和python編程哪個好 瀏覽:156
ps中的文件能印刷嗎 瀏覽:880
jsr303spring 瀏覽:755
qq密碼畫蝶 瀏覽:644
液晶電視如何變成網路電視 瀏覽:612
數控程序的編程方式叫什麼 瀏覽:809
postgresql客戶端工具 瀏覽:627
90版本巨宗武器選擇 瀏覽:822
磁碟填0後文件名 瀏覽:261
數控8寸4牙怎麼編程 瀏覽:633
修復一個壞道會損壞多少數據 瀏覽:939
linux時間配置文件 瀏覽:957
批量申請qq號是真的嗎 瀏覽:970
ps4更新不了系統升級 瀏覽:140
win10用易升升級有殘留 瀏覽:481
安卓怎麼設置移動網路名字 瀏覽:164
cad如何畫文件袋 瀏覽:555

友情鏈接