Spring

HttpSession

전체코드

SpController

@GetMapping("/t1")
// public String test1(HttpServletRequest request) {
public String test1(HttpSession session) {
    //HttpSession session = request.getSession();
    session.setAttribute("d1", "session1");
    return "t1";
}
@GetMapping("/t2")
public String test2(HttpSession session) {
    session.setAttribute("d1", "session2");
    return "redirect:/final1";
}

@GetMapping("/t3")
public String test3(HttpSession session) {
    session.setAttribute("d1", "session3");
    return "forward:/final1";
}

@GetMapping("/final1")
// public String result1(HttpServletRequest request) {
public String result1(HttpSession session) {
    String str = (String)session.getAttribute("d1");    System.out.println(str);
    return "final1";
}

//출력  final1.jsp
${sessionScope.d1}
  • HttpSession - 객체유지 된다
  • HttpServletRequest - 객체유지 안된다

 

@GetMapping("/t4")
public String test4(HttpSession session) {
    Data bean1 = new Data();
    bean1.setD1("데이터1");    bean1.setD2("데이터2");
    session.setAttribute("bb", bean1);
    return "t4";
}

@GetMapping("/final4")
public String result4(@SessionAttribute("bb") Data bean1) {
    System.out.println(bean1.getD1()+"/"+bean1.getD2());
    return "final4";
}

/* public String test4(@SessionAttribute("bean1") DataBean bean1) {...} */
/* public String result4(HttpSession session) {
	DataBean1 bean1 = (DataBean1)session.getAttribute("bean1"); } */
    
//출력 final4.jsp
${sessionScope.bb.d1 }
${sessionScope.bb.d2 }

 

- SessionAttributes

@SessionAttributes({"session1", "session2"})
public class SpController {
	
	@ModelAttribute("session1")
	public Data session1() {
		return new Data();
	}
	@ModelAttribute("session2")
	public Data session2() {
		return new Data();
	}
	
	@GetMapping("/t5")
	public String test5(@ModelAttribute("session1") Data session1,
    			@ModelAttribute("session2") Data session2) {
		session1.setD1("aa");		session1.setD2("bb");
		session2.setD1("cc");		session2.setD2("dd");
		return "t5";
	}
	
	@GetMapping("/final5")
	public String result5(@ModelAttribute("session1") Data session1,
    			@ModelAttribute("session2") Data session2) {
		
		System.out.println(session1.getD1()+"/"+session1.getD2());
		System.out.println(session2.getD1()+"/"+session2.getD2());
		return "final5";
	}
}

//출력 final5.jps
${sessionScope.session1.d1}
${sessionScope.session2.d1}
  • @SessionAttributes → request 영역이 아니라 session 영역에 주입된다
  • @ModelAttribute에 같은 이름으로 저장된 메서드가 자동 호출
728x90
728x90

'Spring' 카테고리의 다른 글

JUnit Test  (0) 2022.08.10
properties - 유효성검사, 에러메시지출력  (0) 2022.08.05
Spring MVC - @RequestMapping, @GetMapping  (0) 2022.08.04
myBatis를 이용한 DB연결, CRUD구현  (0) 2022.08.02
JDBC 연결하기  (0) 2022.08.02