HttpServletRequest

一:請求的方式

1.地址欄輸入
	在瀏覽器地址欄直接輸入要訪問的地址即可,此種方式可以看做是訪問服務器的起始操作。
http://ip:port/path
2、超鏈接
	使用超鏈接也可以向服務器發出請求
<a href="http://www.shy.com">shy</a>
3、Form表單
	當需要向服務器發送請求,並且傳輸一些用戶輸入的數據時,我們優先選擇form表單的方式發起請求。
4、ajax
	通過ajax發起的請求,屬於異步請求,能實現局部刷新的效果,是一種比較常用的請求方式。
	通過jQuery中的ajax(),get(),post(),getJSON()等方法都能發生請求
5、請求轉發
6、重定向

二、HttpServletRequest

1)常用方法
getRequestURL() 獲取客戶端發出請求時的完整URL
getRequestURI() 獲取請求行中的資源名稱部分(項目名稱開始)
getQueryString() 獲取請求行中的參數部分
getMethod() 獲取客戶端請求方式
getProtocol() 獲取HTTP版本號
getContextPath() 獲取webapp名字
2)獲取請求頭
getHeader(String) 獲取單個請求頭內容
Enumeration<String> getHeaderNames() 獲取所有的請求頭名稱集合
3)獲取客戶端請求參數
getParameter(name) 獲取指定名稱的參數
getParameterValues(String name) 獲取指定名稱參數的所有值
getParameterNames() 獲取一個包含請求消息中的所有參數名的Enumeration對象
getParameterMap() 返回一個保存了請求消息中的所有參數名稱和值Map對象

三、請求亂碼解決

方式一:request.setCharacterEncoding("UTF-8");
這種方式只針對 POST 有效(必須在接收所有的數據之前設定)
方式二:new String(request.getParameter(name).getBytes("ISO-8859-1"));
藉助了 String 對象的方法,該種方式對任何請求有效,是通用的。


Tomcat8 起,以後的 GET 方式請求是不會出現亂碼的。
	  		Tomcat8及以上版本					Tomcat7及以下版本
 POST請求		 亂碼								 亂碼
  request.setCharacterEncoding("UTF-8");	request.setCharacterEncoding("UTF-8");
	new String(request.getParameter(name).getBytes("ISO-8859-1"),"UTF-8")

 GET請求	不亂碼,不處理							 亂碼
	new String(request.getParameter(name).getBytes("ISO-8859-1"),"UTF-8")

四、請求轉發

	是一種服務器的行爲,從始至終只有一個請求發出
request.getRequestDispatcher().forward();

五、request域對象

通過該對象可以在以一個請求中傳遞數據,作用範圍:在一次請求中有效,即服務器跳轉有效。
request.setAttribute():設置域對象內容;
request.getAttribute(String name):獲取域對象內容;
request.removeAttribute(String name): 刪除域對象內容。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章