<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%-- page 영역(pageContext)[1개 JSP파일] <=
request 영역(request)[1개 화면에 해당되는 크기] <
session 영역(session)[[웹브라우저영역] <
application 영역[그 상위버전 새 브라우저 열어도 남아있음, 서버에 남아 있어서](application)
--%>
<h5> 4개의 영역과 속성 알아보기</h5>
<% application.setAttribute("testId", "Yongmi"); %>
<%-- testId(속성) = "Yongmi"
pageContext는 jsp 한 페이지기 때문에 범위를 굳이 안 해줘도 된다 --%>
<form method = "post" action = "second.jsp">
<input type ="submit" value = "2번째 페이지로">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1> 2번째 페이지</h1>
<h3> setAttribute 내용 : <%= (String)application.getAttribute("testId") %> </h3>
<h3> setAttribute 내용 : <%= (String)application.getAttribute("wrongAttribute") %> </h3>
<%-- index에 선언한 session 범위 testId를 가져올때 사용 법 --%>
</body>
</html>
지금까지 name을 이용해 getParameter로 값을 받았습니다.
이번에는 변수를 선언하는 거처럼 값을 넘기는 걸 배우도록 하겠습니다.
JSP에는 페이지에 대한 영역이라는게 있는데 총 4개가 있습니다.
page 영역(pageContext)[1개 JSP파일] <=
request 영역(request)[1개 화면에 해당되는 크기] <
session 영역(session)[[웹브라우저영역] <
application 영역[그 상위버전 새 브라우저 열어도 남아있음, 서버에 남아 있어서](application)
📝1. page 영역
page영역으로 값을 선언하면 그 값은 그 JSP페이지에서만 남아 있습니다.
굳이 이러한 방법을 쓸 필요가 없이 그냥 스크립트릿으로 선언하던가 선언문으로 선언하면 되기 때문에
이 영역은 잘 안 쓰이게 됩니다.
📝2. request 영역
request영역으로 값을 선언하면 그 값은 1개 화면에 그 변수를 쓸 수 있습니다.
그 화면에는 JSP파일이 여러개로 만들어 졌을수도 1개로 이루어졌을 수도 있습니다. (모듈화 이야기)
📝3. session 영역
session영역으로 값을 선언하면 그 값은 웹브라우저내에 계속 남아있습니다.
웹브라우저 영역이라는 건 구글 크롬을 키고 새 페이지를 열고 어디 페이지를 가든 남아있다는 소리입니다.
예시를 들자면 로그인 해놓고 다른 작업을 하다 새페이지를 키고 다시 거기로 들어가면 로그인이 되어있는 거라고
이해하시면 이해하기 쉬울 것입니다.
📝4. application 영역
application영역으로 값을 선언하면 그 값은 서버내에 계속 남아있습니다.
서버를 끄지 않는 이상 그 값은 계속 남아있죠 예를 들자면 크롬을 껏다켜도 서버가 켜져있기 때문에
그 값은 사라지지 않습니다. 우리가 지금 하는 작업으로는 톰캣을 껐다켜야지면 그 값이 사라지게 되는 것이죠
이제 선언하는 법에 대해서 알아보도록 하겠습니다.
영역.setAttribute("속성명", "속성값");
<% application.setAttribute("testId", "Yongmi"); %>
이런식으로 선언하면 됩니다.
(형변환)영역.getAttribute("속성명")
<%= (String)application.getAttribute("testId") %>
이렇게 속성값을 출력하거나 가져올 수있습니다.
또한 만약 속성명이 없다고 해도 에러가 나오는게 아니라 null값을 출력해줍니다.
'[Java] > [JSP, Servlet]' 카테고리의 다른 글
[JSP, Servlet] DB연결 (JDBC, ResultSet, executeQuery, executeUpdate) (0) | 2021.07.30 |
---|---|
[JSP, Servlet] 자바빈 (0) | 2021.07.30 |
[JSP, Servlet] include file, <jsp:include page> (0) | 2021.07.29 |
[JSP, Servlet] forward, sendRedirect (0) | 2021.07.28 |
[JSP, Servlet] getParameter, getParameterValues (0) | 2021.07.28 |