Springboot使用內置對象HttpServletRequest、HttpServletResponse


1、通過Springboot程序可以發現,Springboot中控制器的形式和Springmvc中是一樣的,因此在程序中使用jsp的內置對象也可以按照與Springmvc同樣的方式進行。

 1 package org.springboot.tentent.controller;
 2 
 3 import java.util.HashMap;
 4 import java.util.Map;
 5 
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 
 9 import org.springframework.web.bind.annotation.RequestMapping;
10 import org.springframework.web.bind.annotation.RestController;
11 
12 @RestController
13 public class SampleController {
14 
15     @RequestMapping(value = "/hello")
16     public Map<String, String> hello(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
17         Map<String, String> map = new HashMap<String, String>();
18         map.put("客戶端的ip地址: ", httpServletRequest.getRemoteAddr());
19         map.put("客戶端的響應編碼: ", httpServletResponse.getCharacterEncoding());
20         map.put("客戶端的SessionID: ", httpServletRequest.getSession().getId());
21         map.put("項目的真實路徑: ", httpServletRequest.getServletContext().getRealPath("/"));
22         return map;
23     }
24 
25 }

訪問如下所示:

除了在控制器的方法上使用參數來接收內置對象外,也可以利用ServletRequestAttributes形式來獲取內置對象。 

 1 package org.springboot.tentent.controller;
 2 
 3 import java.util.HashMap;
 4 import java.util.Map;
 5 
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 
 9 import org.springframework.web.bind.annotation.RequestMapping;
10 import org.springframework.web.bind.annotation.RestController;
11 import org.springframework.web.context.request.RequestContextHolder;
12 import org.springframework.web.context.request.ServletRequestAttributes;
13 
14 @RestController
15 public class SampleController {
16 
17     @RequestMapping(value = "/hello")
18     public Map<String, String> hello(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
19         Map<String, String> map = new HashMap<String, String>();
20         map.put("客戶端的ip地址: ", httpServletRequest.getRemoteAddr());
21         map.put("客戶端的響應編碼: ", httpServletResponse.getCharacterEncoding());
22         map.put("客戶端的SessionID: ", httpServletRequest.getSession().getId());
23         map.put("項目的真實路徑: ", httpServletRequest.getServletContext().getRealPath("/"));
24         return map;
25     }
26 
27     @RequestMapping(value = "/hello2")
28     public Map<String, String> hello() {
29         // 獲取HttpServletRequest內置對象
30         HttpServletRequest httpServletRequest = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
31                 .getRequest();
32         // 獲取HttpServletResponse內置對象
33         HttpServletResponse httpServletResponse = ((ServletRequestAttributes) RequestContextHolder
34                 .getRequestAttributes()).getResponse();
35         Map<String, String> map = new HashMap<String, String>();
36         map.put("客戶端的ip地址: ", httpServletRequest.getRemoteAddr());
37         map.put("客戶端的響應編碼: ", httpServletResponse.getCharacterEncoding());
38         map.put("客戶端的SessionID: ", httpServletRequest.getSession().getId());
39         map.put("項目的真實路徑: ", httpServletRequest.getServletContext().getRealPath("/"));
40         return map;
41     }
42 
43 }

訪問如下所示:

 


免責聲明!

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



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