我們在建立 servlet 時會覆蓋 service() 方法,或 doget() / dopost(), 這些方法都有兩個引數,乙個為代表請求的 request 和代表響應 response 。service 方法中的 request 的型別是 servletrequest,而 doget/dopost 方法的 request 的型別是 httpservletrequest。
獲得客戶端的請求方式:string getmethod()
獲得請求的資源:
string getrequesturi()
stringbuffer getrequesturl()
string getcontextpath()
//web應用的名稱
string getquerystring()
//get提交url位址後的引數字串 username=zhangsan&password=123
這裡區分一下 uri 和 url,uri 指的是所有資源位址(磁碟位址,網路位址,相對位址等所有位址),url指的是網路位址。
//這個最常用
enumeration getheadernames()
//獲得所有頭名稱 以列舉返回
enumeration getheaders
(string name)
intgetintheader
(string name)
long
getdateheader
(string name)
string getparameter
(string name)
//獲得單個表單的值
string[
]getparametervalues
(string name)
//獲得多個表單的值
enumeration getparameternames()
//獲得所有引數的的列舉
map]>
getparametermap()
//獲得所有引數,封裝到乙個map中
解決post提交方式的亂碼: **request.setcharacterencoding(「utf-8」); **
解決get提交的方式的亂碼: **parameter = new string(parameter.getbytes(「iso8859-1」),「utf-8」); **
request是乙個域物件
setattribute
(string name, object o)
getattribute
(string name)
removeattribute
(string name)
注意:request域的作用範圍:一次請求中。
request完成請求**
//獲得請求**器----path是**的位址
requestdispatcher getrequestdispatcher
(string path)
//通過**器物件**
requestdispathcer.
forward
(servletrequest request, servletresponse response)
**與重定向的區別?
1、重定向兩次請求,**一次請求。
2、重定向位址列的位址變化,**位址不變。
3、重新定向可以訪問外部****只能訪問內部資源。
4、**的效能要優於重定向。
request 的生命週期:
建立:訪問時建立request。
銷毀:響應結束reques銷毀。
域的作用範圍:一次請求中。
因此在**過程中 request 可以作為域物件使用,因為**是一次請求!!!!
客戶端位址與伺服器端位址的寫法?
IT是個什麼玩意
的疑問掐到了關鍵點。但是想解開這個疑問,需要明析it在企業的作用。關於it,不宜分成國企 私企 外企。因為現在國企的競爭意識也挺強。雖然有國家特權資源在手,但也不是守著特權不思進取,而且在人才儲備上非常充裕,資金上也不差,市場意識也不錯,就是既有特權又因為特權而生的種種限制,所以手腳束縛。而外企,雖...
cache是個什麼玩意
cachearm920t有16k的資料cache和16k的指令cache,這兩個cache是基本相同的,資料cache多了一些寫回記憶體的機制,後面我們以資料cache為例來介紹cache的基本原理。我們已經知道,cache中的儲存單位是cache line,arm920t的乙個cache line...
raspberry是個什麼玩意
今天wilson同學取回乙個書本大小的包裹,說買回來一台小電腦,只有信用卡大小!這是第一次聽說和看見raspberry pi。聽說這玩意可以裝linux系統 聽說這玩意是乙個功能齊全的電腦 聽說這玩意可移動網際網路創業者執著地追逐著自己的 硬體夢 想要通過硬體創新改變移動網際網路。務器用 聽說這玩意...