HttpServletRequest類html
service方法中的request的類型是ServletRequest,而doGet/doPost方法的request的類型是HttpServletRequest,java
HttpServletRequest是ServletRequest的子接口,功能和方法更增強大,web
經過request獲取請求行api
得到客戶端的請求方式:服務器
獲取頁面地址網站
String getRequestURI();spa
獲取web名稱code
String getContextPath();htm
經過request獲取請求頭
獲取請求頭
String getHeader(String name);
經過request得到請求體
獲取參數
String getParameter(string name);
//獲取一個name多個值
String【】 hobys=request.getParameterValues();
獲取全部請求的參數值
Map<String.String[]> map=request.getParameterMap();
Map<String ,String[]> map=request.getParameterMap();
//遍歷
Set<String > set=map.keyset();
for(String s:set){
sysout(s+"")
String[] str=map.get(s);
for(String ss:str){
sysout(ss+"")
}
}
request的其餘功能
request是一個域對象
setAttribute(
String name,
Object o)
getAttribute(
String name)
removeAttribute(
String name)
請求轉發
得到請求轉發器----path
是轉發的地址
RequestDispatcher
getRequestDispatcher(
String path)
經過轉發器對象轉發
requestDispathcer.forward(
ServletRequest request,
ServletResponse response)
中文轉碼
request.setcharacterEncoding("UTF-8");
轉發與重定向的區別?
1
)重定向兩次請求,轉發一次請求
2
)重定向地址欄的地址變化,轉發地址不變
3
)從新定向能夠訪問外部網站
轉發只能訪問內部資源
4
)轉發的性能要優於重定向
注意:客戶端地址與服務器端地址的寫法?
客戶端地址:
是客戶端去訪問服務器的地址,服務器外部的地址,特色:寫上
web
應用名
稱
直接輸入地址:
重定向
服務器端地址:
服務器內部資源的跳轉的地址,特色:不須要寫
web
應用的名稱
轉發