○ JSP 내부객체 (참고 : JSP내부객체)
- JSP페이지가 서블릿에서 변환될 때(.class) JSP컨테이너(Tomcat웹서버)가 자동으로 제공
- JSP페이지 내에서 제공하는 특수한 레퍼런스(참조) 타입의 변수
- 객체 생성 없이 바로 사용할 수 있는 JSP의 객체
- 내부객체 종류
① out
② pageContext : JSP페이지 자체의 Context 제공
③ request : 요청에 관한 정보
④ response : 응답에 관한 정보
⑤ session : 요청에 관한 Context 제공
⑥ application : 서블릿 및 외부 환경 정보 Context 제공
○ Scope
- 웹프로젝트에서 페이지들 간에 값을 공유하기 위해 사용
① pageContext : 현재 페이지 내에서만 유효, 기본값
② request : 부모페이지와 자식페이지에서만 유효
③ session : 프로젝트의 모든 페이지에서 유효 (사용자 개별 접근, 시간)
④ application : 프로젝트의 모든 페이지에서 유효 (모든 사용자 접근, 서버정보)
- application과 session : 웹프로젝트를 헬스장으로 본다면 application은 헬스장 공용공간, session은 개인사물함
○ JSP 내부변수
- 내부변수 선언형식 : scope.setAttribute("변수명", 값)
pageContext.setAttribute("kor", 100);
request.setAttribute("eng", 200);
session.setAttribute("mat", 300);
application.setAttribute("uname", "손흥민");
- 내부변수 값 가져오기 : scope.getAttribute("변수명") → 리턴값형식 Object
pageContext.getAttribute("kor");
request.getAttribute("eng");
session.getAttribute("mat");
application.getAttribute("uname");
- 내부변수 삭제하기 : scope.getAttribute("변수명")
pageContext.removeAttribute("kor");
request.removeAttribute("eng");
session.removeAttribute("mat");
application.removeAttribute("uname");
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>scopeTest</title>
</head>
<body>
<h3>내부객체 및 내부변수</h3>
<%
//각 내부변수에 값 올리기
pageContext.setAttribute("kor", 100);
request.setAttribute("eng", 200);
session.setAttribute("mat", 300);
application.setAttribute("uname", "손흥민");
//내부변수 값 가져오기
out.println(pageContext.getAttribute("kor"));
out.println(request.getAttribute("eng"));
out.println(session.getAttribute("mat"));
out.println(application.getAttribute("uname"));
out.print("<hr>");
Object obj=pageContext.getAttribute("kor"); //리턴값 Object
int kor=(int)obj //형변환하여 사용
int eng=(int)request.getAttribute("eng");
int mat=(int)session.getAttribute("mat");
String uname=(String)application.getAttribute("uname");
out.println("1)pageContxt 영역 : " + kor);
out.println("2)request 영역 : " + eng);
out.println("3)session 영역 : " + mat);
out.println("4)application 영역 : " + uname);
out.print("<hr>");
//내부변수 삭제
pageContext.removeAttribute("kor");
request.removeAttribute("eng");
session.removeAttribute("mat");
application.removeAttribute("uname");
//null값 반환
out.print("<p> SCOPE 영역 변수 삭제 후 </p>");
out.println("1)pageContxt 영역 : " + pageContext.getAttribute("kor"));
out.println("2)request 영역 : " + request.getAttribute("eng"));
out.println("3)session 영역 : " + session.getAttribute("mat"));
out.println("4)application 영역 : " + application.getAttribute("uname"));
%>
</body>
</html>
'Backend > JAVA_WEB' 카테고리의 다른 글
10. JavaBeans를 이용한 성적 테이블 CRUD 게시판 만들기 ② (성적 상세보기, 삭제, 수정) (0) | 2022.07.17 |
---|---|
09. JavaBeans를 이용한 성적 테이블 CRUD 게시판 만들기 ② (성적입력, 성적목록, 공통코드 처리) (0) | 2022.07.15 |
08. JavaBeans를 이용한 성적 테이블 CRUD 게시판 만들기 ① (DBopen, DBclose, DTO, DAO) (0) | 2022.07.06 |
07. JSP, 자바빈즈 (JavaBeans, 액션태그) (0) | 2022.07.05 |
06. JSP, DB연동해서 성적 테이블 CRUD 게시판 만들기 ② (성적 삭제, 수정) (0) | 2022.07.04 |
댓글