spring boot——參數傳遞——HttpServletRequest獲取請求header、請求cookie、請求入參——HttpServletRespon設置返回header、返回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
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請求:

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM