Web
My error page
GOD03219
2018. 10. 23. 20:29
HTTP 요청 발생 시 클라이언트 측과 서버측에서 다양한 에러가 날 가능성이 있다.
내 서버에 접속하려는 클라이언트들에게 기존의 에러페이지 대신 내가 만든 에러페이지를 보여주고 싶다면?
나는 이클립스 환경에서 나만의 에러 페이지를 만들어 보았다.
에러페이지를 만드는 방법은 두 가지가 있는데,
첫번째 방법은 지시어를 이용한 방법이다.
에러가 발생할 가능성이 있는 페이지 상단에 <%@ page errorPage="my404error.jsp" %> 를 써준다.
에러 발생 시 my404error.jsp 페이지를 보여주겠다!라는 뜻
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page errorPage="my404error.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<% i %> <!-- 500 에러 -->
<% int j=9/0; %> <!-- 404 에러 -->
</body>
</html> |
cs |
그리고 my404error.jsp를 가보자.
<%@ page isErrorPage="true" %> 해당 페이지를 에러페이지로 설정하겠다.
<% response.setStatus(200); %>
응답코드를 200으로 설정해준다.
하지 않으면 에러 발생시 내가 만든 페이지가 안보이고 해당 에러 페이지가 보인다.
my404error.jsp의 출력결과를 그대로 보여주기 위해서 응답코드 지정해주기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 |
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page isErrorPage="true" %>
<% response.setStatus(200); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<center>
<h1>내가 만든 에러페이지</h1>
<hr>
<h2> 404 에러 입니다!</h2>
<hr>
<div>
클라이언트 에러 응답<br>
404 Not Found<br>
서버는 요청받은 리소스를 찾을 수 없습니다.
브라우저에서는 알려지지 않은 URL을 의미합니다.
</div>
<%=exception.getMessage() %>
</center>
</body>
</html> |
cs |
두번째 방법은 web.xml에 에러페이지를 매핑해주는 것이다.
500번 에러 발생시 my500error.jsp를 띄우겠다!
1
2
3
4
5
6
7 |
<error-page>
<error-code>500</error-code>
<location>/my500error.jsp</location>
</error-page> |
cs |
my500error.jsp 파일도 my404error.jsp와 다를 것 없다. 단지 매핑 방법이 다를뿐이다~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 |
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page isErrorPage="true" %>
<% response.setStatus(200); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<center>
<h1> 500 에러 입니다!! 삐삐</h1>
<hr>
<div>
서버 오류<br>
500 Internal Server Error<br>
서버에 오류가 발생해 작업을 수행할 수 없을 때 뜬다. <br>
보통 설정이나 퍼미션 문제. <br>
아니면 HTTP 요청을 통해 호출한 문서가 실제 HTML 문서가 아니라 JSP, PHP, 서블릿 등의 프로그램일 경우 그 프로그램이 동작하다 세미콜론 빼먹는 등의 <br>
각종 에러로 비정상종료하는경우 이 응답코드를 보낸다.<br>
<%=exception.getMessage() %>
</div>
</center>
</body>
</html> |
cs |