TestController.java

@Controller
@SessionAttributes({"sessionBean1", "sessionBean2"})	
//요청이 발생되면 sessionBean1, sessionBean2 메소드 호출.
public class TestController {
	
	@GetMapping("/test1")
	public String test1(HttpServletRequest request) {
		
		HttpSession session = request.getSession();
		session.setAttribute("data1", "문자1");
		
		return "test1";
	}
	
	@GetMapping("/result1")
	public String result1(HttpServletRequest request) {
		
		HttpSession session = request.getSession();
		String data1 = (String)session.getAttribute("data1");
		System.out.println("data1 : " + data1);
		
		return "result1";
	}
	
	//======================DataBean======================
	@GetMapping("/test2")
	public String test2(HttpSession session, DataBean bean) {
		
		bean.setData1("Hello");
		bean.setData2("World");
		
		session.setAttribute("bean", bean);
		
		return "redirect:/result2";
	}
	
	/*
	@GetMapping("/result2")
	public String result2(HttpSession session) {
		
		DataBean bean = (DataBean)session.getAttribute("bean");
		System.out.println("data1 : " + bean.getData1());
		System.out.println("data2 : " + bean.getData2());
		
		return "result2";
	}
	*/
	
	@GetMapping("/result2")
	public String result2(@SessionAttribute("bean") DataBean bean) {
		
		System.out.println("bean.data1 : " + bean.getData1());
		System.out.println("bean.data2 : " + bean.getData2());
		
		return "result2";
	}
	
	//===========메소드로 객체 생성 후 세션 영역에 올리기=============
	@ModelAttribute("sessionBean1")
	public DataBean sessionBean1() {
		return new DataBean();
	}
	@ModelAttribute("sessionBean2")
	public DataBean sessionBean2() {
		return new DataBean();
	}
	
	@GetMapping("/test3")
	public String test3(@ModelAttribute("sessionBean1") DataBean sessionBean1, @ModelAttribute("sessionBean2") DataBean sessionBean2) {
		
		sessionBean1.setData1("헬로");
		sessionBean1.setData2("월드");
		
		sessionBean2.setData1("안녕");
		sessionBean2.setData2("세상아");
		
		return "result3";
	}
	
	@GetMapping("/result3")
	public String result3(@ModelAttribute("sessionBean1") DataBean sessionBean1, @ModelAttribute("sessionBean2") DataBean sessionBean2) {
		
		System.out.println("sessionBean1.data1 : " + sessionBean1.getData1());
		System.out.println("sessionBean1.data2 : " + sessionBean1.getData2());
		
		System.out.println("sessionBean2.data1 : " + sessionBean2.getData1());
		System.out.println("sessionBean2.data2 : " + sessionBean2.getData2());
		
		return "result3";
	}

 

result1.jsp

<h1>result1</h1>
data1 : ${data1 }<br>

 

result2.jsp

<h1>result2</h1>
data1 : ${bean.data1 }<br>
data2 : ${bean.data2 }<br>

 

result3.jsp

<h1>result3</h1>
sessionBean1.data1 : ${sessionBean1.data1 }<br>
sessionBean1.data2 : ${sessionBean1.data2 }<br>
<hr />

sessionBean2.data1 : ${sessionBean2.data1 }<br>
sessionBean2.data2 : ${sessionBean2.data2 }<br>

 


RootAppContext.java

@Configuration
public class RootAppContext {

	@Bean
	@SessionScope
	public DataBean1 dataBean1() {
		return new DataBean1();
	}
	
	@Bean("sessionBean2")
	@SessionScope
	public DataBean2 dataBean2() {
		return new DataBean2();
	} 
    
	@Bean
	@SessionScope
	public DataBean3 dataBean3() {
		return new DataBean3();
	}
	
	@Bean("sessionBean4")
	@SessionScope
	public DataBean4 dataBean4() {
		return new DataBean4();
	} 
}

 

DataBean3.java에 @Component

DataBean4.java에 @Component("value=sessionBean4")

ServletAppContext.java@ComponentScan("kr.co.soft.beans") 어노테이션 올리기.

 

TestController.java

@Controller
public class TestController {
	
	@Autowired
	DataBean1 sessionBean1;
	
	@Resource(name="sessionBean2")
	DataBean2 sessionBean2;
    	
	@Autowired
	DataBean3 sessionBean3;
	
	@Resource(name="sessionBean4")
	DataBean4 sessionBean4;
	
	//========================================
	@GetMapping("/test1")
	public String test1() {
		
		sessionBean1.setData1("I Love");
		sessionBean1.setData2("Chocolate");
		
		sessionBean2.setData3("Cupcake and");
		sessionBean2.setData4("Pancake");
        		
		sessionBean3.setData5("I Love");
		sessionBean3.setData6("NYC");
		
		sessionBean4.setData7("Pizza and");
		sessionBean4.setData8("Burger");
		
		return "test1";
	}
	
	@GetMapping("/result1")
	public String result1(Model model) {
		
		System.out.println("data1 : " + sessionBean1.getData1());
		System.out.println("data2 : " + sessionBean1.getData2());
		
		System.out.println("data3 : " + sessionBean2.getData3());
		System.out.println("data4 : " + sessionBean2.getData4());
        		
		System.out.println("data5 : " + sessionBean3.getData5());
		System.out.println("data6 : " + sessionBean3.getData6());
		
		System.out.println("data7 : " + sessionBean4.getData7());
		System.out.println("data8 : " + sessionBean4.getData8());
		
		model.addAttribute("sessionBean1", sessionBean1); 
		model.addAttribute("sessionBean2", sessionBean2); 
       	model.addAttribute("sessionBean3", sessionBean3); 
		model.addAttribute("sessionBean4", sessionBean4); 
		
		return "result1";
	}	
}

 

result1.jsp

<h1>result1</h1>
data1 : ${sessionBean1.data1 }<br>
data2 : ${sessionBean1.data2 }<br>
data3 : ${sessionBean2.data3 }<br>
data4 : ${sessionBean2.data4 }<br>
data5 : ${sessionBean3.data5 }<br>
data6 : ${sessionBean3.data6 }<br>
data7 : ${sessionBean4.data7 }<br>
data8 : ${sessionBean4.data8 }<br>

 

 

 

 

'◦ Spring Project > Basic' 카테고리의 다른 글

Cookie  (0) 2022.03.01
Application  (0) 2022.02.28
Redirect vs Forward  (0) 2022.02.26
form:form  (0) 2022.02.24
Spring의 Command 객체  (0) 2022.02.24

+ Recent posts