關於request的細節使用,解決中文亂碼問題

2021-08-18 17:31:48 字數 2063 閱讀 2822

關於防盜煉

referer

string ref=request.getheader("referer");

//判斷請求頭中的referer是否為空或者沒東西或者不來自163**,那麼就是盜鏈行為,直接重定向到原網頁

if(ref==null||"".equals(ref)||!ref.startswith(""));

response.sendredirect(request.getcontextpath()+"index.jsp");

獲取客戶機的資訊

getrequesturl方法返回客戶端發出請求完整url

getrequesturi方法返回請求行中的資源名部分

getquerystring 方法返回請求行中的引數部分

getremoteaddr方法返回發出請求的客戶機的ip位址

getmethod得到客戶機請求方式

getcontextpath 獲得當前web應用虛擬目錄名稱

遍歷jsp頁面的所以請求引數

enumerationenumeration=request.getparameternames();

while(enumeration.hasmoreelements)

[中文亂碼問題]

獲取請求引數 

//在jsp頁面上模擬響應頭,設定字元編碼為utf-8

亂碼問題:

利用request獲取的請求引數,是根據開啟jsp頁面的瀏覽器用的什麼編碼讀取,那麼

就用什麼編碼傳輸,模擬響應頭的話相當於固定設定瀏覽器的讀取編碼格式

但是在伺服器上,預設解析編碼的是用的iso8859-1,

這樣就會導致解析中文位元組出現亂碼。

//通過設定伺服器的解析編碼方式為utf-8,這樣就可以避免亂碼了

request.setcharacterencoding("utf-8");

(這只是適用在post請求,因為post請求的請求引數在實體內容當中;get請求不在實體內容當中,在url後面)

對於get請求方式,出現亂碼的話,只能手動解決。

假設前端獲取的 usename是亂碼 ,

username =new string (username.getbytes("iso8859-1"),"utf-8");

先把從伺服器上錯誤解析的亂碼username通過iso8859-1的方式重新解析回去;

在利用utf-8的編碼格式去重新解析它。這樣就可以達到手動解析,解決亂碼了。

response.getwriter().write("中文xx");

這種情況輸出會有亂碼的話,就需要設定

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

但是這種情況務必把①放在write內容前面!!!!!

以下這種使用outputstreamwrite輸出,設定放在前後都可以

response.getoutputstream().write("中文國歌".getbytes("utf-8"));

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

request的請求**

this.getservletcontext().getrequestdispatcher("/requesttest2").forward(request, response);

request.getrequestdispatcher("/requesttest2").forward(request, response);

request的請求包含

request.getrequestdispatcher("/requesttest2").include(request, response);

請求**的話,當前的servlet的輸出資訊是只能進入伺服器的緩衝區,但是一旦執行**

時,就會清除掉實體內容,請求頭資訊不會清除,但是這樣當前的servlet的資訊就輸出不了

;而使用請求包含的話就可以順帶輸出當前servlet的東西。

關於request物件的應用

string ip request.getremotehost 上面得到的ip並不是伺服器的ip,而是你本機的ip.string name request.getservername 這個servername並不是你工程的名字.這個其實是伺服器的ip.int port request.getserv...

Flask 關於Flask的request屬性

在進行flask開發中,前端需要傳送不同的請求及各種帶引數的方式,比如get方法在url後面帶引數和post在body帶引數,有時候又是post的表單提交方式,這個時候就需要從request提取引數。這篇文章是總結如何使用request。在flask的官方文件中是這樣介紹request的 對於 we...

關於layui中laydate的使用細節

本人近期用到laydate日曆控制項,將日曆單獨展示出來,並在特定的日期下做圓點標記,並且獲取選中的日期。最後找到的資料,希望會有所幫助。效果圖 console.log enddate 得結束的日期時間物件,開啟範圍選擇 range true 才會返回。物件成員同上。done function va...