1. 程式人生 > >jsp基礎之--使用Session完成簡單的登陸操作

jsp基礎之--使用Session完成簡單的登陸操作

 專案地址:https://gitee.com/martinHuang/jsp-basic-LoginDemo

今天來說說Session,Session也叫實域,能夠儲存一些資訊,並且再頁面跳轉的時候不會丟失,常用作登陸,可以儲存已經登陸使用者的資訊。今天就利用Session在不連線資料庫的情況下實現簡單的登陸操作。

  在jsp中,session被作為一個獨立的介面存在,叫做HttpSession

  我們要用到的是設定Session,設定Session的過期時間,獲取Session的值,移除Session,分別對應以下方法


setAttribute表示設定Session,第一個引數是Session的名稱,第二個是其值,注意,要是一個物件。紅框的意思是說,如果有兩個同名的Session,先建立的將被後建立的覆蓋


setMaxInactiveInterval表示設定Session的最大失效時間,就是說設定存活多少時間後失效,後面的引數是一個int值,以秒為單位


getAttribute表示獲取Session的值,後面的引數是一個String值,表示要獲取的Session名稱,該方法返回一個Object物件,如果該Session不存在,返回null

  

  removeAttribute表示移除Session,後面的引數是一個String值,表示要移除的Session名稱

現在讓我們開始吧~

1、新建一個Dynamic Web Project,名叫login_logout


2、在工程名點右鍵,新建一個類,名為login,來執行登陸操作


login.java內容如下

package login_logout;
public class login 
{
	public boolean Login(String name , String password)
	{
		if(name.equals("abc") && password.equals("123456"))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}

login方法的作用是比對使用者名稱和密碼和預設的是否一致,一致返回true,不一致返回false

3、在WebContent下新建login.jsp頁面,這個就是使用者看到的第一屏頁面了

      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="jspCode/login_code.jsp" method="post">
       <input type="text" name="user" placeholder="請輸入使用者名稱"/>
        <br/>
        <br/>
       <input type="password" name="password" placeholder="請輸入密碼"/>
       <br/>
       <br/>
       <input type="submit" value="提交"/>
   </form>
</body>
</html>

4、在WebContent資料夾下新建資料夾,叫jspCode,在該資料夾下新建login_code.jsp檔案,login_code.jsp檔案內容如下

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="login_logout.*" %>
<% 
   login in = new login();
   String name = request.getParameter("user");
   String pass = request.getParameter("password");
   boolean isLoginSucc = in.Login(name, pass);
   if(isLoginSucc)
   {
	   out.println("<script>alert('登陸成功!');window.location.href='../index.jsp'</script>");
	   session.setAttribute("user", name);
	   session.setMaxInactiveInterval(60);
   }
   else
   {
	   out.println("<script>alert('登陸失敗!');window.location.href='../login.jsp'</script>");
   }
%>

這裡就用到了前面說的設定session的值,設定存活時間的方法了,這裡我設定為1分鐘

5、在WebContent目錄下新建index.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>
  <%
    if(session.getAttribute("user") == null)
    {
    	out.println("<script>alert('請先登陸');window.location.href='login.jsp'</script>");
    	return;
    }
    Object user = session.getAttribute("user");
    out.println("歡迎"+user);
  %>
  <br/>
  <form action="#" method="post">
    <button type="submit" formaction="jspCode/logout.jsp">登出</button>
  </form>
  
</body>
</html>

6、在前面建立好的jspCode資料夾下新建logout.jsp檔案,用於登出操作,內容如下
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%
  session.removeAttribute("user");
  out.println("<script>window.location.href='../login.jsp'</script>");
%>

這裡用到了移除session的方法

7、測試執行


輸入預置的使用者名稱和密碼,顯示登陸成功,並跳轉頁面



點選登出也正常登出


重新登陸等待1分鐘後重新整理頁面



成功失效了~

回到登陸介面,輸入錯誤的使用者名稱和密碼



OK~

最後的檔案目錄如下


呃...本人學生黨,如果講的不好,講的囉嗦的話還請大家多多包含~

相關推薦

jsp基礎--使用Session完成簡單登陸操作

 專案地址:https://gitee.com/martinHuang/jsp-basic-LoginDemo今天來說說Session,Session也叫實域,能夠儲存一些資訊,並且再頁面跳轉的時候不會丟失,常用作登陸,可以儲存已經登陸使用者的資訊。今天就利用Session在

Django基礎Session操作

1. 建立一個示例 1.1 第一步 首先建立一個django專案,建立app01, 連線資料庫,做好準備工作。 然後在templates目錄下建立兩個html: login.html負責登入頁面; backend頁面代表後臺頁面。 1 <!DOCTYPE html

那些年,我爬過的北科(二)——爬蟲基礎session登陸

(注:由於現在域名全都要備案了,.tech 域名不讓備案,下面的nladuo.tech 統一更改為 nladuo.cn) 說說HTTP請求:GET與POST 在上一節中,我們在不知道原理的條件下呼叫了requests.get方法下載了HTML頁面。在本節中,我們來說說什麼是HTTP請求和它的特點。 在H

Python基礎字串和簡單列表操作

""" 列表 1.append()可用於在列表末尾新增元素 2.insert()可用於在指定索引插入元素 3.del+列表[索引]可以刪除指定索引的元素 4.pop()表示彈出列表中最後一個元素,並將其結果返回。也可以在括號中指定索引 5.使用remove()可以刪除具體元素 6.使用sort()可以對列表進

Go基礎--排序和查找操作

ear () ola 方法 math https swa blog png 排序操作主要都在sort包中,導入就可以使用了import("sort") 常用的操作 sort.Ints:對整數進行排序sort.Strings:對字符串進行排序sort.Float64s:對

JSP學習---運用useBean和jdbc操作。實現簡答前臺操作資料庫。

JSP學習之—運用useBean和jdbc操作。實現簡答前臺操作資料庫。 功能描述 1 . 在”student”表中查詢所有大於特定年齡的學生資訊,此年齡由使用者指定(提示,在網頁上面新增一個文字框用於使用者輸入年齡,然後根據使用者輸入的年齡建立sql語句,下面加一個按鈕,單擊按

Django基礎Session

1. Session的由來 Cookie雖然在一定程度上解決了“保持狀態”的需求,但是由於Cookie本身最大支援4096位元組,以及Cookie本身儲存在客戶端,可能被攔截或竊取,因此就需要有一種新的東西,它能支援更多的位元組,並且它儲存在伺服器,有較高的安全性。這就是Session。 問題來了,基於H

Django基礎Session版登入驗證

from functools import wraps def check_login(func): @wraps(func) def inner(request, *args, **kwargs): next_url = request.get_full_path()

flask基礎session原理詳解(十)

前言 flask_session是flask框架實現session功能的一個外掛,用來替代flask自帶的session實現機制,flask預設的session資訊儲存在cookie中,不夠安全和靈活。 flask的session機制 session是用來幹什麼的呢?由於http協議是一個無狀態的協議,

玩玩機器學習3——TensorFlow基礎Session基本運算、佔位符和變數的使用

通過TensorFlow的矩陣和常量的"加減乘除"運算,講一下Session、變數以及佔位符的使用 目錄 變數的使用 Session建立會話與運算 #session的使用,介紹兩種啟動Session的方式,進行矩陣乘法運算 import tensorf

機器學習基礎knn的簡單例子

knn演算法是人工智慧的基本演算法,類似於語言中的"hello world!",python中的機器學習核心模組:Scikit-Learn Scikit-learn(sklearn)模組,為Python語言實現機器學習的核心模組,其包含了大量的演算法模型函式API, 可以讓我們很輕鬆地建立、

【原創】Java基礎Session機制

mem wrap 增加 sha1 info 下載 head 返回 att Session機制 JSESSIONID是Session的標識,當客戶端請求服務器端的時候,服務器端會檢查是否已經給這個客戶端創建過Session,也就是看客戶端的請求中的header是否有Cooki

web前端js基礎“return”的簡單運用及小練習

 一.看完你將學會? 1.什麼是return。 2.return的作用。 3.return可以充當迴圈使用。 二、return的介紹? return可以終止當前函式,並返回當前函式的值。 <!DOCTYPE html> <html lang="e

python基礎元組、檔案操作、編碼、函式、變數 python基礎元組、檔案操作、編碼、函式、變數

python基礎之元組、檔案操作、編碼、函式、變數 1、集合set 集合是無序的,不重複的,主要作用: 去重,把一個列表變成集合,就可以自動去重 關係測試,測試兩組資料的交集,差集,並集等關係 操作例子如下: 1 list_1 = [1,4,5,7,3,6,7,9] 2

linux基礎熟悉常用的 Linux 操作

友情提示:親自動手敲一遍的收穫將會是最大的,這裡只是一點皮毛的記錄。 cd 命令:切換目錄 ( 1 )切換到目錄 /Documents/tmp    cd  ./Documents/tmp  (2)去到目前的上層目錄    cd  .. (3)回到自己的主資料夾   cd

Linux基礎三——Linux簡單使用

一、不正常關機由於Linux使用非同步磁碟/記憶體資料傳輸模式,且是多人多工環境,不正常關機可能導致檔案系統錯亂,造成資料損毀,甚至不能正常開機。如果條件允許,可以考慮配置不斷電系統ups。 二、圖形介面圖形介面的操作跟windows系統很接近,可以自行摸索使用。在登入介面

在WINDOWS下使用github 完成簡單操作過程,不需要使用命令列

要在github上貢獻自己的力量,就要了解github的協同工作模式,就是pull request的使用 註冊一個github賬號 開啟github主頁,註冊一個賬號。 安裝客戶端 客戶端你可以安裝原生的git客戶端,在linux下使用: sudo apt-get install git

linux基礎sudu的簡單用法

擁有 bin commands com sudoers 管理員權限 nop 顯示 版本 su: Switch User, 以管理員身份運行某些命令: su -l root -c ‘COMMAND‘ 但是想要限制某個用戶只擁有一部分管理員權限,而不是擁有全部權限,

python基礎檔案操作簡單的類

檔案操作 #檔案刪除 import os path=".\\data\\" for s in os.listdir(path): filename=path+s print(filename) # os.remove("test.txt") #檔案開啟 f=open('test.

python基礎socket編程-------基於tcp的套接字實現遠程執行命令的操作

logs lose stream res std 遠程控制 python log out 遠程實現cmd功能: import socket import subprocess phone=socket.socket(socket.AF_INET,socket.SOC