摘要:概述一共兩個頁面當直接訪問產品列表的時候會判斷用戶是否登錄如果用戶沒有登錄則直接秒跳轉如果用戶登錄則不進行跳轉登錄頁面對于登錄頁面來說直接輸入用戶名密碼和數據庫進行對比進行登錄并進行密碼的本地保存一般是需要對密碼加密進行本地保存的代碼如下配
概述
一共兩個頁面
當直接訪問產品列表的時候,會判斷用戶是否登錄,如果用戶沒有登錄,則直接3秒跳轉.
如果用戶登錄,則不進行跳轉
登錄頁面:對于登錄頁面來說,直接輸入用戶名,密碼.和數據庫進行對比,進行登錄.
并進行密碼的本地保存
ps 一般是需要對密碼加密進行本地保存的代碼如下 配置文件
登錄界面Archetype Created Web Application login /Login.jsp driver com.mysql.cj.jdbc.Driver url jdbc:mysql://47.94.95.84:32786/test user test password ** login /login.html
<%@ page import="java.sql.Connection" %> <%@ page import="java.sql.PreparedStatement" %> <%@ page import="java.sql.ResultSet" %> <%@ page import="java.sql.DriverManager" %><%-- Created by IntelliJ IDEA. User: ming Date: 19-3-13 Time: 下午10:02 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %><% String dbdriver = config.getInitParameter("driver"); String dburl = config.getInitParameter("url"); String dbuser = config.getInitParameter("user"); String dbpassword = config.getInitParameter("password"); // 連接對象 Connection connection = null; // 操作 PreparedStatement preparedStatement = null; // 結果 ResultSet resultSet = null; // 用戶id String mid = null; // 標志位 boolean falge = false; try{ Class.forName(dbdriver); // 獲得連接 connection = DriverManager.getConnection(dburl, dbuser, dbpassword); // 編寫sql驗證ID 密碼 String sql = "SELECT mid FROM member WHERE name = ? AND password = ?"; // 實例化操作對象 preparedStatement = connection.prepareStatement(sql); // 設置查詢內容 preparedStatement.setString(1, request.getParameter("username")); preparedStatement.setString(2, request.getParameter("password")); // 執行查詢 resultSet = preparedStatement.executeQuery(); // 如果可以查詢到,表示合法用戶 if(resultSet.next()){ mid = resultSet.getString(1); // 修改標志位 falge = true; } }catch (Exception e){ e.printStackTrace(); }finally { try{ resultSet.close(); preparedStatement.close(); connection.close(); }catch (Exception e){ e.printStackTrace(); } } // 判斷是否登錄成功 if(falge){ // 登錄成功 // 保存session 保存cookie session.setAttribute("mid", mid); // 保存cookie Cookie cookieMid = new Cookie("mid", mid); Cookie cookieUser = new Cookie("user", request.getParameter("username")); Cookie cookiePassword = new Cookie("password", request.getParameter("password")); // 增加登錄態cookie Cookie cookieFlage = new Cookie("flage", "true"); // 客戶端增加Cookie response.addCookie(cookieMid); response.addCookie(cookieUser); response.addCookie(cookiePassword); response.addCookie(cookieFlage); // 設置定時跳轉 response.setHeader("refresh", "3;URL=product.jsp"); %> 登錄成功即將跳轉到首頁產品界面 未跳轉點擊點擊此處 <% }else{ // 查詢用戶是否已經登錄 if(session.getAttribute("mid") == null) { Cookie cookieFlage = new Cookie("flage", "false"); response.addCookie(cookieFlage); } } %> 產品界面登錄頁面
<%-- Created by IntelliJ IDEA. User: ming Date: 19-3-14 Time: 下午2:51 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %>注意Title 此為商品列表 <% // 服務器端驗證 if(session.getAttribute("mid") == null) { // 執行頁面跳轉 response.setHeader("refresh", "2;URL=/login.html"); } %>
產品界面通過本地cookie和服務器的session進行雙向驗證.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73725.html
摘要:提供了個內置對象該對象會自動進行實例化操作種屬性范圍只在一個保存屬性跳轉無效一次請求保存屬性跳轉依舊有效同一會話有效整個服務器上保存所有用戶都可使用屬性一個屬性設置在本頁上跳轉后無法獲得下午設置屬性重中取出屬性姓名生日屬性服務 jsp提供了9個內置對象,該對象會自動進行實例化操作 4種屬性范圍 page 只在一個保存屬性,跳轉無效request 一次請求保存屬性,跳轉依舊有效sessi...
摘要:的學習與內置對象對象代表服務器對客戶端的響應。在增加之前必須先創建對象。一次會話的含義是從客戶端瀏覽器連接服務器開始,到客戶端服務與斷開為止。范圍內的屬性可以在多個頁面的跳轉之間共享。 Java Server Page的學習(resopnse與session) 內置對象 response對象 respone代表服務器對客戶端的響應。如果要在JSP頁面中動態生成一副位圖或者輸出一個...
摘要:簡而言之,由服務端生成再發給客戶端,在客戶端運行,相當于本地緩存的作用。在出現之前,基本上所有的網站都采用來跟蹤會話。對象存儲特定用戶會話所需的屬性及配置信息。若匹配成功和,說明不是第一次訪問,無需再登錄 什么是cookie?作用是什么?  cookie是小量信息,由網絡服務器發送出來以存儲在網絡瀏覽器上,從而下次這位獨一無二的訪客又回到該網絡服務器時,可從該瀏覽器讀回...
什么是EL表達式? 表達式語言(Expression Language,EL),EL表達式是用${}括起來的腳本,用來更方便的讀取對象! EL表達式主要用來讀取數據,進行內容的顯示! 為什么要使用EL表達式? 為什么要使用EL表達式,我們先來看一下沒有EL表達式是怎么樣讀取對象數據的吧! 在1.jsp中設置了Session屬性 向session設置一個屬性 在2...
閱讀 1863·2023-04-26 02:46
閱讀 1996·2021-11-25 09:43
閱讀 1140·2021-09-29 09:35
閱讀 2096·2019-08-30 15:56
閱讀 3419·2019-08-30 15:54
閱讀 2627·2019-08-29 16:35
閱讀 3116·2019-08-29 15:25
閱讀 3282·2019-08-29 14:01