728x90
SessionScope
- 브라우저가 최초의 요청을 발생시키고 브라우저를 닫을 때 까지
- SessionScope에서는 session영역에 저장되어 있는 데이터나 객체를 자유롭게 사용 가능
index
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<body>
<!--session : 브라우저당 서버에 요청을 하게 되면 브라우저당 하나씩 메모리 공간을 서버에서 할당해줌
요청이 새롭게 발생해도 같은 메모리 공간을 사용하게 됌 -->
<!-- @SessionScope : 최초의 요청 ~ 브라우저 닫을 때 까지 -->
<a href="t1">test1</a><br>
<a href="s1">spring1</a><br>
</body>
</html>
Data1
package kr.bit.beans;
public class Data {
private String str1;
private String str2;
public String getStr1() {
return str1;
}
public void setStr1(String str1) {
this.str1 = str1;
}
public String getStr2() {
return str2;
}
public void setStr2(String str2) {
this.str2 = str2;
}
}
Data2
package kr.bit.beans;
public class Data2 {
private String str3;
private String str4;
public String getStr3() {
return str3;
}
public void setStr3(String str3) {
this.str3 = str3;
}
public String getStr4() {
return str4;
}
public void setStr4(String str4) {
this.str4 = str4;
}
}
Data3
package kr.bit.beans;
import org.springframework.stereotype.Component;
import org.springframework.web.context.annotation.SessionScope;
@Component
@SessionScope
public class Data3 {
private String str5;
private String str6;
public String getStr5() {
return str5;
}
public void setStr5(String str5) {
this.str5 = str5;
}
public String getStr6() {
return str6;
}
public void setStr6(String str6) {
this.str6 = str6;
}
}
Controller
package kr.bit.controller;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import kr.bit.beans.Data;
import kr.bit.beans.Data2;
import kr.bit.beans.Data3;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class SpringController {
@Autowired
Data data1; // RootAppContext에 빈으로 등록한 Data주소값을 자동주입받고있음
@Resource(name="session2")
Data2 data2;
@Autowired
Data3 data3;
@GetMapping("/t1")
public String t1() {
data1.setStr1("아무거나");
data1.setStr2("넣으시면");
data2.setStr3("구분이");
data2.setStr4("잘안가요");
data3.setStr5("제가한번");
data3.setStr6("바꾸겠습니다"); // 값 주입한 객체들이 SesseionScope임 =>t1 경로 매핑될 때 Bean 객체 주입됨
return "test1";
}
@GetMapping("/s1")
public String s1(Model model){ // 세션 객체들 data1,2,3을 모델객체에 담는다
model.addAttribute("data1", data1);
model.addAttribute("data2", data2);
model.addAttribute("data3", data3);
return "spring1";
}
}
test.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
</body>
</html>
spring1.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${requestScope.data1.str1}
${requestScope.data1.str2}
${requestScope.data2.str3}
${requestScope.data2.str4}
${requestScope.data3.str5}
${requestScope.data3.str6}
</body>
</html>
728x90
'Frameworks > Spring' 카테고리의 다른 글
[Spring] MVC (Validation+FormTag / Error msg) (0) | 2024.05.09 |
---|---|
[Spring] MVC (Properties / Print the set value in JSP) (0) | 2024.05.09 |
[Spring] MVC (Session / @SessionAttibute) (0) | 2024.05.09 |
[Spring] MVC (Form요소,태그 / forward/redirect / Request 빈 주입) (2) | 2024.05.08 |
[Spring] MVC (추출/ 주입받기 (Mapping / viewResolver)) (2) | 2024.05.08 |