最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaWeb實現(xiàn)自動登錄功能

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

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

自動登錄是通過存儲cookie值來實現(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">自動登錄
        <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è)置持久化時間
                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(用于自動登錄的攔截器):

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中用戶名和密碼 進行登錄的操作
        // 定義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>
 

  <!-- 自動登錄的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)文章

  • spring的jdbctemplate的crud的基類dao

    spring的jdbctemplate的crud的基類dao

    本文主要介紹了使用spring的jdbctemplate進行增刪改查的基類Dao的簡單寫法,需要的朋友可以參考下
    2014-02-02
  • SpringBoot多文件分布式上傳功能實現(xiàn)

    SpringBoot多文件分布式上傳功能實現(xiàn)

    本文詳細介紹了如何在SpringBoot中實現(xiàn)多文件分布式上傳,并用代碼給出了相應(yīng)的實現(xiàn)思路和實現(xiàn)步驟,感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • 淺談Java變量的初始化順序詳解

    淺談Java變量的初始化順序詳解

    本篇文章是對Java變量的初始化順序進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • Java線程池ForkJoinPool實例解析

    Java線程池ForkJoinPool實例解析

    這篇文章主要介紹了Java線程池ForkJoinPool實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • 基于SpringBoot實現(xiàn)驗證碼功能的代碼及思路

    基于SpringBoot實現(xiàn)驗證碼功能的代碼及思路

    SpringBoot技術(shù)是目前市面上從事JavaEE企業(yè)級開發(fā)過程中使用量最大的技術(shù),下面這篇文章主要給大家介紹了如何基于SpringBoot實現(xiàn)驗證碼功能的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • spring應(yīng)用中多次讀取http post方法中的流遇到的問題

    spring應(yīng)用中多次讀取http post方法中的流遇到的問題

    這篇文章主要介紹了spring應(yīng)用中多次讀取http post方法中的流,文中給大家列舉處理問題描述及解決方法,需要的朋友可以參考下
    2018-11-11
  • SpringBoot中WebClient的實踐

    SpringBoot中WebClient的實踐

    SpringBoot中的WebClient是一個用于與RESTful服務(wù)交互的非阻塞、響應(yīng)式HTTP客戶端,本文就來介紹一下SpringBoot中WebClient的實踐,感興趣的可以了解一下
    2024-12-12
  • 淺析Java模板方法的一種使用方式

    淺析Java模板方法的一種使用方式

    模板方法說白了就是將一段代碼模板化,將通用的代碼段抽取出來,并提供一些自定義的接口去定制的特定位置的某些業(yè)務(wù)功能。本文主要來和大家聊聊它的一種使用方式,希望對大家有所幫助
    2023-02-02
  • Java方法重載和方法重寫的區(qū)別到底在哪?

    Java方法重載和方法重寫的區(qū)別到底在哪?

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Java方法重載和方法重寫的區(qū)別到底在哪展開,文中有非常詳細的解釋,需要的朋友可以參考下
    2021-06-06
  • 詳解Spring AOP的實現(xiàn)方式

    詳解Spring AOP的實現(xiàn)方式

    AOP是一種思想,是對某一類事情的集中處理,切面就是指某一類特定的問題,所以AOP可以理解為面向特定方法編程,這篇文章主要介紹了Spring AOP的實現(xiàn)方式,需要的朋友可以參考下
    2024-02-02

最新評論

贵溪市| 天台县| 清远市| 康保县| 新丰县| 崇信县| 阿瓦提县| 重庆市| 宜兰县| 本溪| 濉溪县| 宾川县| 亚东县| 区。| 伊吾县| 姚安县| 民勤县| 眉山市| 株洲县| 锦州市| 波密县| 班戈县| 竹山县| 长丰县| 宁河县| 东兴市| 大同县| 田林县| 大港区| 柳州市| 河北区| 辉县市| 遵化市| 浏阳市| 黑河市| 庆城县| 台北市| 宜兴市| 修武县| 商丘市| 岗巴县|