1. 程式人生 > >java的使用者登入怎樣記住上次登入的使用者名稱和密碼?

java的使用者登入怎樣記住上次登入的使用者名稱和密碼?

java實現,使用者在登入登入介面時可以記住上一次登入的使用者名稱。本人認為可以有兩種解決方案

第一:使用資料庫實現;具體實現為,新建表login。最簡單的設計為裡面有兩個欄位,一個欄位為使用者名稱,另外一個為本機IP地址。

第二:可以使用Cookie技術來實現;具體的實現程式碼如下(注:程式碼實現的是記錄上一次登入的時間,把時間改為使用者名稱即可):

package com.fenuang.sevlvet;  
  
import java.io.IOException;  
import java.text.SimpleDateFormat;  
import java.util.Date;  
  
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 firstservlet extends HttpServlet {  
    @Override  
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  
        // 設定介面編碼方式  
        resp.setContentType("text/html;charset=utf-8");  
        resp.getWriter().write("程式開啟");  
  
        // 設定時間格式  
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  
  
        // 獲取當前時間  
        String cutTime = sdf.format(new Date());  
  
        /** 
         * 先把所有的cookie放入陣列 
         */  
  
        Cookie[] cookies = req.getCookies();  
  
        String lastTime = null;  
        /** 
         * 查詢陣列是否有lastTime的cookie 
         */  
  
        if (cookies != null) {  
            for (Cookie cookie : cookies) {  
  
                // 如果有上次的登陸痕跡  
                if (cookie.getName().equals("lastTime")) {  
  
                    // 把時間顯示在瀏覽器  
                    lastTime = cookie.getValue();  
                    resp.getWriter().write("歡迎回來! 您上次登入是在:" + lastTime);  
                    // 更新cookie  
                    cookie.setValue(cutTime);  
                    // 設定過期時間一個月  
                    cookie.setMaxAge(1 * 30 * 24 * 60 * 60);  
                    // 把更新的資料傳送到瀏覽器儲存起來  
                    resp.addCookie(cookie);  
                    break;  
                }  
  
            }  
        }  
  
        if (cookies == null || lastTime == null) {  
  
            // 沒有cookie 建立物件  
            // 顯示當前時間  
  
            resp.getWriter().write("你好,歡迎登入 這是您的第一次" + cutTime);  
            // 把資料儲存到cookie中  
            Cookie cookie = new Cookie("lastTime", cutTime);  
            // 設定過期時間  
            cookie.setMaxAge(1 * 30 * 60 * 24 * 60);  
            // 儲存到伺服器  
            resp.addCookie(cookie);  
        }  
  
    }  
}  

配置的xml檔案



<?xml version="1.0" encoding="UTF-8"?>  
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
    <!-- 配置servlet -->  
    <!-- servlet配置 -->  
    <servlet>  
        <!--內部名稱 -->  
        <servlet-name>firstservlet</servlet-name>  
        <!-- 全名 /first/src/firstservlet/firstservlet.java -->  
        <servlet-class>com.fenuang.sevlvet.firstservlet</servlet-class>  
        <!-- 讓servlet物件自動載入 -->  
        <load-on-startup>1</load-on-startup>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>firstservlet</servlet-name>  
        <!-- servlet對映 路徑 訪問servlet的名稱 -->  
        <url-pattern>/first</url-pattern>  
    </servlet-mapping>  
</web-app>