1) scope๋?
4๊ฐ์ง Scope
-
page : ํ์ด์ง ๋ด์์ ์ง์ญ๋ณ์์ฒ๋ผ ์ฌ์ฉ
pageContext (์์ ใ )
-
Request : http์์ฒญ์ WAS๊ฐ ๋ฐ์์ ์น ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ตํ ๋๊น์ง ๋ณ์๊ฐ ์ ์ง๋๋ ๊ฒฝ์ฐ ์ฌ์ฉ
ํ๋์ ์์ฒญ์ด ๋ค์ด์์ ์๋ต์ด ๋๊ฐ ๋๊น์ง
HttpServletRequest
-
Session : ์น ๋ธ๋ผ์ฐ์ ๋ณ๋ก ๋ณ์๊ฐ ๊ด๋ฆฌ๋๋ ๊ฒฝ์ฐ ์ฌ์ฉ
session ๊ฐ์ฒด๊ฐ ์์ฑ๋์ด ์๋ฉธ๋ ๋๊น์ง (์์ฒญ์ด ํ๋๊ฐ ์๋๋ผ ์ฌ๋ฌ ๊ฐ์ ์์ฒญ์ด ๋ค์ด์๋ ๊ณ์ ๋จ์์๋)
์ํ์ ์ง๋ฅผ ํ ๋ ์ฌ์ฉํ๋ scope,
HttpSession
-
Application : ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด ์์๋๊ณ ์ข ๋ฃ๋ ๋๊น์ง ๋ณ์๊ฐ ์ ์ง๋๋ ๊ฒฝ์ฐ ์ฌ์ฉ
ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ฑ๋์ด ์ด๊ฒ ์๋ฉธ๋ ๋๊น์ง
ServletContext (์์ ใ )
2) page scope
Page Scope
-
PageContext ์ถ์ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ค.
-
JSP ํ์ด์ง์์ pageContext๋ผ๋ ๋ด์ฅ ๊ฐ์ฒด๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
--> pageContext.setAttribute .getAttribute ์ด๋ ๊ฒ ์ฌ์ฉ
-
forward๊ฐ ๋ ๊ฒฝ์ฐ ํด๋น Page scope์ ์ง์ ๋ ๋ณ์๋ ์ฌ์ฉํ ์ ์๋ค.
ํด๋ผ์ด์ธํธ ์ชฝ์์ ์์ฒญ์ ๋ณด๋์ ๋ ํ๋์ jsp๋ ์๋ธ๋ฆฟ์ด๋ ์์ฒญ์ ๋ฐ์์ ๊ฑฐ๋ ๋ง์ด์์ ์ด ํด๋น ์์ฒญ์ ๋ฐ์ ํ์ด์ง ํ๋๋น pageContext๊ฐ ํ๋์ฉ ์๊ธฐ๋ ๊ฑฐ๋ค, ์ด ํ์ด์ง๊ฐ ์ด์ฉ๋ ๋๊น์ง๋ง
-
์ฌ์ฉ๋ฐฉ๋ฒ์ Application scope๋ Session scope, request scope์ ๊ฐ๋ค. ์ด๊ฒ ๋ญ๋ฐ?
-
๋ง์น ์ง์ญ๋ณ์์ฒ๋ผ ์ฌ์ฉ๋๋ค๋ ๊ฒ์ด ๋ค๋ฅธ Scope๋ค๊ณผ ๋ค๋ฆ ๋๋ค.
-
jsp์์ pageScope์ ๊ฐ์ ์ ์ฅํ ํ ํด๋น ๊ฐ์ ELํ๊ธฐ๋ฒ ๋ฑ์์ ์ฌ์ฉํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
-
์ง์ญ ๋ณ์์ฒ๋ผ ํด๋น jsp๋ ์๋ธ๋ฆฟ์ด ์คํ๋๋ ๋์์๋ง ์ ๋ณด๋ฅผ ์ ์งํ๊ณ ์ ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
pageContext๋ผ๋ ์ถ์ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ค. >> JSPํ์ด์ง์์๋ pageContext๋ผ๋ ๋ด์ฅ๊ฐ์ฒด๋ก์ฌ์ฉ ๊ฐ๋ฅ.
์ฐจ์ด์
request๊ฐ์ฒด๋ ์์ฒญ์ด ๋ค์ด์์ ๋ request๊ฐ์ฒด๊ฐ ํ๊ฐ ์๊ธฐ๊ณ , ์์ฒญ์ด ๋๋ ๋ ๊น์ง ์ ์ง๋์ง๋ง, pageContext๋ 1๋ฒ์ ์์ฒญ์ ๋ฐ์๋ค๋ผ ํ์ ๋ ์์ฒญ ๋ฐ์ ํ์ด์ง ํ๋๋น pageContext๊ฐ ํ๊ฐ์ฉ ์๊ธด๋ค.(์ด ํ์ด์ง๊ฐ ์ด์ฉ๋ ๋ ๊น์ง๋ง)
>> forward๋๋ ๊ฒฝ์ฐ page scope์ ์ง์ ๋ ๋ณ์๋ ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ๋ค.
์ง์ญ๋ณ์์ฒ๋ผ ์ฌ์ฉ๋๋ค๋ ๊ฒ์ด ๋ค๋ฅธ scope์๋ ๋ค๋ฅด๋ค.
3) request scope
Request Scope
-
http ์์ฒญ์ WAS๊ฐ ๋ฐ์์ ์น ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ตํ ๋๊น์ง ๋ณ์๊ฐ์ ์ ์งํ๊ณ ์ ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
-
HttpServletRequest ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ค.
-
JSP์์๋ request ๋ด์ฅ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ค.
-
์๋ธ๋ฆฟ์์๋ HttpServletRequest ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ค. (doGet doPost ๋ฉ์๋ ์์ ์ธ์๋ก ๋ค์ด์์๋ ํด๋น ๊ฐ์ฒด์ ๋ ํผ๋ฐ์ค ๋ณ์๋ฅผ ์ฌ์ฉ)
-
๊ฐ์ ์ ์ฅํ ๋๋ request ๊ฐ์ฒด์ setAttribute()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
-
๊ฐ์ ์ฝ์ด ๋ค์ผ ๋๋ request ๊ฐ์ฒด์ getAttribute()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
-
forward ์ ๊ฐ์ ์ ์งํ๊ณ ์ ์ฌ์ฉํ๋ค.
-
์์์ forward์ ๋ํ์ฌ ๋ฐฐ์ธ ๋ forward ํ๊ธฐ ์ ์ request ๊ฐ์ฒด์ setAttribute() ๋ฉ์๋๋ก ๊ฐ์ ์ค์ ํ ํ, ์๋ธ๋ฆฟ์ด๋ jsp์๊ฒ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฌํ์ฌ ๊ฐ์ ์ถ๋ ฅํ๋๋ก ํ์๋๋ฐ ์ด๋ ๊ฒ ํฌ์๋ ๋๋ ๋์ ๊ฐ์ด ์ ์ง๋๋ ๊ฒ์ด Request scope๋ฅผ ์ด์ฉํ๋ค๊ณ ํฉ๋๋ค.
4) session scope
Session Scope
-
์น ๋ธ๋ผ์ฐ์ ๋ณ๋ก ๋ณ์๋ฅผ ๊ด๋ฆฌํ๊ณ ์ ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
-
์น ๋ธ๋ผ์ฐ์ ๊ฐ์ ํญ ๊ฐ์๋ ์ธ์ ์ ๋ณด๊ฐ ๊ณต์ ๋๊ธฐ ๋๋ฌธ์, ๊ฐ๊ฐ์ ํญ์์๋ ๊ฐ์ ์ธ์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ ์ ์๋ค. (๋ค๋ฅธ ์ฐฝ์ด์ง๋ง ๋ก๊ทธ์ธ ์ ๋ณด๋ ์ ์ง๋๋ ๊ฒ์ฒ๋ผ)
-
HttpSession ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ค.
-
JSP์์๋ session ๋ด์ฅ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ค.
-
์๋ธ๋ฆฟ์์๋ HttpServletRequest์ getSession()๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ session ๊ฐ์ฒด๋ฅผ ์ป๋๋ค.
-
๊ฐ์ ์ ์ฅํ ๋๋ session ๊ฐ์ฒด์ setAttribute()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค. (๋ค๋ฅธ ์ค์ฝฅ ๋ชจ๋)
-
๊ฐ์ ์ฝ์ด ๋ค์ผ ๋๋ session ๊ฐ์ฒด์ getAttribute()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.(๋ค๋ฅธ ์ค์ฝฅ ๋ชจ๋)
-
์ฅ๋ฐ๊ตฌ๋์ฒ๋ผ ์ฌ์ฉ์๋ณ๋ก ์ ์ง๊ฐ ๋์ด์ผ ํ ์ ๋ณด๊ฐ ์์ ๋ ์ฌ์ฉํ๋ค.
ํด๋ผ์ด์ธํธ๋ ๋ธ๋ผ์ฐ์ ๋ค. ํด๋ผ์ด์ธํธ๋ง๋ค ํ๋์ ๊ฐ์ฒด(๊ณต๊ฐ)๋ฅผ ๋ง๋ค์ด์ ๊ด๋ฆฌ(์ ์ง)ํ๋ ๊ฒ์ด ์ธ์ .
์ํ ์ ๋ณด๋ฅผ ์ ์งํ๊ธฐ ์ํด ์ฌ์ฉ
5) application scope
Application Scope
-
์น ์ดํ๋ฆฌ์ผ์ด์ ์ด ์์๋๊ณ ์ข ๋ฃ๋ ๋๊น์ง ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
-
ServletContext ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ค.
-
jsp์์๋ application ๋ด์ฅ ๊ฐ์ฒด๋ฅผ ์ด์ฉํ๋ค.
int value = (int)application.getAttribute("value");
value += 2;
application.setAttribute("value", value);
-
์๋ธ๋ฆฟ์ ๊ฒฝ์ฐ๋ getServletContext()๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ application๊ฐ์ฒด๋ฅผ ์ด์ฉํ๋ค.
ApplicationScope01.java
ServletContext application = getServletContext();
int value = 1;
application.setAttribute("value", value);
ApplicationScope02.java
ServletContext application = getServletContext();
try {
int value = (int)application.getAttribute("value");
value++;
application.setAttribute("value", value);
-
์น ์ดํ๋ฆฌ์ผ์ด์ ํ๋๋น ํ๋์ application๊ฐ์ฒด๊ฐ ์ฌ์ฉ๋๋ค.
-
๊ฐ์ ์ ์ฅํ ๋๋ application๊ฐ์ฒด์ setAttribute()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
-
๊ฐ์ ์ฝ์ด ๋ค์ผ ๋๋ application๊ฐ์ฒด์ getAttribute()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
-
๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ๊ณตํต์ผ๋ก ์ฌ์ฉํด์ผ ํ ๊ฐ๋ค์ด ์์ ๋ ์ฌ์ฉํ๋ค.
ํ๋ก์ ํธ ํ๋๋ฅผ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. firstWeb, exam25, exam31 ๊ฐ๊ฐ ํ๋ ์ฉ
์ค์ต์ฝ๋
ApplicationScope01.java
package examples;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ApplicationScope01
*/
@WebServlet("/ApplicationScope01")
public class ApplicationScope01 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ApplicationScope01() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
ServletContext application = getServletContext();
int value = 1;
application.setAttribute("value", value);
out.println("<h1>value : " + value + "</h1>");
}
}
ApplicationScope02.java
@WebServlet("/ApplicationScope02")
public class ApplicationScope02 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ApplicationScope02() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
ServletContext application = getServletContext();
try {
int value = (int)application.getAttribute("value");
value++;
application.setAttribute("value", value);
out.println("<h1>value : " + value + "</h1>");
}catch(NullPointerException ex) {
out.println("value๊ฐ ์ค์ ๋์ง ์์ต๋๋ค.");
}
}
}
applicationscope01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
try{
int value = (int)application.getAttribute("value");
value = value + 2;
application.setAttribute("value", value);
%>
<h1><%=value %></h1>
<%
}catch(NullPointerException ex){
%>
<h1>์ค์ ๋ ๊ฐ์ด ์์ต๋๋ค.</h1>
<%
}
%>
</body>
</html>
'Spring > Boost Course Web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
3.2 Spring Test (0) | 2020.11.19 |
---|---|
3.1 Spring Core (0) | 2020.11.19 |
2.6 JSTL & EL (0) | 2020.11.19 |
2.4 JSP (0) | 2020.11.19 |
2.3 Servlet (0) | 2020.11.19 |
2.2 ์น ๊ฐ๋ฐํ๊ฒฝ ์ค์ (0) | 2020.11.19 |