- 지시어 : <%@ 문서의 상단에서 지시할 내용 %>
- 지시어는 페이지의 속성, 정보 등을 선언 또는 지시하는 역할을 하는 부분으로 jsp파일의 최상단에 위치
https://sas-study.tistory.com/202 <참고
- error
- JSP는 실행 도중 Exception이 발생하면 원래뜨는 에러화면 대신에 지정한 JSP 페이지를 보여줄 수 있는 기능을 제공
- Exception 발생 시 보여줄 JSP 페이지는 page 디렉티브의 errorPage 속성을 사용해서 지정
에러발생 시 에러나오는 페이지로 이동
- isErrorPage 속성을 true로 선언해주면 해당 jsp는 자신이 에러페이지라는 것을 알게 됨
<에러페이지>
referer 설명
<%@ 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>Error연습 시작페이지</h1>
<hr>
<a href ="0609error_divide.jsp">0으로 나누는 페이지 가기</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- 에러 발생시 아래페이지로 이동하겠다 --%>
<%@ page errorPage ="0609error.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--강제로 에러 발생. 0으로 나눌 수 없는데 0으로 나누는 코드씀 --%>
<%=2/0 %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- 에러 발생 시 true로 실행시킨다 --%>
<%@ page isErrorPage ="true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//요청 header 에서 referer을 가져오고
//http://localhost:8090/ex00/0609error_ex1.jsp
String url = request.getHeader("referer");
//주소구분
String[] array_url = url.split("/");
//0609error_ex1.jsp 마지막꺼 가져오기
String prevPage = array_url[array_url.length -1];
%>
다음과 같은 에러가 발생했슴다
<%=exception.getMessage()%>
<hr>
<a href="<%=prevPage %>">오류나기 전 페이지로 가기</a>
</body>
</html>
https://codevang.tistory.com/197 <참고
- include : 다른 페이지를 현재 페이지에 삽입
*이렇게 footer부분이 모든 파일에 다 들어간다면 include로 삽입해주는것이 좋다 왜?why?
if) 폰 번호가 변경돼서 수정해야 한다면 sub3처럼 직접 footer부분을 넣어줬을 경우 파일 하나 하나 들어가서 다 수정해야 하는데 include로 하면 footer파일만 수정해주면 전부다 수정되니 편하다
그럼 같은 파일로 인식이 되는건가? test해보자
sub1페이지에 pageContext를 지정해주고 footer에서 get으로 가져와지나 해보자

가져와진다 하나의 파일로 인식이 대는군
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
pageContext.setAttribute("name", "짱구");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>sub1 페이지</h1>
<hr>
<a href="0609sub2.jsp">sub2페이지로 가기</a>
<%@include file="0609footer.jsp"%>
</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>sub2페이지</h1>
<hr>
<a href="0609sub3.jsp">sub3페이지로 가기</a>
<%@ include file="0609footer.jsp" %>
</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>sub3페이지</h1>
<hr>
<a href="0609sub1.jsp">sub1페이지로 가기</a>
<hr>
<!-- 만약 메일주소 바뀌면 1, 2, 3 다 바꿔줘야해서 귀찮다.. -->
<div id="copyright">
All contents CopyRight 2023 Green Inc, all right reserved<br>
Contact mail : aaa@green.com Tel:+82 000 000 000
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<hr>
<div id="copyright">
All contents CopyRight 2023 Green Inc, all right reserved<br>
Contact mail : aaa@green.com Tel:+82 000 000 000<br>
<!-- footer 같은 페이지로 인식해주는구나 sub1에 있는 녀석 이어진다 -->
<%=pageContext.getAttribute("name") %>
</div>
'JSP > 이론' 카테고리의 다른 글
jsp:forward (0) | 2023.06.13 |
---|---|
Enumeration/session/ HttpSession (0) | 2023.06.13 |
주석/JSP Page, Request, Session, Application (0) | 2023.06.08 |
JSP/<%! %> 선언문 /<% %> 스크립틀릿 / <%= %> 표현식 (0) | 2023.06.08 |
쿼리스트링 (0) | 2023.06.07 |