1. 程式人生 > >Request物件詳細介紹

Request物件詳細介紹

 1.Request物件

   是當客戶端向伺服器端傳送請求時,伺服器為本次請求建立request物件,並在呼叫Servlet的service方法時,將該物件傳遞給service方法。Request物件中封裝了客戶端傳送過來的所有的請求資料。

 

2.Request常用的API

   Request物件的型別是HttpServletRequest,該類中定義了很多與http協議相關的方法,比如獲取請求頭資訊,請求方式,客戶端ip地址等資訊。下面是常用的API.

  (1)常用資訊

     String getRemoteAddr():獲取客戶端ip地址

     String getMethod():獲取客戶端請求方式。例如:get或post

   (2)獲取請求頭資訊

      String getHeader(String name):獲取單值的請求頭的值。

      int getIntHeader(String name):獲取單值int型別的請求頭的值

3.Request獲取請求引數方法

request物件獲取請求引數的方法有以下幾個,詳情請看錶1-1

1-1 request獲取請求引數方法介紹

方法名

方法介紹

String getParameter(String name )

獲取指定名稱的請求引數值,適用於單值的請求引數

String[] getParameterValues(String name)

獲取指定名稱的請求引數值,適用於多值的請求引數

Enumeration<String> getParameterNames()

獲取所有的請求引數名稱

Map<String,String[]> getParameterMap()

獲取所有請求引數,其中引數名作為mapkey,引數值作為mapvalue.

 牛刀小試

   客戶端表單

<span style="font-family:SimSun;font-size:18px;"><body>
<h1>測試</h1>
<hr/>
<form action="/Test/ParamServlet" method="post">
  使用者名稱:<input type="text" name="username"/><br/>
  密 碼:<input type="password" name="password"/><br/>
  愛 好:<input type="checkbox" name="hobby" value="cf"/>吃飯
  <input type="checkbox" name="hobby" value="sj"/>睡覺
  <input type="checkbox" name="hobby" value="ddm"/>打程式碼
  <br/>
  <input type="submit" value="提交"/>
</form>
  </body>
</span>

   伺服器端接收

<span style="font-family:SimSun;font-size:18px;">public class ParamServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("GET: " + request.getParameter("xxx"));
		System.out.println("GET: " + request.getParameter("yyy"));
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String[] hobby = request.getParameterValues("hobby");
		
		System.out.println(username + ", " + password + ", " + Arrays.toString(hobby));
			}
}
</span>

4.Request獲取請求路徑方法介紹

  Request物件中包含的是請求資訊。下面以一個路徑為例子,為大家展示請求路徑的幾個方法。

  Request物件通過以下方法來獲取請求路徑。

  (1)String getServerName():獲取伺服器名:localhost

  (2)String getServerPort():獲取伺服器埠號:8080

  (3)String getContextPath():獲取專案名:Test

  (4)String getServletPath():獲取Servlet路徑:/login

  (5)String getQueryString():獲取引數部門,即問號後面的部分:username=zhangsan

  (6)String getRequestURL():獲取請求URL

 下面用一張圖來展示一下