본문 바로가기
JSP

나만의 에러페이지 만들기

by jackypark 2022. 9. 16.

1. 에러 페이지 (Error Page)란?

에러 페이지를 화면에 그대로 노출시키면 웹 서버 관련 정보 및 데이터베이스의 이름, 데이터명, 등 민감한 정보들이 화면에 노출되기 때문에 에러가 발생한 경우 별도로 뜨는 페이지를 제작한다.

 

에러코드 종류는: 저번에 정리한 링크를 걸겠다.

https://jackycode.tistory.com/68

 

HTTP 상태코드

4XX : Client error responses 400번대의 코드들은 클라이언트가 서버에게 보낸 요청이 잘못된 경우이다. 이 상태 코드를 보면 높은 확률로 프론트에서 문제 발생한거니 프론트를 혼내면 된다고 한다. 400

jackycode.tistory.com

 

 

2. 에러 페이지 제작

 

web.xml에 밑에 코드처럼 만든다.

location 태그에서 에러 페이지의 경로를 작성해줍니다.

그리고 <exception type> 는 exception의 종류를 잡아서 실행할 에러 페이지를 지정할 수도 있습니다.

    <error-page>
        <error-code>404</error-code>
        <location>/error/error404.jsp</location>
    </error-page>
    <error-page>
        <error-code>429</error-code>
        <location>/error/error429.jsp</location>
    </error-page>
        <error-page>
        <error-code>500</error-code>
        <location>/error/error500.jsp</location>
    </error-page>
        <error-page>
        <error-code>502</error-code>
        <location>/error/error502.jsp</location>
    </error-page>
        <error-page>
        <error-code>508</error-code>
        <location>/error/error508.jsp</location>
    </error-page>
    	<error-page>
		<exception-type>java.lang.NullPointerException</exception-type>
		<location>/error/errorNullPointer.jsp</location>
	</error-page>

 

화면에 보여줄 페이지를 작성한다.

예시로 404 에러페이지랑 500 에러 페이지를 작성해서 만들었다.

<%@ page contentType="text/html; charset=utf-8" %>
<html>
<head></head>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
<style>
    .clearfix:before,
    .clearfix:after {
        display: table;

        content: ' ';
    }

    .clearfix:after {
        clear: both;
    }

    body {
        background: #f0f0f0 !important;
    }

    .page-404 .outer {
        position: absolute;
        top: 0;

        display: table;

        width: 100%;
        height: 100%;
    }

    .page-404 .outer .middle {
        display: table-cell;

        vertical-align: middle;
    }

    .page-404 .outer .middle .inner {
        width: 300px;
        margin-right: auto;
        margin-left: auto;
    }

    .page-404 .outer .middle .inner .inner-circle {
        height: 300px;

        border-radius: 50%;
        background-color: #ffffff;
    }

    .page-404 .outer .middle .inner .inner-circle:hover i {
        color: #39bbdb !important;
        background-color: #f5f5f5;
        box-shadow: 0 0 0 15px #39bbdb;
    }

    .page-404 .outer .middle .inner .inner-circle:hover span {
        color: #39bbdb;
    }

    .page-404 .outer .middle .inner .inner-circle i {
        font-size: 5em;
        line-height: 1em;

        float: right;

        width: 1.6em;
        height: 1.6em;
        margin-top: -.7em;
        margin-right: -.5em;
        padding: 20px;

        -webkit-transition: all .4s;
        transition: all .4s;
        text-align: center;

        color: #f5f5f5 !important;
        border-radius: 50%;
        background-color: #39bbdb;
        box-shadow: 0 0 0 15px #f0f0f0;
    }

    .page-404 .outer .middle .inner .inner-circle span {
        font-size: 11em;
        font-weight: 700;
        line-height: 1.2em;

        display: block;

        -webkit-transition: all .4s;
        transition: all .4s;
        text-align: center;

        color: #e0e0e0;
    }

    .page-404 .outer .middle .inner .inner-status {
        font-size: 20px;

        display: block;

        margin-top: 20px;
        margin-bottom: 5px;

        text-align: center;

        color: #39bbdb;
    }

    .page-404 .outer .middle .inner .inner-detail {
        line-height: 1.4em;

        display: block;

        margin-bottom: 10px;

        text-align: center;

        color: #999999;
    }
</style>

<body>

<div class="page-404">
    <div class="outer">
        <div class="middle">
            <div class="inner">
                <!--BEGIN CONTENT-->
                <div class="inner-circle"><i class="fa fa-cogs"></i><span>404</span></div>
                <span class="inner-status">PAGE NOT FOUND!</span>
                <span class="inner-detail">We Couldn't Find This Page.</span>
                <!--END CONTENT-->
            </div>
        </div>
    </div>
</div>
</body>
</html>

일부러 경로에러를 뛰우는 순간 내가 만든 404 에러 페이지로 이동한다

500은 서버 문제므로 일부러 문제를 터트리면

이런식으로 화면을 출력시켰다.

 

 

오늘은 에러페이지를 출력하는 법을 알아봤다. 다음에 사이트를 만들 때 에러 페이지를 만들어 따로 관리하도록 해야겠다.

'JSP' 카테고리의 다른 글

[JSP]Forward와 sendRedirect 사용해보기  (0) 2022.09.19
[jsp] scope활용해서 값넘겨보기  (0) 2022.09.19
구구단 만들기  (0) 2022.09.19
What is Scope?  (1) 2022.09.16
액션 태그 실습  (0) 2022.09.16

댓글