HttpServletRequest 常用方法講解

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

Web服務器收到一個http請求,會針對每個請求創建一個HttpServletRequest和HttpServletResponse對象,

從客戶端取數據找HttpServletRequest,向客戶端發送數據找HttpServletResponse。

?

HTTP?協議是基于請求-響應的協議,客戶端請求一個文件,服務器對該請求進行響應。

HTTP?使用?TCP?協議,默認使用?80?端口。最初的?HTTP?協議版本是?HTTP/0.9,后被?HTTP/1.0?替代。目前使用的版本是?HTTP/1.1,

在?HTTP?協議中,總是由主動建立連接、發送?HTTP?請求的客戶端來初始化一個事務。

服務器不負責連接客戶端,或創建一個到客戶端的回調連接(callback connection)。

?

?

HttpServletRequest?

  公共接口類HttpServletRequest繼承自ServletRequest.客戶端瀏覽器發出的請求被封裝成為一個HttpServletRequest對象。

所有的信息包括請求的地址,請求的參數,提交的數據,上傳的文件客戶端的IP,甚至客戶端操作系統都包含在其內。

?

一個 HTTP?請求包含以下三部分:

a.請求地址(URL)

b.請求頭(Request headers)

c.實體數據(Entity body)

?

  每個?HTTP?請求都會有一個請求方法,HTTP1.1?中支持的方法包括,GET、POST、HEAD、OPTIONS、PUT、DELETE?和?TRACE。

互聯網應用中最常用的是?GET?和?POST。

  URI?指明了請求資源的地址,通常是從網站根目錄開始計算的一個相對路徑,因此它總是以斜線 “/”開頭的。

URL?實際上是?URI?的一種類型,請求頭(header)中包含了一些關于客戶端環境和請求實體(entity)的有用的信息。

例如,客戶端瀏覽器所使用的語言,請求實體信息的長度等。每個請求頭使用?CRLF(回車換行符,“\r\n”)分隔。

注意請求頭的格式:請求頭名+英文空格+請求頭值。

?

常用方法

1.獲得客戶機信息

getRequestURL方法返回客戶端發出請求時的完整URL。

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

getQueryString?方法返回請求行中的參數部分。

getRemoteAddr方法返回發出請求的客戶機的IP地址

getRemoteHost方法返回發出請求的客戶機的完整主機名

getRemotePort方法返回客戶機所使用的網絡端口號

getLocalAddr方法返回WEB服務器的IP地址。

getLocalName方法返回WEB服務器的主機名

getMethod得到客戶機請求方式

getServerPath()獲取請求的文件的路徑

?

?2.獲得客戶機請求頭

getHeader(string name)方法?
getHeaders(String name)方法?
getHeaderNames方法?

?

?3.?獲得客戶機請求參數(客戶端提交的數據)
getParameter(name)方法?獲取請求中的參數,該參數是由name指定的
getParameterValues(String name)方法?獲取指定名稱參數的所有值數組。

它適用于一個參數名對應多個值的情況。如頁面表單中的復選框,多選列表提交的值。

?

getParameterNames方法?返回一個包含請求消息中的所有參數名的Enumeration對象。

通過遍歷這個Enumeration對象,就可以獲取請求消息中所有的參數名。

?

getCharacterEncoding()?返回請求的字符編碼方式

getAttributeNames()返回當前請求的所有屬性的名字集合賦值:setAttribute()

getAttribute(String name)?返回name指定的屬性值

getsession()返回和客戶端相關的session,如果沒有給客戶端分配session,則返回null

getParameterMap():返回一個保存了請求消息中的所有參數名和值的Map對象。

Map對象的key是字符串類型的參數名,value是這個參數所對應的Object類型的值數組。

?

RequestDispatcher.forward?方法的請求轉發過程結束后,瀏覽器地址欄保持初始的URL地址不變。

方法在服務器端內部將請求轉發給另外一個資源,瀏覽器只知道發出了請求并得到了響應結果,并不知道在服務器程序內部發生了轉發行為。

?

request.setCharacterEncoding("utf-8");

getReader()?獲取請求體的數據流。

getInputStream()?獲取請求的輸入流中的數據。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451834.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451834.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451834.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

object中的toString方法

任何一個類都是從Object類繼承下來的,因此在任何一個類里面都可以重寫這個toString()方法。toString()方法的作用是當一個引用對象和字符串作連接的時候,或者是直接打印這個引用對象的時侯,這個引用對象都會自動調用toString()方法&#xff0…

東網科技榮膺2016中國大數據最佳實踐獎

11月24日,由中國軟件網主辦的數據趴活動圓滿落幕,活動現場隆重揭曉了大數據領域的重磅榜單,旨在對大數據領域中表現突出的企業、人物進行表彰。東網科技有限公司(以下簡稱“東網科技”)憑借大數據運營支撐平臺及在環保、煙草、教育、政府等行…

Apache Subversion 1.7.2發布,開源版本控制工具

SVN(Subversion)已經發布了1.7的第二個維護版本。 Apache Subversion是一個開放源碼、多用戶的版本控制系統,支持非 ASCII 文本和二進制數據,支持可在本地訪問或通過網絡訪問的數據庫和文件系統存儲庫。相對于傳統的RCS、CVS&…

react生命周期

1、初始化getDefaultProps()設置默認的props,也可以用dufaultProps設置組件的默認屬性。 getInitialState()在使用es6的class語法時是沒有這個鉤子函數的,可以直接在constructor中定義this.state。此時可以訪問this.propscomponentWillMount()在組件初始…

14--用兩個棧實現隊列

文章目錄1.題目詳情2.解題代碼1.題目詳情 用兩個棧實現一個隊列。隊列的聲明如下,請實現它的兩個函數 appendTail 和 deleteHead ,分別完成在隊列尾部插入整數和在隊列頭部刪除整數的功能。(若隊列中沒有元素,deleteHead 操作返回 -1 ) 示例…

淺談爬蟲 《一》 ===python

淺談爬蟲 《一》 python ‘’正文之前先啰嗦一下,準確來說,在下還只是一個剛入門IT世界的菜鳥,工作近兩年了,之前做前端的時候就想寫博客來著,現在都轉做python了,如果還不開始寫點什么,估計時間…

Servlet全面講解

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。Servlet(Server Applet),全稱Java Servlet。是用Java編寫的服務器端程序。Servlet 是在服務器上運行的…

你的代碼可以是優雅的,但是還有更重要的

引用軟件設計有兩種方法:一種是盡可能地簡單,這種設計明顯沒有什么缺陷;另一種是盡可能地復雜,這種設計沒有明顯的缺陷。 ——C.A.R. Hoare,1980年圖靈獎講座在開發過程中,我的口頭禪是: Your c…

15--0~n-1中缺失的數字

文章目錄1. 問題描述2. 解題代碼1. 問題描述 一個長度為n-1的遞增排序數組中的所有數字都是唯一的,并且每個數字都在范圍0~n-1之內。在范圍0~n-1內的n個數字中有且只有一個數字不在該數組中,請找出這個數字。 示例 1: 輸入: [0,…

如何在README中使用圖片

將圖片放在倉庫里面,在文件里鏈接它,最后 push 到 github 上。 github 圖片鏈接格式: (http://github.com/yourname/your-repository/raw/master/images-folder/xxx.png) 要自己設定的:yourname, your-repository, your-folder…

Unity中傳入任意數,轉換成分,秒,并進行倒計時換算..(兩種方式)

第一種方式是利用Unity中的協程,代碼如下: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class DemoTest : MonoBehaviour {public Text text;//測試用的數字public int MyTime 60;void Start (){//開啟協程…

內核編程小結(引用)

https://www.cnblogs.com/fanling999/p/4509785.html轉載于:https://www.cnblogs.com/endenvor/p/9006507.html

JIRA 5.0.1 發布

Atlassian公司發布了JIRA 5.0.1版本,該版本相比JIRA 5.0有更多改進功能。1. 管理界面的改進 將更多頁面管理轉為對話框形式。例如點擊頁面右上方的“Add New”就可實現新增issue types、sub-tasks、field configurations 、screens。2. 性能改進 解決了基于Lucene 3…

java開啟新線程的三種方法

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 方式1:繼承Thread類 步驟: 1):定義一個類A繼承于Java.lang.Thread類. 2):在A類中覆蓋Thread類中的run方法. 3):我們在ru…

16 --刪除排序數組中的重復項

文章目錄1.問題描述2.代碼實現1.問題描述 給定一個排序數組,你需要在 原地 刪除重復出現的元素,使得每個元素只出現一次,返回移除后數組的新長度。 不要使用額外的數組空間,你必須在 原地 修改輸入數組 并在使用 O(1) 額外空間的…

jquery評分效果Rating精華版

參考:https://blog.csdn.net/bluceyoung/article/details/8573629轉載于:https://www.cnblogs.com/yingyigongzi/p/9400489.html

NVIDIA助力SiemensPLMSoftware“工業4.0創新實驗室”,攜手推進中國制造創新之路

今日,NVIDIA宣布為SiemensPLMSoftware在北京建成的“工業4.0創新實驗室”提供了支持。該實驗室配備SiemensPLMSoftware全面的產品生命周期管理解決方案,結合第三方硬件,向中國制造企業展示“數字化企業”的全景圖。實驗室的工作站全部配備NVI…

java中的native方法

一. 什么是Native Method簡單地講,一個Native Method就是一個java調用非java代碼的接口。一個Native Method是這樣一個java的方法:該方法的實現由非java語言實現,比如C。這個特征并非java所特有,很多其它的編程語言都有這一機制&a…

17--合并兩個有序數組

文章目錄1.問題描述2.代碼實現1.問題描述 給你兩個有序整數數組 nums1 和 nums2,請你將 nums2 合并到 nums1 中,使 nums1 成為一個有序數組。 說明: 初始化 nums1 和 nums2 的元素數量分別為 m 和 n 。 你可以假設 nums1 有足夠的空間(空間…

Maven 添加本地 jar 包、添加依賴 jar 文件到本地 Maven 倉庫、引用本地 jar

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1. 把要用的jar放在固定位置: 2.打開CMD,進入到libs文件夾: 3.運行如下命令: mvn install:install-…