Servlet學習(二)

一、請求的方式

1.地址欄輸入

2.超鏈接

3.Form表單

4.ajax,異步無刷新技術(shù)

5.請求轉(zhuǎn)發(fā)

6.重定向

二践宴、HttpServletRequest對象

主要作用:接受客戶端發(fā)送過來的請求信息

1.常用方法

getRequestURL():獲取來源URL

getQueryString():

getMethod():請求方式,get/post

2.請求亂碼解決

2.1 方案一

只對post請求有效

req.setCharacterEncoding("UTF-8");

2.2 方案二

一次只能處理一個參數(shù)

如果本身不亂碼,使用后會亂碼

無論get還是post都可以使用

new String(request.getParameter("參數(shù)名").getBytes("ISO-8859-1"),"UTF-8")

3.請求轉(zhuǎn)發(fā)

請求轉(zhuǎn)發(fā)辱士,是一種服務(wù)器的行為

當客戶端請求到達后坞淮,服務(wù)器進行轉(zhuǎn)發(fā)残炮, 此時會將請求對象進行保存

req.getRequestDispatcher("請求地址").forward(request,response)

4.request作為域?qū)ο?/h2>

設(shè)置作用域

req.setAttribute("user", "zhangsan");

移除作用域

req.removeAttribute("user");

三、HttpServletResponse對象

1.常用方法

getWriter(),獲取輸出的 字符流

getOutputStream(),獲取輸出的字節(jié)流

setContentType(),設(shè)置響應(yīng)類型和編碼

2.刷新和頁面自動跳轉(zhuǎn)

2.1 頁面跳轉(zhuǎn)

3秒后進行跳轉(zhuǎn)

response.setHeader("refresh","3;URL=ok.html");

2.2 自動刷新

每隔2秒自動刷新

resp.setHeader("refresh","2");

3.響應(yīng)數(shù)據(jù)

接受到客戶端請求后,可以通過HttpServletResponse對象直接進行響應(yīng)

getWriter()獲取字符流

PrintWriter writer = resp.getWriter();

writer.write("<h4>Hello Servlet</h4>");

writer.close();

getOutputStream()獲取字節(jié)流,可以響應(yīng)一切數(shù)據(jù)

OutputStream outputStream = resp.getOutputStream();

outputStream.write("<h4>Hello Servlet</h4>".getBytes());

4.解決亂碼

4.1 指定客戶端和服務(wù)器使用的編碼一致

設(shè)置服務(wù)器的編碼格式

resp.setCharacterEncoding("UTF-8")

設(shè)置客戶端的編碼格式

resp.setHeader("content-type", "text/html;charset=UTF-8");

4.2 使用單句話代替

用這句話,就可以替代,完成編碼格式統(tǒng)一和,響應(yīng)類型識別

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

5.響應(yīng)圖片

5.1? 獲取路徑

獲得項目在服務(wù)器中的真實路徑

String path = req.getServletContext().getRealPath("/")

獲得圖片的存放路徑

String filepath = path + "WEB-INF/圖片名稱.jpeg"

5.2 獲取對象

獲取該對象

File file = new File(filepath)

5.3 判斷對象

判斷該對象是否存在,并且是否為一個文件

if(file.exists() && file.isFile())

5.4 寫入關(guān)閉

得到輸出流

ServletOutputStream out = resp.getOutputStream();

得到輸入流

InputStream in = new FileInputStream(filepath);

寫出

byte[] arr = byte[1024];

int len =0;

while((len=in.read(arr))

!= -1){

? ? out.write(arr,0,len);

}

out.flush();

in.close();

out.close();

5.5 設(shè)置響應(yīng)類型

resp.setContentType("img/jpeg");


6.請求轉(zhuǎn)發(fā)和重定向的區(qū)別

6.1 請求轉(zhuǎn)發(fā)

1. 只有一次請求,request作用域中的數(shù)據(jù)可以共享

2. 瀏覽器地址欄不發(fā)生改變

3. 服務(wù)器行為

4. 跳轉(zhuǎn)的絕對地址可以定位到站點名后

6.2 重定向

1. 有兩次請求,request作用域的屬于不可以共享

2. 瀏覽器地址方式改變

3. 客戶端行為

4. 跳轉(zhuǎn)地址可以定位到http://后

5. 重定向可以定位到任意路徑

6.3 請求轉(zhuǎn)發(fā)和重定向的"/"含義

請求轉(zhuǎn)發(fā)(服務(wù)端跳轉(zhuǎn)):"http://localhost:8080/站點名"

重定向(客戶端跳轉(zhuǎn)):"http://localhost:8080/"

6.4 客戶端跳轉(zhuǎn)

1. 表單提交

2. 超鏈接提交

3. 地址欄輸入

4. 重定向?

6.5 服務(wù)端跳轉(zhuǎn)

1. 地址欄直接輸入

2. 請求轉(zhuǎn)發(fā)

7.路徑問題

7.1相對路徑

路徑的前面不要加任何符號,一般情況下代表的是:"http://localhost:8080/站點名"

7.2絕對路徑

以http://開頭的完整的絕對路徑,可以跨域,可以訪問任何資源

以"/"開頭,訪問當前項目下的資源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末揍愁,一起剝皮案震驚了整個濱河市呐萨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌莽囤,老刑警劉巖谬擦,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異朽缎,居然都是意外死亡惨远,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門话肖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來北秽,“玉大人,你說我怎么就攤上這事最筒∠鄱” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵是钥,是天一觀的道長掠归。 經(jīng)常有香客問我,道長悄泥,這世上最難降的妖魔是什么虏冻? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮弹囚,結(jié)果婚禮上厨相,老公的妹妹穿的比我還像新娘。我一直安慰自己鸥鹉,他們只是感情好蛮穿,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著毁渗,像睡著了一般践磅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上灸异,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天府适,我揣著相機與錄音,去河邊找鬼肺樟。 笑死檐春,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的么伯。 我是一名探鬼主播疟暖,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了俐巴?” 一聲冷哼從身側(cè)響起朋贬,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎窜骄,沒想到半個月后锦募,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡邻遏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年糠亩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片准验。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡赎线,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出糊饱,到底是詐尸還是另有隱情垂寥,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布另锋,位于F島的核電站滞项,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏夭坪。R本人自食惡果不足惜文判,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望室梅。 院中可真熱鬧戏仓,春花似錦、人聲如沸亡鼠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽间涵。三九已至仁热,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浑厚,已是汗流浹背股耽。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留钳幅,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓炎滞,卻偏偏與公主長得像敢艰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子册赛,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容