- 내장 객체(implicit object) : JSP페이지에서 사용할 수 있도록 JSP 컨테이너에 미리 정의된 객체
내장 객체 | 설명 | 반환 유형 |
request | 웹 브라우저의 HTTP 요청 정보 저장 | javax.servlet.http.HttpServletRequest |
response | 웹 브라우저의 HTTP요청에 대한 응답 정보 저장 | javax.servlet.http.HttpServletResponse |
out | JSP페이지에 출력할 내용을 담고 있는 출력 스트림 | javax.servlet.jsp.jsp.jspWriter |
session | 웹 브라우저의 정보 유지하기 위한 세션 정보 저장 | javax.servlet.http.HttpSession |
application | 웹 애플리케이션의 콘텍스트 정보 저장 | javax.servlet.ServletContext |
pageContext | JSP 페이지의 정보 저장 | javax.servlet.jsp.PageContext |
page | JSP 페이지를 구현한 자바 클래스로 JSP페이지 자체를 나타냄 | java.lang.Object |
config | JSP 페이지의 설정 정보 저장 | javax.servlet.ServletConfig |
exception | JSP 페이지의 예외발생 처리 | java.lang.Throwable |
scope(속성영역)
- 속성 : 각각의 내장 객체가 존재하는 동안 JSP 페이지 사이에 정보 주고받거나 공유하는데 사용
영역 | 내장객체 | 속성의 유효 범위 |
page | pageContext | 해당 페이지가 클라이언트에게 서비스를 제공하는 동안 유효 |
request | request | 클라이언트의 요청이 처리되는 동안 유효 |
session | session | 세션이 유지되는 동안 유효 |
application | application | 웹 애플리케이션이 실행되고 있는 동안 유효 |
- 속성 처리 메소드의 종류
메소드 | 설명 | 반환 유형 |
setAttribute(String name, Object value) | 해당 내장 객체의 속성 이름 name인 속성 값을 value 저장 | void |
getAttribute(String name) | 해당 내장 객체의 속성 이름이 name인 속성 값 가져옴 | Object |
removeAttribute(String name) | 해당 내장 객체의 속성 이름이 name인 속성 삭제 | void |
getAttributeNames() | 해당 내장 객체의 모든 속성 이름 가져옴 (단. pageContext내장 객체는 메소드 제공 안함) |
java.utill.Enumeration |
request 내장객체
- 웹 브라우저에서 서버의 JSP 페이지로 전달하는 정보 저장
request.isRequestedSessionIdValid()
- request객체에 포함된 클라이언트 세션이 유효한지 확인
if(request.isRequestedSessionIdValid() == true){
out.print("세션이 유효합니다");
}else{
out.print("세션이 유효하지 않습니다.");//(O)
}
response 내장 객체
redirect : 새로운 url 요청
- 값의 변경, 삭제 등록 끝난 후 이동할 때 사용
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Impicit Objects(내장객체)</title>
</head>
<body>
<%//스크립틀릿
//redirect : 새로운 URL 이동
response.sendRedirect("http://www.google.com");
%>
</body>
</html>
out
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<%
out.print("<p>"+(3+2)+"</p>");
%>
</body>
</html>
session 내장 객체
- 세션은 웹서버 저장
session.setAttribute("name",value);
- 값 저장
session.setAttribute("name", value);
session.getAttribute("name");
- name인 속성 값을 Object 형 반환 ⇒ Object 형이므로 반드시 형 반환 사용해야 한다
- 해당 속성 이름 없을때 null 반환
session.getAttribute("name");
session.invalidate();
- 모든세션 속성 제거
- 창닫기 버튼 클릭시 로그아웃하면서 session 정보 삭제
session.invalidate();
session 유효시간 변경
- 세션 설정된 유효시간 기본값 : 1800초(30분)
session.getMaxInactiveInterval();
- 유효 시간 변경
session.setMaxInactiveInterval(60*60); //3600초로 변경
time = session.getMaxInactiveInterval();// 초단위
out.print("<p>세션 유효시간 :" + time +"초</p>");
session.getId()
out.print("세션id:"+session.getId()+"<br />");
session 저장되어 있는 값 출력
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>session</title>
</head>
<body>
<%//스크립틀릿
//session.setAttribute(이름, 값)
//session.setAttribute("userID", user_id); //admin
//session.setAttribute("userPW", user_pw); //java
String name;String value;
int i = 0;
Enumeration en = session.getAttributeNames(); //userID, userPW 열거형
//세션 속성 이름이 있을때까지 반복
//en.hasMoreElements() : fetch
while(en.hasMoreElements()){ //2회 반복
name = en.nextElement().toString(); //userID 다음에는 userPW
value = session.getAttribute(name).toString(); //session.getAttribute("userId")
out.print("설정된 세션 속성 명 [" + i + "] : " + name + "<br />");
out.print("설정된 세션 속성 값 [" + i + "] : " + value + "<br />");
i++;
out.print("<hr />");
}
%>
</body>
</html>
session 유효 확인
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>session</title>
</head>
<body>
<!-- session01.jsp와 session01_process.jsp를 먼저 수행 후 -->
<!--
session.setAttribute("userID", user_id); //admin
session.setAttribute("userPW", user_pw); //java
-->
<h4>-----세션을 삭제하기 전-----</h4>
<%//스크립틀릿
String user_id = (String)session.getAttribute("userID"); //admin
String user_pw = (String)session.getAttribute("userPW"); //java
//request객체에 포함된 클라이언트 세션이 유효한지 체킹
if(request.isRequestedSessionIdValid() == true){
out.print("세션이 유효합니다"); //(O)
}else{
out.print("세션이 유효하지 않습니다.");
}
//세션에 저장된 모든 세션 속성 삭제*******
session.invalidate();
%>
<h4>-----세션을 삭제하기 후-----</h4>
<%//스크립틀릿
//request객체에 포함된 클라이언트 세션이 유효한지 체킹
if(request.isRequestedSessionIdValid() == true){
out.print("세션이 유효합니다");
}else{
out.print("세션이 유효하지 않습니다.");//(O)
}
%>
</body>
</html>
'JAVA > JSP' 카테고리의 다른 글
Common-FileUpload (vo 없는 버전) (0) | 2024.04.09 |
---|---|
post 보낸 파라미터 확인 방법 (0) | 2024.04.08 |
디렉티브 태그 (0) | 2024.04.05 |
jsp 방문수 횟수 늘리기 (0) | 2024.04.05 |
스크립트 태그의 종류 (0) | 2024.04.03 |