기록하는 코더

[JSP] 디렉티브(Directives Tag) - Page 본문

JSP

[JSP] 디렉티브(Directives Tag) - Page

damda_di 2022. 12. 26. 14:53

이전에 썼던 디렉티브 태그를 이어서

 

[JSP] 디렉티브(Directives Tag) - Include

JSP의 태그 (스크립트 태그, 디렉티브 태그, 액션태그) 중 디렉티브 태그에 대해서 써보려고 한다. JSP 태그 스크립트 태그 디렉티브 태그 액션 태그 디렉티브 태그는 JSP 페이지를 어떻게 처리할

damdadi-dam.tistory.com

 

 

JSP 태그 스크립트 태그
디렉티브 태그
액션 태그

 

 

디렉티브 태그의 종류
Page 태그  <%@ page ...%> 
Include 태그 <%@ iclude ...%>
taglib 태그 <%@ taglib ...%> 

 

Page 태그는 JSP페이지에 대한 정보를 설정한다.

한글이 깨질 경우 page에서 인코딩 설정을 해줘야한다.

(default 설정은 'ISO-8859-1'이므로 한글 입력시 'UTF-8'로 변경해줘야함)

 

 

page 디렉티브 태그

  • pageEncoding
  • import
  • session
  • errorPage
  • isErrorPage
  • isELIgnored

 

page 태그로 session 설정을 바꿀 수 있다.

** session JSP 주요영역 (scope)

1. page 
=> 같은 JSP 페이지 내에서 유지
   내장객체 : page/Context
2. request
=> 하나의 요청 내 유지
   내장객체 : request 공유
3. session
=> 동일한 웹 브라우저 내 유지
   내장객체 : session 
4. application
=> 웹 브라우저 내 유지
   내장객체 : application 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.util.Date"%>
<%@ page session="true" %>
<!-- session="true" 기본(생략가능) / session="false" 세션객체를 사용안함 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Directives tag</title>
</head>
<body>
 	Today is <%=new Date() %>
 	<!-- import하지 않아도 경우 사용하려는 클래스 경로를 써주면 된다! -->
	<%-- Today is <%=new java.util.Date() %> --%>
	<%
		// 세션 내장 객체의 now 이름 속성의 값으로 현재 시각을 넣어줌
		session.setAttribute("now", new Date());
	%>
</body>
</html>

<%@ page session="true" %>
session="true"는 기본설정이므로 생략가능

session="false"를 하면 로그인, 인증을 못하게 됨 (거의 사용x)

 

▶출력결과

page_import.jsp 페이지에서 setAttribute한 값을 다른 페이지에서 확인 가능하다.

 

session은 같은 브라우저 내에서 값 유지

 

 

 

 

 

error가 발생하면 설정해둔 errorPage로 넘길 수도 있다.

error_page

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page errorPage="page_errorPage_error.jsp" %>
<!-- 오류 발생 시 page디렉티브의 errorPage 속성의 값으로 설정된 오류처리 JSP를 요청 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Directives Tag</title>
</head>
<body>
<% // 스크립틀릿 -> 지역변수 선언
	String str = null;
	// 오류발생(null을 toString())
	out.print(str.toString());
%>
<!-- 표현문 -> 지역변수에 할당된 데이터를 화면에 출력 -->
<%=str %>

</body>
</html>

null로 설정한 String을 출력해서 null point exception을 발생시켜 error 페이지를 확인한다.

 

 

☞ 이동할 error_page

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isErrorPage="true" %>
<!-- isErrorPage : 이 JSP페이지가 오류 페이지?
	false : 오류페이지 아님
	true : 오류페이지 맞음  
	-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>서비스 문제 발생</title>
</head>
<body>
<!--  /img : WebContent / img 폴더 -->
<img src="/img/errorPage.jpg" alt="errorPage.jpg"/><br><br>
<!-- 오류 타입 -->
<%=exception.getClass().getName() %><br><br>
<!-- 오류 메시지 -->
<%=exception.getMessage() %><br><br>

<%
exception.printStackTrace(new java.io.PrintWriter(out));
%>
</body>
</html>

isErrorPage="true"로 설정해서 exception객체를 사용할 수 있다. (false일 경우 사용 불가)

( 개발자가 디버깅할 때만 사용하고 서비스에 보여지는 화면에선 사용하지 않는다.)

 

 

미리 설정해둔 오류 페이지로 이동한다.

'JSP' 카테고리의 다른 글

[JSP] 회원가입창 만들기  (0) 2022.12.29
[JSP] request객체와 response 객체  (0) 2022.12.28
[JSP] JSP Template 만들기  (0) 2022.12.26
[JSP] 스크립트 태그  (0) 2022.12.26
[JSP] 디렉티브(Directives Tag) - taglib  (0) 2022.12.26