以下の通り、
- @RequestHeader や @CookieValue から取得
- HttpServletRequest 経由で取得
の2種類があるみたい
package jp.co.sexy.bknkouhei.action; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @Controller public class HelloAction { static protected Logger logger = LogManager.getLogger(new Object(){}.getClass()); @RequestMapping(value="/hello", method=RequestMethod.GET) public ModelAndView index(ModelAndView modelview) { logger.info("HOGEHOGE"); modelview.setViewName("hello/index"); return modelview; } @RequestMapping(value="/hello2", method=RequestMethod.GET) public ModelAndView index2( @RequestHeader(name="User-Agent",required=false) String userAgent, @CookieValue(name="JSESSIONID",required=false) String jSessionId, ModelAndView modelview) { logger.info("USER_AGENT:"+ userAgent ); logger.info("JSESSIONID:"+ jSessionId); modelview.setViewName("hello/index"); return modelview; } @RequestMapping(value="/hello3", method=RequestMethod.GET) public ModelAndView index3(HttpServletRequest httpRequest, ModelAndView modelview) { logger.info("HEADER>USER_AGENT:"+ httpRequest.getHeader("User-Agent")); Cookie[] cookies = httpRequest.getCookies(); for (int i = 0; i<cookies.length; i++) { logger.info("COOKIE>"+ cookies[i].getName() +":"+cookies[i].getValue() ); } modelview.setViewName("hello/index"); return modelview; } @RequestMapping(value="/hello", method=RequestMethod.POST) public ModelAndView send( BindingResult errors, ModelAndView modelview) { logger.info("START This method."); String msg = ""; // validation errorがある場合、メッセージ等を取得 if(errors.hasErrors()){ logger.error("This method has error."); for (FieldError fieldErr : errors.getFieldErrors()) { msg += "Field:" + fieldErr.getField(); msg += " x Code:" + fieldErr.getCode(); msg += " x Msg:" + fieldErr.getDefaultMessage(); msg += "<hr/>"; } } logger.info("MSG" + msg); modelview.addObject("msg",msg); modelview.setViewName("hello/index"); return modelview; } }