728x90
3-6. Scope
scopeMain.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">
<a href="scopeProc.jsp?way=redirect">redirect</a>
<a href="scopeProc.jsp?way=forward">forward</a>
scopeProc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.net.URLEncoder"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
pageContext.setAttribute("scope", "페이지"); //redirect: 페이지 넘어가면 값이 사라짐, forward: 페이지 넘어가면 값이 사라짐
request.setAttribute("scope", "리퀘스트"); //redirect: 페이지 넘어가면 값이 사라짐., forward: 값이 살아있음
session.setAttribute("scope", "세션"); //둘다 살아있음
application.setAttribute("scope", "애플리케이션"); //둘다 살아있음
String way = request.getParameter("way");
switch(way){
case "redirect": //처리를 한번만 할때
String userName = URLEncoder.encode("최한석","utf-8");
response.sendRedirect("scopeOut.jsp?userName="+userName); break;
case "forward" : //처러를 여러번해도 상관없을 때
%>
<jsp:forward page="scopeOut.jsp"/>
<%
}
%>
<%--
pageContext.setAttribute("scope", "페이지");
request.setAttribute("scope", "리퀘스트");
session.setAttribute("scope", "세션");
application.setAttribute("scope", "애플리케이션");
Redirect(세션, 애플리케이션)
Forward(리퀘스트, 세션, 애플리케이션)
scope(스코프): 접근범위
: page - 하나의 페이지에서만 적용 (디폴트) (현재페이지가 실행되는동안)
: request - 두개의 페이지에서 적용 (response가 클라이언트까지 갈때까지)
: session - 세션이 유지되는 동안 적용 (논리적인 연결이 유지되는 동안)
/ 로그인 동안 ex) 쇼핑몰 장바구니
/ 세션타임 동안 (기본 30분) ex) 은행 자동 로그아웃
/ 하나의 브라우저에서 : 브라우저가 다를 경우는 새로운 세션
: application - 서버가 유지되는 동안 적용 (현 애플리케이션이 실행되는 동안)
여러페이지에서 꺼내 써야할 때 request. session
페이지 이동 순서를 예측할 수 있다. request.
페이지 이동 순서를 예측할 수 없다. session.
--%>
scopeOut.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">
<%
String pageScope = (String)pageContext.getAttribute("scope");
String requestScope = (String)request.getAttribute("scope");
String sessionScope = (String)session.getAttribute("scope");
String applicationScope = (String)application.getAttribute("scope");
String way = request.getParameter("way");
String userName = request.getParameter("userName");
%>
<ul>
<li><b>page:</b> <%= pageScope%></li>
<li><b>request:</b> <%= requestScope%></li>
<li><b>session:</b> <%= sessionScope%></li>
<li><b>application:</b> <%= applicationScope%>
<li><b>parameter(way):</b> <%= way%></li>
<li><b>parameter(userName):</b> <%= userName%></li>
</ul>
728x90
'WEB > JSP' 카테고리의 다른 글
[JSP] ch04-01. Cookie (0) | 2017.11.15 |
---|---|
[JSP] ch03-07. Include3 (0) | 2017.11.14 |
[JSP] ch03-05. Forward Login (0) | 2017.11.13 |
[JSP] ch03-04. Redirect Login (0) | 2017.11.13 |
[JSP] ch03-02. Request (0) | 2017.11.13 |
댓글