控制器:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
package
com.awaimai.web;
import
org.springframework.web.bind.annotation.*;
import
javax.servlet.http.Cookie;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
import
java.util.Enumeration;
@RestController
public
class
kzq
{
@RequestMapping
(value =
"/test1"
)
public
String test1(HttpServletRequest request)
{
System.out.println(request.getMethod());
System.out.println(request.getPathInfo());
System.out.println(request.getRequestURI());
System.out.println(request.getRequestURL());
System.out.println(request.getQueryString());
StringBuilder sb =
new
StringBuilder();
Enumeration<String> headerNames = request.getHeaderNames();
while
(headerNames.hasMoreElements())
//讀取請求消息頭
{
String name = headerNames.nextElement();
sb.append(name +
":"
+ request.getHeader(name) +
"<br>"
);
}
return
sb.toString();
}
@RequestMapping
(value =
"/test2"
)
public
String test2(HttpServletResponse response)
{
response.setHeader(
"content-type"
,
"text/html;charset=UTF-8"
);
//告知瀏覽器使用什么碼表
//告知客戶端不緩存
response.setHeader(
"pragma"
,
"no-cache"
);
response.setHeader(
"cache-control"
,
"no-cache"
);
response.setDateHeader(
"expires"
,
0
);
//添加Cookie
response.addCookie(
new
Cookie(
"cook-001-name"
,
"cookie-001-value"
));
response.addCookie(
new
Cookie(
"cook-002-name"
,
"cookie-002-value"
));
response.setStatus(
404
);
//我們將狀態設置成404
return
"test2"
;
}
}
|
打印如下:
GET
null
/test1
http://localhost:8080/test1
null

web訪問如下:

===========================================================================
===========================================================================
url中帶參數: http://localhost:8080/test1?a=b&c=2
打印如下:

web訪問如下:

=============================================================================
=============================================================================
post 訪問如下:





user-agent:PostmanRuntime/7.28.2<br>
accept:*/*<br>
cache-control:no-cache<br>
postman-token:a67b445a-48b2-46b9-b850-299d9eec5641<br>
host:localhost:8080<br>
accept-encoding:gzip, deflate, br<br>
connection:keep-alive<br>

===================================================================
===================================================================
HttpServletRequest
HttpServletRequest對象代表客戶端的請求,當客戶端通過HTTP協議訪問服務器時,HTTP請求頭中的所有信息都封裝在這個對象中,
開發人員通過這個對象的方法,可以獲得客戶這些信息。
主要功能:參數解析,Cookie讀取,http請求字段,文件上傳
1.請求行
getMethod(); 獲得請求方式。
getQueryString() ; 返回請求行中的參數部分。
getRequestURI(); 返回請求行中的資源名部分。
getRequestURL();返回客戶端發出請求時的完整URL。
==============================================================================
==============================================================================
2.請求消息頭
String getHeader(String name) 根據請求消息頭名稱稱得到請求消息頭信息值。
Enumeration getHeaderNames() 得到所有請求消息頭名稱。
Enumeration getHeaders(String name) 根據頭名稱得到相同名稱請求頭信息值。
String getCookies() 獲取請求消息頭中的cookie值。
package com.awaimai.web;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Enumeration;
@RestController
public class kzq
{
@RequestMapping(value = "/test1")
public String test1(HttpServletRequest request)
{
System.out.println(request.getMethod());
System.out.println(request.getPathInfo());
System.out.println(request.getRequestURI());
System.out.println(request.getRequestURL());
System.out.println(request.getQueryString());
StringBuilder sb = new StringBuilder();
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) //讀取請求消息頭
{
String name = headerNames.nextElement();
sb.append(name + ":" + request.getHeader(name) + "<br>");
}
return sb.toString();
}
@RequestMapping(value = "/test2")
public String test2(HttpServletResponse response)
{
response.setHeader("content-type", "text/html;charset=UTF-8"); //告知瀏覽器使用什么碼表
//告知客戶端不緩存
response.setHeader("pragma", "no-cache");
response.setHeader("cache-control", "no-cache");
response.setDateHeader("expires", 0);
//添加Cookie
response.addCookie(new Cookie("cook-001-name" ,"cookie-001-value"));
response.addCookie(new Cookie("cook-002-name" ,"cookie-002-value"));
response.setStatus(404); //我們將狀態設置成404
return "test2";
}
@RequestMapping(value = "/test3")
public String test3(HttpServletRequest request)
{
StringBuilder sb = new StringBuilder();
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements())
{ //讀取請求消息頭
String name = headerNames.nextElement();
sb.append(name + ":" + request.getHeader(name) + "<br>");
}
return sb.toString();
}
}





=================================================================
=================================================================
http://localhost:8080/test2 獲取瀏覽器設置的返回的cookie;
http://localhost:8080/test3 打開這個鏈接,發現訪問這個url的時候,瀏覽器自動帶上cookie,返回給服務器,服務器獲取后進行打印
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
package
com.awaimai.web;
import
org.springframework.web.bind.annotation.*;
import
javax.servlet.http.Cookie;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
import
java.util.Enumeration;
@RestController
public
class
kzq
{
@RequestMapping
(value =
"/test1"
)
public
String test1(HttpServletRequest request)
{
System.out.println(request.getMethod());
System.out.println(request.getPathInfo());
System.out.println(request.getRequestURI());
System.out.println(request.getRequestURL());
System.out.println(request.getQueryString());
StringBuilder sb =
new
StringBuilder();
Enumeration<String> headerNames = request.getHeaderNames();
while
(headerNames.hasMoreElements())
//讀取請求消息頭
{
String name = headerNames.nextElement();
sb.append(name +
":"
+ request.getHeader(name) +
"<br>"
);
}
return
sb.toString();
}
@RequestMapping
(value =
"/test2"
)
public
String test2(HttpServletResponse response)
{
response.setHeader(
"content-type"
,
"text/html;charset=UTF-8"
);
//告知瀏覽器使用什么碼表
//告知客戶端不緩存
response.setHeader(
"pragma"
,
"no-cache"
);
response.setHeader(
"cache-control"
,
"no-cache"
);
response.setDateHeader(
"expires"
,
0
);
//添加Cookie
response.addCookie(
new
Cookie(
"cook-001-name"
,
"cookie-001-value"
));
response.addCookie(
new
Cookie(
"cook-002-name"
,
"cookie-002-value"
));
response.setStatus(
404
);
//我們將狀態設置成404
return
"test2"
;
}
@RequestMapping
(value =
"/test3"
)
public
String test3(HttpServletRequest request)
{
StringBuilder sb =
new
StringBuilder();
if
(request.getCookies()!=
null
){
for
(Cookie cookie :request.getCookies()){
sb.append(
"Cookie: "
+ cookie.getName()+
" value: "
+ cookie.getValue());
}
}
return
sb.toString();
}
}
|



==========================================================================
===========================================================================
getParameter(name)方法 獲取請求中的參數,該參數是由name指定。
getParameterValues(String name)方法 獲取指定名稱參數的所有值數組。它適用於一個參數名對應多個值的情況。如頁面表單中的復選框,多選列表提交的值。
getParameterNames() 方法返回一個包含請求消息中的所有參數名的Enumeration對象。通過遍歷這個Enumeration對象,就可以獲取請求消息中所有的參數名。
getCharacterEncoding() 返回請求的字符編碼方式。
getAttributeNames()返回當前請求的所有屬性的名字集合賦值:setAttribute()。
getAttribute(String name) 返回name指定的屬性值。
getsession()返回和客戶端相關的session,如果沒有給客戶端分配session,則返回null。
getParameterMap():返回一個保存了請求消息中的所有參數名和值的Map對象。
Map對象的key是字符串類型的參數名,value是這個參數所對應的Object類型的值數組
RequestDispatcher.forward() 方法的請求轉發過程結束后,瀏覽器地址欄保持初始的URL地址不變。
方法在服務器端內部將請求轉發給另外一個資源,瀏覽器只知道發出了請求並得到了響應結果,並不知道在服務器程序內部發生了轉發行為。
setCharacterEncoding(“utf-8”);
getReader() 獲取請求體的數據流
getInputStream() 獲取請求的輸入流中的數據
==========================================================================
==========================================================================
控制器:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package
com.awaimai.web;
import
org.springframework.web.bind.annotation.*;
import
javax.servlet.http.Cookie;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
@RestController
public
class
kzq
{
@RequestMapping
(value =
"/test2"
)
public
String test2(HttpServletResponse response)
{
response.setHeader(
"content-type"
,
"text/html;charset=UTF-8"
);
//告知瀏覽器使用什么碼表
//告知客戶端不緩存
response.setHeader(
"pragma"
,
"no-cache"
);
response.setHeader(
"cache-control"
,
"no-cache"
);
response.setDateHeader(
"expires"
,
0
);
//添加Cookie
response.addCookie(
new
Cookie(
"cook-001-name"
,
"cookie-001-value"
));
response.addCookie(
new
Cookie(
"cook-002-name"
,
"cookie-002-value"
));
response.setStatus(
404
);
//我們將狀態設置成404
return
"success"
;
}
}
|

post請求:




