request對象與response對象

一.request對象

1.通過request對象可以獲得客戶端輸入的信息。request對象包含了從客戶端傳來的請求信息。

請求的參數是一個請求的組成部分,它們被作為字符串從客戶端傳送到JSP/Servlet容器中,并被用于初始化request對象。

?

2.request對象是javax.Servlet.http.HttpServletRequest接口,它主要可用的方法如下:

1)getCookies()

該方法返回客戶端的Cookie對象數組,這些Cookie對象是javax.servlet.http.Cookie的實例對象。

?

2)getHeader(String name)

該方法可以獲取http協議所定義的特定的http頭文件的信息。name可以使HTTP文件頭的名字,例如User-Agent。

?

3)getAttribute(String name)

返回綁定在name屬性上的值,如果沒有,則返回null。

?

4)getAttributeNames()

返回和當前的request對象綁定在一起的所有的屬性的名字。返回值是一個枚舉對象。

?

5)getHeaderNames()

使用該方法返回一個枚舉對象,包含當前request對象中包含著的每一個http的頭文件的名字。

?

6)getMethod()

該方法可以返回當前客戶端向服務器端傳輸協議的方式,可能的有POST,GET,PUT等等。

?

7)getParameter(String name)

可以獲得客戶端傳輸給服務器端得信息。

?

8)getParameterNames()

可以獲取客戶端傳輸給服務器端所有的參數名字。返回值是一個枚舉類型。

?

9)getParameterValues(String name)

與getParameter(String name)的不同在于,使用getParameter(String name)只返回name當前的值,而之前的值都被忽略了,而getParameterValue(String name)則會返回所有的值。

?

10)getQueryString()

使用該方法可以獲得請求字符串,該字符串由客戶端以GET方式傳向服務器端。

?

11)getRequestURL()

getRequestURL()方法可以獲得和當前request對象相應的URL地址,有人就說客戶端通過瀏覽器所請求的URL地址。

?

12)getServletPath()

該方法可以獲得客戶端所請求的servlet的地址。

?

13)setAttribute(String name,Java.lang.Object obj)

該方法可以將某個參數和目前的request對象綁定起來。

?

14)getServerName()

該方法返回服務器的名稱。

?

15)getServerPort()

用于獲取服務器提供的HTTP服務的端口。

?

16)getRemoteAddr()

該方法用于獲得發送HTTP請求的客戶端地址。利用這個方法,我們可以屏蔽來自某些IP地址的訪問。

?

17)getRemoteHost()

該方法可以獲取當前HTTP連接的客戶端計算機名稱,返回的是IP地址。

?

18)getProtocol()

可以獲取客戶端向服務器端發送信息所遵循的協議名稱。

例如:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body bgcolor="white">
<h1>Request Information</h1>
<font size="4">
JSP Request Method: <%out.println(request.getMethod()); %>
<br>
Request URI: <%out.println(request.getRequestURI()); %>
<br>
Request Protocol: <%out.println(request. getProtocol()); %>
<br>
Servlet path: <%out.println(request.getServletPath ()); %>
<br>
Path info: <%out.println(request.getPathInfo()); %>
<br>
Path translated: <%out.println(request.getPathTranslated()); %>
<br>
Query string: <%out.println(request.getQueryString()); %>
<br>
Content length: <%out.println(request.getContentLength()); %>
<br>
Content type: <%out.println(request.getContentType()); %>
<br>
Server name: <%out.println(request.getServerName()); %>
<br>
Server port: <%out.println(request.getServerPort()); %>
<br>
Remote user: <%out.println(request.getRemoteUser()); %>
<br>
Remote address: <%out.println(request.getRemoteAddr()); %>
<br>
Remote host: <%out.println(request.getRemoteHost()); %>
<br>
Authorization scheme: <%out.println(request.getAuthType()); %>
<hr>
The browser you are using is: <%out.println(request.getHeader("User-Agent")); %>
<hr>
</font>
</body>
</html>

?

二.response對象

1.response對象的作用是處理HTTP連接信息,如cookie,HTTP文件頭信息等,它有很多功能是和request對象相匹配的。

?

2.response對象的常用方法:

1)addCookie(Cookie cookie)

當用于訪問某個站點時,我們可以用此方法添加一個cookie對象,并將它發送到客戶端,保存到客戶端操作系統的某個特定目錄下,用來保存客戶的特定信息。當用戶再次訪問瀏覽器時,瀏覽器會自動將這個Cookie對象發送會服務器端,調用request對象的getCookie()方法可以獲得所有存在的Cookie對象,getCookie返回的是一個數組。Cookie對于不同的客戶來說都是專有的。

?

2)addHeader(String name,String value)

addHeader是添加HTTP文件頭信息,這些信息將會傳到客戶端,發送特定的HTTP文件頭信息,可以控制客戶端和服務器端的連接。

?

3)containsHeader(String name)

該方法用于判斷指定名字的HTTP文件頭是否存在,返回值是布爾類型。

?

4)sendError(int sc)

該方法用于向客戶端發送錯誤消息,例如505:服務器內部消息。

?

5)sendRedirect(String url)

和<jsp:forward>動作指令的功能一模一樣,但是向目標程序傳遞HTTP參數不是很方便,在使用此方法之前,必須保證JSP程序沒有任何可見的輸出被送往客戶端。

?

6)setHeader()

是一個通用的標頭設定方法,您可以用它來設定任何「名稱/值」的標頭.

7)setIntHeader()

專門用來設定整數值標頭的版本.


8)setDateHeader()

是setHeader()的Date設定版本,第二個參數是設定Date的Long數值,0表示GMT 1970/1/1 00:00。

?

9)setStatus()

是用來設定回應的狀態碼,例如404 Not Found,HttpServletResponse類中提供了一些助憶常數設定,例如SC_NOT_FOUND就是表示404狀態碼(可以在Servlet API文件中查詢相關的助憶常數)

文章來源:http://www.cnblogs.com/karying/archive/2009/10/21/2015408.html

轉載于:https://www.cnblogs.com/asher/archive/2012/12/17/2821211.html

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

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

相關文章

騰訊,字節,阿里,小米,京東大廠Offer拿到手軟!講的明明白白!

緣起 隨著Android開發行業逐漸飽和&#xff0c;對Android開發者的面試要求也越來越高&#xff0c;是否掌握底層源碼&#xff0c;是面試官衡量一名Android開發者的重要依據。有沒有讀過源碼也可以很大程度上判斷你這個人的學習能力和思維方式。無論你開發經驗幾年&#xff0c;面…

HTML div 滾動條樣式設計

::-webkit-scrollbar-track-piece{ background-color:#fff;/*滾動條的背景顏色*/ -webkit-border-radius:0;/*滾動條的圓角寬度*/ } ::-webkit-scrollbar{ width:8px;/*滾動條的寬度*/ height:8px;/*滾動條的高度*/ } ::-webkit-scrollbar-thumb:vertical{/*垂直滾動條的樣式*/…

膜拜大佬!5年經驗Android程序員面試27天,高級面試題+解析

前言 網上關于啟動優化的文章多不勝數&#xff0c;內容千篇一律&#xff0c;大都是列舉一些耗時操作&#xff0c;采用異步加載、懶加載等。 而在面試過程中&#xff0c;關于啟動優化的問題&#xff0c;如果只是很表面地回答耗時操作應該放在子線程&#xff0c;顯然太過于普通…

膜拜大佬!不同層級的Android開發者的不同行為,社招面試心得

都說Android最近行情不好&#xff0c;很多人都遇到瓶頸或放棄或轉行。其實這種情況17年18年也是如此&#xff0c;相對比之下&#xff0c;個人認為今年比去年好多了&#xff0c;Android接下來將會走向復蘇的春天。 自從Google開始推出AMP項目已經有一年了。除此之外&#xff0c;…

zookeeper的四種類型的節點

znode創建類型(CreateMode),有以下四種&#xff1a; PERSISTENT 持久化節點PERSISTENT_SEQUENTIAL 順序自動編號持久化節點&#xff0c;這種節點會根據當前已存在的節點數自動加 1EPHEMERAL 臨時節點&#xff0c; 客戶端session超時這類節點…

膜拜大牛!Android開發最佳實踐手冊全網獨一份,終獲offer

前言 首先介紹一下自己&#xff0c;計算機水本&#xff0c;考研與我無緣。之前在帝都某公司算法部實習&#xff0c;公司算大公司吧&#xff0c;然而個人愛好偏開發&#xff0c;大二的時候寫個一個app&#xff0c;主要是用各種框架。 學習路徑&#xff1a;如何循序漸進、階段性…

英語每日一句

從今天開始學英語了&#xff1a;還蠻重要的。 It s not what I ask for.這不是我要的那樣。 你能寫出&#xff0c;你第一時間想到的一句英語嗎&#xff1f; 轉載于:https://www.cnblogs.com/igouz/archive/2008/11/28/1343014.html

膜拜大牛!HTTPS面試常問全解析,吊打面試官系列!

寫在前面 1月初失業&#xff0c;找了近2個多月的工作了&#xff0c;還沒找到心儀的工作&#xff0c;感覺心好慌&#xff0c;不知道該怎么辦了&#xff1f;找不到工作的時候壓力很大&#xff0c;有人說自信會很受打擊&#xff0c;還有人說會很絕望&#xff0c;是人生的低谷………

vSphere HA 原理與配置

內容預覽&#xff1a; 1. vSphere HA 概述 2. vSphere HA 提供的保護級別 3. vSphere HA運行原理 4. vSphere HA 故障支持場景 5. vSphere HA接入控制策略 6. 如何選擇vSphere HA 的接入控制策略 7. 配置vSphere HA的基礎條件 8. 虛擬機組件保護 9. 開啟vSphere HA功能 1. v…

自學Android!Android高級工程師面試題-字節跳動,附答案

前言 大廠面試一直都是程序員圈內摸魚時間津津樂道的話題&#xff0c;進大廠想必也是無數程序員的夢想。 關于“原理”的問題&#xff0c;幾乎是現如今Android開發崗必問的問題&#xff0c;尤其在大廠面試中更為突出。有過大廠面試經驗的小伙伴應該知道&#xff1a;大廠的面試…

WEB可以調節的框架頁

<html> <head><meta HTTP-EQUIV"Content-Type" CONTENT"text/html; charsetgb2312"><title>主框架[www.tecsoon.com]</title></head><frameset cols"30%,*"> <frame name"dir" target&…

被面試官問的Android問題難倒了,成功入職字節跳動

感悟 這個世界有一個“二八原則”在好多地方都發揮著作用&#xff0c;在Android開發上我認為也一樣有用。做一個Android開發&#xff0c;你也許只會用到Android開發知識中的20%&#xff0c;有80%其實你學了也不一定會用。 而面試官也一樣&#xff0c;他也可能只掌握了20%的知…

PANEL中顯示窗體

var frm: TForm2;//定義窗口類begin PageControl1.activepage:tabsheet1; if Panel1.ControlCount 0 then begin frm : Tform2.Create(self); frm.Parent : Panel1; frm.BorderStyle : bsnone; frm.WindowState : wsmaximized; if skindata1.active…

被面試官問的Android問題難倒了,系列篇

本篇將由 環境搭建、實現原理、編程開發、插件開發、編譯運行、性能穩定、發展未來 等七個方面&#xff0c;對當前的 React Native 和 Flutter 進行全面的分析對比&#xff0c;希望能給你更有價值的參考。 前言 移動端跨平臺在經歷數年沉浮之后&#xff0c;如今還能在舞臺聚光…

使用screen管理后臺程序

我們常需要SSH 或者telent 遠程登錄到Linux 服務器&#xff0c;經常運行一些需要很長時間才能完成的任務&#xff0c;在此期間不能關掉窗口或者斷開連接&#xff0c;否則這個任務就會被殺掉&#xff0c;一切半途而廢了。這時&#xff0c;我們可以用screen命令解決這個問題。 Sc…

被面試官問的Android問題難倒了,面試必會

開頭 1、一定要把基本的數據結構&#xff0c;經典的算法&#xff0c;Unix編程&#xff0c;程序編譯鏈接及計算機原理等基礎知識扎牢&#xff0c;這些會長遠影響你的職業發展。 2、 推薦從C語言入門&#xff0c;不單是因為很多操作系統、網絡協議棧開源代碼由C/C實現&#xff…

jquery checkbox 實現單選

最近在用javascript的時候發現網上實現checkbox單選的代碼都已經過時了。 用著幾年前的代碼發現根本不行了 原因是jquery api已經更改 http://api.jquery.com/prop/ 這里是新的代碼 $(function(){$(":checkbox").each(function(){$(this).click(function () {if ($(t…

覆蓋所有面試知識點,建議收藏

一、前言 剛拿到字節offer&#xff0c;經歷了5次面試&#xff0c;其中4輪技術面&#xff0c;1輪HR面試。在這里分享一下自己的面試經驗和學習心得。希望能夠幫助更多的小伙伴。 我本科畢業于四川師范學院計算機系&#xff0c;剛畢業時也是小白&#xff0c;也是一步步成成起來…

Codeforces- Educational Codeforces Round 69

A題 DIY Wooden Ladder 簽到題&#xff0c;求n-2和第二大的最小值 #include<bits/stdc.h> using namespace std; int arr[100020]; int main() {int t,n;cin>>t;while(t--){cin>>n;for(int i0;i<n;i)cin>>arr[i];sort(arr,arrn);cout<<min(ar…

覆蓋所有面試知識點,持續更新中

我所接觸的Android開發者&#xff0c;百分之九十五以上 都遇到了以下幾點致命弱點&#xff01; 如果這些問題也是阻止你升職加薪&#xff0c;跳槽大廠的阻礙。 那么我確信可以幫你突破瓶頸&#xff01; 應屆坎坷求職路 一個廣州非985/211普通本科生&#xff0c;計算機科學…