반응형
내장 객체(내장 변수)
-JSP가 서블릿으로 변환 시 컨테이너가 자동으로 생성시키는 서블릿 멤버변수.
-내장 객체는 JSP에서 별다른 선언 없이 바로 사용 가능한(많이 사용되는 기능을 정의한)객체를 의미한다.
-내장 객체는 JSP가 변환된 Java 파일 안에 _jspService( )메서드 내에서 선언되는 지역 변수 => 선언문 안에서 내장 객체 사용 불가
<변환된 java 파일 경로>
워크스페이스_경로\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\프로젝트명
영역(Scope)
1. page 영역 : 동일한 페이지에서만 공유됨, 페이지 벗어나면 소멸됨.
2. request 영역 : 하나의 요청에 의해 호출된 페이지와 포워드(요청 전달)된 페이지까지 공유됨.
새로운 페이지를 요청(페이지 이동)하면 소멸됨.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setAttribute("name", "이순신");
request.setAttribute("address", "서울시 강남구");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>첫 번째 JSP</title>
</head>
<body>
<%
RequestDispatcher dispatcher = request.getRequestDispatcher("request2.jsp");
dispatcher.forward(request, response);
%>
</body>
</html>
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String name = (String)request.getAttribute("name");
String address = (String)request.getAttribute("address");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>두 번째 JSP</title>
</head>
<body>
이름은 <%=name%>입니다.<br>
주소는 <%=address %>입니다.<br>
</body>
</html>
|
cs |
주소 변하지 않음 -> forward됨.
★ 3. session 영역 : 클라이언트가 처음 접속한 후 웹 브라우저를 닫을 때까지 공유됨.
포워드나 페이지 이동 시에도 영역은 소멸되지 않음.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
String name = (String)session.getAttribute("name"); //session 객체에 바인딩된 name값 가져옴.
session.setAttribute("address", "서울시 서초구"); //session 객체에 address라는 이름으로 새롭게 바인딩함.
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>내장 객체 테스트1</title>
</head>
<body>
이름은 <%=name %> 입니다.<br>
<a href="session2.jsp">[두 번째 페이지로 이동]</a>
</body>
</html>
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
String name = (String)session.getAttribute("name");
String address = (String)session.getAttribute("address");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>내장 객체 테스트2</title>
</head>
<body>
이름은 <%=name %> 입니다.<br>
주소는 <%=address %>입니다.
</body>
</html>
|
cs |
다른 브라우저에서 실행하면 주소 null값으로 나옴. (세션이기 때문에)
★ 4. application 영역 : 한 번 저장되면 웹 애플리케이션이 종료될 떄까지 유지됨.
->서버가 다운되지 않는다면 언제까지든 공유되는 영역.
가장 넓은 범위
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
session.setAttribute("name", "이순신");
application.setAttribute("address", "서울시 서초구");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>내장 객체 scope 테스트1</title>
</head>
<body>
<h1>이름과 주소를 저장합니다.</h1>
<a href="appTest2.jsp">[두 번째 웹 페이지로 이동]</a>
</body>
</html>
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String name = (String)session.getAttribute("name");
String address = (String)application.getAttribute("address");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>내장 객체 scope 테스트1</title>
</head>
<body>
이름은 <%=name %> 입니다.<br>
주소는 <%=address %> 입니다.
</body>
</html>
|
cs |
다른 브라우저에서도 null값이 아닌 원래 address값이 유지됨.
(범위가 가장 넓은 application)
이름은 session객체이기 때문에 null값으로 나옴.
반응형
'📒 education archive > 📍Servlet, JSP' 카테고리의 다른 글
[국비학원 기록/JSP] 세션(Session), 데이터베이스(DB) 연동 로그인 구현 (0) | 2021.12.09 |
---|---|
[국비학원 기록/JSP] 쿠키(Cookie), 팝업창, 로그인 아이디 저장 구현하기 (0) | 2021.12.08 |
[국비학원 기록/JSP] 스크립트 요소, 선언문, 스크립틀릿, 표현식, 주석문 (0) | 2021.12.07 |
[국비학원 기록/JSP] JSP 구성 요소, 디렉티브 태그 종류 (0) | 2021.12.07 |
[국비학원 기록/Servlet] 서블릿 리스너(Listener), 로그인 접속자 수 카운트 (0) | 2021.12.07 |