1. 程式人生 > >Java Web 學習筆記之二:Java HttpURLConnection保持會話的方法

Java Web 學習筆記之二:Java HttpURLConnection保持會話的方法

Java Web開發中,會話保持是伺服器識別客戶端(一般指瀏覽器)的方式。對此,各大瀏覽器都是支援會話保持的。然而在開發者通過Java API HttpURLConnection 開發網路請求工具的時候,HttpURLConnection是不支援會話的,需要自己動手獲取伺服器返回的會話資訊。

這裡以Java Web後臺服務的會話為例,開發者需要編寫程式,通過獲取伺服器返回的cookie值,擷取其中的session ID。獲取session ID之後,提交請求時將其加入RequestProperty,即可保持與伺服器的當前會話。

通過伺服器返回的資訊獲取會話例程如下:

/**
	 * @author johnson
	 * @method getSessionID
	 * @description 執行從cookie獲取會話sessionID的方法,用於保持與伺服器的會話
	 * @param actionURL 遠端伺服器的URL
	 * */
public String getSessionID(String actionURL){
	String sessionID;
	try {
		URL url = new URL(actionURL);
		HttpURLConnection connection = (HttpURLConnection)url.openConnection();
		String cookieValue = connection.getHeaderField("set-cookie");
		if(cookieValue != null){
			sessionID = cookieValue.substring(0, cookieValue.indexOf(";"));
		}else{
			sessionID = "";
		}
	} catch (IOException e) {
		e.printStackTrace();
		sessionID = "";
	}
	return sessionID;
}

其中的session格式為:  JSESSIONID=XXXXXXXXX


獲取session ID之後需要在每次傳送請求的同時設定請求引數才能保持會話,例程如下:

URL url = new URL("http://adugiudadiugb");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
if(!this.sessionID.equals("")){//如果sessionID存在,即存在會話
	connection.setRequestProperty("cookie", this.sessionID);
}

只要session ID 不改變,相應的會話也就不會改變


小結:利用Java HttpURLConnection進行請求傳送時,如果需要保持同伺服器的會話,需要先通過連線伺服器獲取session ID ,之後傳送請求加入session ID到請求引數中就可以了。

注意:此時的伺服器後臺需要支援會話,即Java Web後臺實現了session


相關推薦

Java Web 學習筆記Java HttpURLConnection保持會話方法

在Java Web開發中,會話保持是伺服器識別客戶端(一般指瀏覽器)的方式。對此,各大瀏覽器都是支援會話保持的。然而在開發者通過Java API HttpURLConnection 開發網路請求工具的

Java Web 學習筆記嵌入式web伺服器Jetty的基本使用

Jetty 是一個開源的servlet容器,具有易用性,可擴充套件性,易嵌入性等特點。通過少量的程式碼,開發者就可以在程式中以嵌入的方式執行一個web伺服器。 下面介紹一些Jetty使用的方式:

Java Web 學習筆記JBoss RestEasy處理跨域OPTIONS請求方式

跨域請求問題 前提 前後端分離的B/S架構系統 前後端獨立開發,後端採用JBoss restEasy 框架搭建restful服務 後端程式碼開發完成並且部署在某一臺測試機上 前端開發過程中,需

Java Web 學習筆記十一RestEasy統一處理異常

JBoss RestEasy框架配置異常統一處理 前提 利用JBoss restEasy框架搭建的restful java web後臺應用 希望通過統一的方式對restful介面丟擲的異常進行

Java Web 學習筆記十四RestEasy新增Filter過濾器預處理請求

RestEasy新增Filter過濾器預處理請求 前提 定義filter過濾器,預處理http請求 在resteasy框架下配置filter 實現功能 攔截http請求,獲取請求頭中的

Java Web學習筆記

Servlet的註冊與執行: Servlet程式必須通過Servlet容器來啟動執行,並且儲存目錄有特殊要求,需要儲存在< WEB應用程式目錄 >\WEB-INF\classes\目錄中。 Servlet程式必須在WEB應用程式的web.xml檔案中進行註冊和對映其訪問路徑

Java Web 學習筆記

一、JavaScript簡介      JavaScript 是一種輕量級的程式語言。      JavaScript 是可插入 HTML 頁面的程式設計程式碼。 二、JavaScript 使用      

Java Web學習筆記JSP基礎

Tomcat是Servlet容器,WebLogic是J2EE容器。最主要的是Tomcat不能做EJB。 JSP即Java Server Pages,通過在網頁中嵌入Java程式碼實現頁面的動態互動功能,在J2EE框架中是表示層的核心技術。 JSP頁面由各種元素組成,實現動

Linux運維學習筆記常用命令2

linux 運維 筆記71、passwd:修改用戶密碼語法passwd [參數]username選項-k --keep-tokens :保留即將過期的用戶在期滿後仍能使用-l --lock :鎖定用戶無權更改其密碼,只能root才能操作-u --unlock :解除鎖定-S --status :查看用戶狀

Java Web 學習筆記 第一章,java語言簡介

com 分布式 ron java瀏覽器 family javadoc 全球 intellij jvm 第一章 java語言簡介 一、什麽是java? Java 編程語言:簡單、完全面向對象、分布式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和動態的編程語言。

《逐夢旅程Windows遊戲編程從零開始》學習筆記GDI框架

register 開發 操作 程序 turn use 繪制 cal 完整 1 //===========================================【程序說明】=================================== 2 //

Memcached學習筆記入門使用

使用 現在伺服器已經正常運行了,下面我們就來寫java的客戶端連線程式。 將java_memcached-release.zip解壓,把java_memcached-release.jar檔案複製到java專案的lib目錄下, 然後我們來編寫程式碼,比如我提供的一個應用類如下: &n

hive程式設計指南學習筆記hive資料庫及其中的表查詢

show databases;                                      /*

SpringSecurity學習筆記SpringSecurity結構及基本配置

Spring Security3.2分為11個模組,如下表所示: Spring Security3.2引入了新的Java配置方案,完全不在需要通過XML來配置安全性功能。如下,展現了Spring Security最簡單的Java配置: @EnableWebSecurity

DirectX 9 UI設計學習筆記第2章Introducing DirectX+第3章Introducing Direct3D

       此文由哈利_蜘蛛俠原創,轉載請註明出處!有問題歡迎聯絡本人! 上一期的地址:        別看這一期似乎要講很多內容,其實大部分是一帶而過的。其實我的重點在於弄了一個框架程式;詳情見本期最後。 第2章 Introducing DirectX ===

spark學習筆記寬依賴和窄依賴

1.如果父RDD裡的一個partition只去向一個子RDD裡的partition為窄依賴,否則為寬依賴(只要是shuffle操作)。 2.spark根據運算元判斷寬窄依賴:      窄依賴:map

博科SAN交換機學習筆記配置檔案備份與韌體升級 作者 LiaoJL | 轉載時請務必以超連結形式標明文章原文連結和作者資訊及本版權宣告。 原文連結http://www.liaojl.co

配置檔案恢復 當需要備份中恢復交換機配置時,可以通過configdownload命令將博科交換機的配置從遠端伺服器恢復到交換機。博科交換機支援將舊版本的配置檔案匯入新版本韌體的交換機,例如將v6.2.0的配置檔案匯入v6.3.0韌體版本的交換機,或者將v6.4.1 配置檔案匯入 v7.0.0 版本的交換機。

Redis學習筆記Redis的資料儲存結構

Redis與Mysql等關係型資料庫的第一點區別就是Redis的資料儲存結構,Mysql等關係型資料庫以表的形式存放資料,而Redis提供Key-Value形式的儲存格式。與Mysql等資料庫的第二

吳恩達機器學習 學習筆記 代價函式和梯度下降演算法

二、 2-1 Model Representation 我們學習的第一個演算法是線性迴歸,接下來會講什麼樣的模型更重要,監督學習的過程是什麼樣子。 首先舉一個需要做預測的例子:住房價格上漲,預測房價,我們擁有某一城市的住房價格資料。基於這些資料,繪製圖形。 在已有房價資

Vue.js 學習筆記資料驅動開發

在 Vue.js 框架中,與 HTML 頁面元素的互動方式沒有像原生 JavaScript 介面那麼直接,它是通過先在 HTML 元素標籤中嵌入一系列類似於普通標籤屬性的 Vue 指令屬性來繫結資料,然後再通過在 JavaScript 程式碼中修改這些被繫結的資料來修改頁面元素的顯示方式與內容。在程式設計方法