SpringMvc4中獲取request、response對象的方法


springMVC4中獲取request和response對象有以下兩種簡單易用的方法:

1、在control層獲取

在control層中獲取HttpServletRequest和HttpServletResponse對象有以下兩種簡單方式:

1)通過方法參數直接在action類中獲取

@Controller

class Action{

  @RequestMapping("/path")

   public String getReqAndRes(HttpServletRequest request, HttpServletResponse response){

      /**  相關業務代碼   此時可以直接使用request response對象 */

   }

}

 

2)利用spring web提供的@ModelAttribute注解

@ModelAttribute放在類方法的參數前面表示引用Model中的數據

@ModelAttribute放在類方法上面則表示該Action類中的每個請求調用之前都會執行該方法,因此在此方法里面可以做一些請求預處理,利用此特性就可以抽象出一個基本Action類,然后所有的Action類都繼承自這個基本Aciton類,在基本Action類里面獲取相應的request、response、session對象:

public class BaseAction{

 

   protected HttpServletRequest request;

   protected HttpServletResponse response;

   protected HttpSession session;

  

   @ModelAttribute

   public void setReqAndRes(HttpServletRequest request, HttpServletResponse response){

       this.request = request;

       this.response = response;

       this.session = request.getSession();

   }

 

   /** 其他業務代碼 */

}

 

2、通過spring提供的RequestContextHolder在非contrller層獲取request和response對象

HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();

HttpServletResponse response = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getResponse();

HttpServletResponse response = ((ServletWebRequest)RequestContextHolder.getRequestAttributes()).getResponse();

ServletContext context = ContextLoader.getCurrentWebApplicationContext().getServletContext();


免責聲明!

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



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