1. 程式人生 > >【Java學習-J.160611.0.21】Servlet基礎四 session部分

【Java學習-J.160611.0.21】Servlet基礎四 session部分

session

什麼是session?

  瀏覽器訪問伺服器時,伺服器會建立一個session物件,該物件有一個唯一的ID,一般稱之sessioId,伺服器在預設的情況下,會將sessionId以cookie的機制傳送給瀏覽器,當瀏覽器再次訪問伺服器時,會將session傳送給伺服器,伺服器依據sessionId查詢session物件。用這種方式來進行伺服器狀態管理。

session的過程

1、瀏覽器向伺服器傳送請求,訪問某個JSP或者servlet,伺服器會檢視包含於請求當中的cookie資訊是否有sessionId。第一次訪問是沒有的。

2、瀏覽器第一次訪問,伺服器會建立一個session物件,這個session物件與所訪問的容器中的元件有引用關係

3、當瀏覽器再次訪問,會將存放sessionId的cookie帶入到伺服器,伺服器會讀取到唯一的sessionid,然後從伺服器中獲取session物件

session超時

伺服器會將指定時間的session物件刪除(某個session在指定時間內沒有被再次使用,將被刪除,預設30分鐘)

session的servlet

public class CountServlet extends HttpServlet{

   public static void service(HtttpServletRequest request, HttpServletResponse response){

   response.setContentType("text/html;charset=utf-8");

   PrintWriter out=response.getWriter();

 HttpSession session=request.getSession();

 session.setMaxInactiveInterval(40);//存活時間40s

 Integer count=session.getAttribute("count");

if(count==null){

    count=1; 

}else

   count++;

  session.setAttribute("count",count);

 out.println("<h1>你是第"+count+"次訪問");

out.close();

   }

}


相關推薦

Java學習-J.160611.0.21Servlet基礎 session部分

session 什麼是session?   瀏覽器訪問伺服器時,伺服器會建立一個session物件,該物件有一個唯一的ID,一般稱之sessioId,伺服器在預設的情況下,會將sessionId以cookie的機制傳送給瀏覽器,當瀏覽器再次訪問伺服器時,會將session傳

Java學習-J.160611.0.21Servlet基礎 cookie部分

一、狀態管理       1)什麼是狀態管理        將客戶端與伺服器之間的多次互動當作一個整體來看待,將多次操作產生的資料記錄下來。       2)怎樣進行狀態管理            1、cookie(在客戶端管理使用者的狀態)            2、se

Java學習-J.160523.0.17js全國城市三級聯動程式碼

HTML部分 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>js全國城市三級聯動</title> <style ty

Java學習-J.160430.0.16筆記9-UUID生成

UUID生成 public class RandomUUID { /* * A-Z a-z 0-9 */ static String[] chars = new

Java學習-J.160406.0.6筆記5-Linux基礎-linux程序管理

檢視和管理linux程序  程序中的狀態 R-程序已經排程,準備好執行;執行中 S-等待,使用者可以發訊號,可到R狀態 D-等待,不接受使用者指令-使用者無法控制 K-等待,接受使用者中斷訊號 Z-僵死,在退出時產生異常,僵死不接受使用者訊號,不釋放資源 PS 檢視列

Java學習-J.160411.0.7筆記6-Java語言特點及資料型別

Java語言的特點一般描述如下     簡單,面向物件,跨平臺、安全以及多執行緒的支援面向物件設計,面向物件設計師有種程式設計技術,它將重點放在物件和介面上。抽象:是將現實世界中的事物描述為系統中的類,物件,和方法的過程。在這個過程當中去除不相關的資料和資訊,保留的資料用來

Java學習之路如何去除數組裡面的0

現有如下一個陣列:   int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}    要求將以上陣列中值為0的項去掉,將不為0的值存入一個新的陣列,生成的新陣列為: int newArr [] ={1,3,4,5,6,6,5,4,7,6

Java並發編程實戰—–“J.U.C”:ReentrantLock之二lock方法分析

b2c check 條件 維護 box 抽象 post eight 若是 前一篇博客簡介了ReentrantLock的定義和與synchronized的差別,以下尾隨LZ的筆記來扒扒ReentrantLock的lock方法。我們知道ReentrantLock有公平鎖、非

Java學習筆記之二十二解析接口在Java繼承中的用法及實例分析

ani 復制代碼 ads compute 現在 target body 常量 實現接口 一、定義 Java接口(Interface),是一系列方法的聲明,是一些方法特征的集合,一個接口只有方法的特征沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具

java學習spring mvc 公共dao的實現,定義基本的增刪改查

pri 代碼 部分 lec sse encoding del epo repos 接口類:    package com.blog.db.dao; import com.blog.util.Pagination; import java.util.Lis

JAVA學習02.Tomcat配置

參考 pro 放置 目的 classpath JD 路徑 spa tomcat配置 【步驟】 【說明】 1、為什麽配置PATH?   為了方便調用程序,例如你把一個目錄的路徑加到系統默認環境變量PATH裏,那麽你可以直接在運行裏輸入該目錄下的程序名,就可以直接運

JAVA學習java虛擬機內存配置,-Xss256m -Xms512m -Xmx800m -XX:MaxPermSize=512m

程序 導致 可能 tomcat服務 nbsp -xmx tails size log 轉自:https://blog.csdn.net/a503921892/article/details/39048737 配置tomcat服務器內存大小中的Xms、Xmx、PermSize

JAVA學習03.MyEclipse安裝與配置Tomcat

-- tomcat-8 安裝 圖標 -s 服務器 director 找到 tomcat7 【提要】 Eclipse一般用於J2SE,MyEclipse用於J2EE; 【步驟】 1、安裝MyEclipse,網上隨便下載就好; 2、破解MyEclipse,待破解...

JAVA學習07.建立系統模塊的權限表

英文 使用 TP bubuko 分享 http .com java學習 png 【提要】系統權限要盡量做到可配置,包括用戶、菜單、群組、角色、按鈕等 【步驟】 【註意】 1、因為群組名、角色名、按鈕名、菜單名都有可能修改,所以要使用編碼+名稱,編碼

Java學習單例模式

{} on() new 情況下 餓漢模式 syn 效率 存在 情況 單例模式有兩種:餓漢模式和懶漢模式,懶漢模式的特點是延遲加載實例 //餓漢模式class Singleton1{ private static final Singleton1 instance = ne

Java學習網絡編程1

概念 發送 兩臺 物理層 說明 網絡編程 數據鏈路層 應用層 p地址 網絡上兩臺主機的交互 ①根據IP找到對方主機 ②數據發送到對方指定的應用程序上,為了表示這些應用程序,引入了端口的概念。 常用端口: wed端口80 MySQL端口3306 有效端口 0~65535 ③定

Java學習Java簡介與安裝

        Java是一門面向物件程式語言,相對於C語言沒有指標這種讓人難以理解的東西,並且有自己的垃圾回收機制。相對於其他語言,本人感覺Java簡單易學並且功能強大。(當然,python寫起程式碼來更加簡單,不過

java學習筆記單例模式

單例設計模式:某個類在整個系統中只能有一個例項物件可被獲取和使用的程式碼模式。例如:代表JVM執行環境的Runtime類 要點: 一.一個類只能有一個例項:構造器私有化 二.該類必須自己建立這個例項:含有一個該類的靜態變數來儲存這個唯一例項 三.該類必須向整個系統提供這個例項:方式:1.直接暴露2.用

java學習筆記模擬鬥地主功能

模擬鬥地主的功能:1.組合牌 2.洗牌 3.發牌 4.看牌,目的是溫習回顧一下java集合框架的應用。 import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; public class Po

java學習筆記MyBatis中當實體類中的屬性名和表中的欄位名不一樣時的解決方法

在使用MyBatis開發DAO層時,當實體類中的屬性名和表中的欄位名不一樣時,查詢出來的值為null,此時有3種解決方法 解決方法1                在Mapper.xml對映檔案中,寫SQL語句時起別名 解決