欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaWeb實(shí)現(xiàn)自動(dòng)登錄功能

 更新時(shí)間:2021年08月15日 16:42:42   作者:Alan_TW  
這篇文章主要為大家詳細(xì)介紹了JavaWeb實(shí)現(xiàn)自動(dòng)登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了JavaWeb實(shí)現(xiàn)自動(dòng)登錄功能的具體代碼,供大家參考,具體內(nèi)容如下

自動(dòng)登錄是通過存儲cookie值來實(shí)現(xiàn)的。

工程目錄如下:

login.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登錄</title>
</head>
<body>
    <form action="login" method="post">
        用戶名:<input name="username" type="text"><br>
        密碼:<input name="password" type="password">
        <input type="checkbox" name="autoLogin" value="autoLogin">自動(dòng)登錄
        <input type="submit" value="提交">
    </form>
</body>
</html>

success.jsp(主要用于測試是否儲存成功):

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
    ${sessionScope.username }<br>
    ${sessionScope.password }
</body>
</html>

LoginServlet(用于登錄邏輯處理):

package servletLogin;
 
import java.io.IOException;
import java.net.URLEncoder;
 
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
 
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        
        HttpSession session = request.getSession();
        //登錄成功,(在這應(yīng)該是和數(shù)據(jù)庫的值對比)
        if(username.equals("alan呵呵") && password.equals("123")){
            
            String autoLogin = request.getParameter("autoLogin");
 
            if(autoLogin!=null){
 
                //編碼是為了在cookie中存儲漢字
                String usernameCode = URLEncoder.encode(username, "utf-8");
                
                Cookie usernameCookie = new Cookie("username",usernameCode);
                Cookie passwordCookie = new Cookie("password",password);
                //設(shè)置持久化時(shí)間
                usernameCookie.setMaxAge(60*60);
                passwordCookie.setMaxAge(60*60);
                //設(shè)置cookie攜帶路徑
                usernameCookie.setPath(request.getContextPath());
                passwordCookie.setPath(request.getContextPath());
                //發(fā)送cookie
                response.addCookie(usernameCookie);
                response.addCookie(passwordCookie);
            }
            
            session.setAttribute("username", username);
            session.setAttribute("password", password);
            response.sendRedirect("success.jsp");
        }else{
            request.getRequestDispatcher("login.jsp").forward(request, response);
        }
    }
}

LoginFilter(用于自動(dòng)登錄的攔截器):

package filter;
 
import java.io.IOException;
import java.net.URLDecoder;
 
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
 
 
public class LoginFilter implements Filter {
 
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
 
        HttpServletRequest req = (HttpServletRequest) request;
        HttpSession session = req.getSession();
 
        // 獲得cookie中用戶名和密碼 進(jìn)行登錄的操作
        // 定義cookie_username
        String cookie_username = null;
        // 定義cookie_password
        String cookie_password = null;
        // 獲得cookie
        Cookie[] cookies = req.getCookies();
        if (cookies != null) {
            for (Cookie cookie : cookies) {
                // 獲得名字是cookie_username和cookie_password
                if ("username".equals(cookie.getName())) {
                    cookie_username = cookie.getValue();
                    // 對cookie中的值解碼
                    cookie_username = URLDecoder.decode(cookie_username,
                            "UTF-8");
                }
                if ("password".equals(cookie.getName())) {
                    cookie_password = cookie.getValue();
                }
            }
        }
        
        if(cookie_username != null && cookie_password != null){
            if(cookie_username.equals("alan呵呵") && cookie_password.equals("123")){
                session.setAttribute("username", cookie_username);
                session.setAttribute("password", cookie_password);
            }
        }
        chain.doFilter(request, response);
    }
    public void destroy() {
    }
    public void init(FilterConfig fConfig) throws ServletException {
    }
}

web.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" 
version="2.5">
  <display-name>WEB24</display-name>
 

  <!-- 自動(dòng)登錄的filter -->
 <filter>
      <filter-name>AutoLoginFilter</filter-name>
      <filter-class>filter.LoginFilter</filter-class>
  </filter>
  <filter-mapping>
      <filter-name>AutoLoginFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>
 
 
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
 
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>servletLogin.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>
 
 
</web-app>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot使用SensitiveWord實(shí)現(xiàn)敏感詞過濾

    SpringBoot使用SensitiveWord實(shí)現(xiàn)敏感詞過濾

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何使用SensitiveWord實(shí)現(xiàn)敏感詞過濾功能,文中示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-01-01
  • 一文詳解Spring?Boot可以同時(shí)處理多少請求

    一文詳解Spring?Boot可以同時(shí)處理多少請求

    SpringBoot是一個(gè)流行的Java開發(fā)框架,它被廣泛用于構(gòu)建Web應(yīng)用程序,但是,開發(fā)人員通常會擔(dān)心它的性能問題,特別是在高負(fù)載條件下,Spring?Boot能夠同時(shí)處理多少請求是一個(gè)重要的問題,在本文中,我們將討論SpringBoot的請求處理能力,并介紹如何提高性能
    2023-10-10
  • Vue實(shí)現(xiàn)驗(yàn)證碼登錄的超詳細(xì)步驟

    Vue實(shí)現(xiàn)驗(yàn)證碼登錄的超詳細(xì)步驟

    這篇文章主要給大家介紹了關(guān)于Vue實(shí)現(xiàn)驗(yàn)證碼登錄的超詳細(xì)步驟,我們在使用vue進(jìn)行前端開發(fā)時(shí)都需要登錄驗(yàn)證,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • Spring框架構(gòu)造注入操作實(shí)戰(zhàn)案例

    Spring框架構(gòu)造注入操作實(shí)戰(zhàn)案例

    這篇文章主要介紹了Spring框架構(gòu)造注入操作,結(jié)合具體實(shí)例形式分析了spring框架構(gòu)造輸入的相關(guān)定義與使用操作技巧,需要的朋友可以參考下
    2019-11-11
  • Java本地緩存的實(shí)現(xiàn)代碼

    Java本地緩存的實(shí)現(xiàn)代碼

    本篇文章主要介紹了Java本地緩存的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Java 常用類解析:java異常機(jī)制,異常棧,異常處理方式,異常鏈,異常丟失詳解

    Java 常用類解析:java異常機(jī)制,異常棧,異常處理方式,異常鏈,異常丟失詳解

    這篇文章主要介紹了Java 常用類解析:java異常機(jī)制,異常棧,異常處理方式,異常鏈,異常丟失詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Java輕松入門冒泡?選擇?插入?希爾?歸并排序算法

    Java輕松入門冒泡?選擇?插入?希爾?歸并排序算法

    這篇文章主要介紹了Java常用的排序算法及代碼實(shí)現(xiàn),在Java開發(fā)中,對排序的應(yīng)用需要熟練的掌握,這樣才能夠確保Java學(xué)習(xí)時(shí)候能夠有扎實(shí)的基礎(chǔ)能力。那Java有哪些排序算法呢?本文小編就來詳細(xì)說說Java常見的排序算法,需要的朋友可以參考一下
    2022-02-02
  • Java獲取精確到秒的時(shí)間戳方法

    Java獲取精確到秒的時(shí)間戳方法

    這篇文章主要為大家詳細(xì)介紹了Java獲取精確到秒的時(shí)間戳方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Java讀取properties文件連接數(shù)據(jù)庫的方法示例

    Java讀取properties文件連接數(shù)據(jù)庫的方法示例

    這篇文章主要介紹了Java讀取properties文件連接數(shù)據(jù)庫的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-04-04
  • 淺談Java抽象類和接口的個(gè)人理解

    淺談Java抽象類和接口的個(gè)人理解

    這篇文章主要介紹了淺談Java抽象類和接口的個(gè)人理解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12

最新評論