session과 cookie를 쉽게 사용하기 위해 제공하는 interface
org.springframework.web.util패키지에서 제공하는 abstract클래스
HttpServletRequest를 매개변수로 선언
@GetMapping(...)
public String method( HttpServletRequest request ){
WebUtils의 method 호출
세션에 값 설정
WebUtils.setSessionAttribute(request, "이름", 값);
세션에 값 얻기
WebUtils.getSessionAttribute(request, "이름");
}
접속자의 정보를 접속자 HDD에 File로 저장하는 기술.(문자열만 저장가능)
@CookieValue annotation을 사용, WebUtils.getCookie()를 사용하여 쿠키 값을 얻을 수 있다.
HttpServletResponse를 매개변수로 선언
@GetMapping(...)
public String method(HttpServletResponse response)
쿠키 생성
Cookie cookie = new Cookie("이름","값");
생존시간 설정
cookie.setMaxAge(초);
쿠키 심기
response.addCookie( cookie );
쿠키 값 얻기
annotation 사용(method의 매개변수 앞에 선언)
사용법
@CookieValue(value="쿠키의 이름", defaultValue="쿠키가 없을 때 설정될 값")
@GetMapping(...)
public String method(@CookieValue(value="이름", defaultValue="기본값") String name )
WebUtils 사용
HttpServletRequest request 매개변수 선언
public String method ( HttpServletRequest request){
WebUtils를 사용하여 쿠키 값 얻기
String value = WebUtils.getCookie(request, "이름").getValue();
}
화면의 일부분을 갱신할 때

JSON을 사용하는 이유
: XML로 응답을 하면 더 많은 자원이 필요하다.
XML-많은 자원이 필요
JSON - XML보다 적은 요소로 데이터를 보낼 수 있다.
{msg : "메시지"}
응답 JSP없이 Controller에서 발생한 데이터를 접속자에게 그대로 응답할 때 사용하는 annotation => JSP를 만들 필요가 없다.

Controller method에서 예외가 발생되고, throws로 예외가 던져지면 DispatcherServlet이 예외를 잡아서 처리한다.
=> 개발자는 예외가 발생한 이후에 페이지를 지정할 수 없다.(개발자가 호출한 것이 아니기 때문에)
문제 : 예외 메시지가 그대로 노출된다. : DD의 설정으로 처리할 수도 있다.
Controller안에서 다른 method의 예외를 처리할 수 있는 method를 정의할 때 사용.
사용법
-예외처리 method
@Controller
public class TestController{
@GetMapping(...)
public String methodA() throws SQLException{
예외발생예상코드
}
@GetMapping(...)
public String methodB() throws SQLException{
예외발생예상코드
}
@ExceptionHandler(SQLException.class)
public ModelAndView exceptionMethod(SQLException se){
예외처리 코드 작성
ModelAndView mav = new ModelAndView("view명");
mav.setViewName("view명");
mav.addObject("이름","view페이지 전달할 예외의 정보);
return mav;
}
}