
Controller에서 jsp로 이동할 때 WEB-INF/views 폴더에 존재하는 JSP와 webapp에 존재하는 HTML이나, JSP로 이동할 수 있다.
redirect는 ViewResolver를 거치지 않고 요청한다.
(Controller의 method에서 반환되는 JSP명에 prefix와 suffix가 붙지 않는다.)
=> WEBA-INF/views를 찾지 않는다.
.do , .html, .jsp를 모두 요청할 수 있다.
*.do : DispatcherServlet에 요청을 보낸다.
@GetMapping(..)
public String method(){
return "JSP명"; => return "redirect:*.do";
}
.html. .jsp를 요청
@GetMapping(..)
public String method(){
return "JSP명"; => return "redirect:*.jsp";
}
ViewResolver를 사용하지 않고 요청
이전 페이지에서 사용했던 값들을 이동한 페이지에서 사용할 수 있다.

사용법 )
@GetMapping
public String method(){
return "forward:요청do URI";
}
@GetMapping("/a.do")
public String method(){
return "forward:b.do";
}
// forward를 사용하면 ViewResolver를 거치지 않고, 해당 do로 직접 요청을 수행.(JSP로 응답이 되지 않는다.)
@GetMapping("/b.do")
public String method(){
return "응답할 JSP명";
}
<jsp:include page="/경로/JSP명"/>
//JSP명 : *.do를(controller)거치지 않고 응답되는 JSP<jsp:include page="/WEB-INF/views/경로/JSP명"/>
// views : 외부에서 직접요청은 불가능하지만 include는 가능<jsp:include page = "요청.do"/>
<c:import url="요청.do"/>@GetMapping
public String method명(HttpServletRequest request){
1. HttpServletRequest로부터 HttpSession을 얻는다.
HttpSession session = request.getSession();
2. session 사용
}@GetMapping
public String method명(HttpSession session){
1. session 사용
}SessionAttribute선언
@SessionAttribute("이름")//@SessionAttributes({"이름","이름",,,,})
@Controller
public class TestController(){
method의 매개변수로 Model 선언
@GetMapping(..)
public class method(Model model){
SessionAttribute에 존재하는 이름과 동일한 이름으로 값을 설정
model.addAttribute("이름",값);//request scope객체와 session scope객체 동시 할당.}
값 얻기
HttpSession 사용
public String method(HttpSession session){
session.getAttribute("이름");
Model 사용(Spring5.2에서부터 가능)
public String method(Model model){
model.getAttribute("이름");
<% session.getAttribute("이름")%>${sessionScope.이름}세션 삭제
@GetMapping(..)
public String method(SessionStatus ss){ss.setComplete();