Tiny Bunny [JSP] JSP 내장 객체_exception - 솜님의 블로그
솜님의 블로그
카테고리
작성일
2024. 8. 8. 02:14
작성자
겨울솜사탕

JSP 내장 객체

객체란?

메서드 수행 주체를 의미한다.

 

내장객체의 종류

  • exception
  • out
  • request
  • response
  • 파라미터를 옮길 수 있는 내장객체들

 

exception

.jsp 파일을 생성하고, 아래의 코드를 작성하게 되면 에러가 발생한다.

	<%
		int n1 = 10;
		int n2 = 0;
		int res = n1 / n2;
		out.println("<h1>"+n1+" /"+n2+" = "+res+"</h1>");
	%>

 

▼ 웹 페이지에서 보이는 에러 화면

▼ 콘솔창에서 확인되는 에러

 

 

500번대의 에러 원인은?

백, 서버 or DB, JAVA, C or M.. 에서 에러가 발생한다.

에러가 발생하면 해당 내용을 확인하여 해결해주어야 한다.

현재 발생한 에러는 n2가 0이기 때문에, 0으로는 나눌 수 없어 발생한 에러이다

 

에러 해결방안의 종류

1) n2를 0이 아닌 다른 정수로 설정한다.

2) try-catch 예외처리를 한다.

3) 에러 페이지로 이동 처리한다.

 -> ex) 네이버 웹툰 : 유료 회차 / 없는 회차를 url에서 요청하면 메인 화면으로 이동시킨다.

             대부분의 웹에서 간단한 예외는  -> 에러 페이지 이동시키는 방식으로 처리함.

 

 

 

<%= exception %>

해당 내용을 NewFile.jsp 파일에 입력하게 되면 오류가 발생한다.

 

이때, 에러 발생 시 이동시킬 새로운 error.jsp 파일을 생성하여 특정 설정을 해주면,

동일 코드를 입력해도 오류가 발생하지 않는다.

 

▼error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<h1>에러가 발생했습니다.</h1>
<h3>관리자에게 문의해주세요!</h3>

<%= exception %>

</body>
</html>

 

error.jsp에 exception이라는 변수(객체)를 선언하지 않았는데 에러가 발생하지 않았다.

이는 이 객체가 이미 내장되어  있다는 뜻이다!

 

이러한 페이지를 만들기 위해서 page지시어에 isErrorPage="true" 설정을 추가해 준다.

또한, error.jsp 파일은 에러 발생 시 이동되는 페이지를 나타내는 것이므로,

해당 페이지로 이동하기 위해서 NewFile.jsp의 page 지시어에 errorPage="error페이지의 경로"를 작성해 준다.

 

▼ NewFile의 page 지시어

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" errorPage="error/error.jsp" %>

 

 

error.jsp 파일을 정상 jsp 파일과 같은 위치에 놓고 관리하게 되면?

파일이 많아질 경우 관리차원에서도 불편하다.

 

따라서 error 폴더를 별도로 만들어서 해당 폴더에 error.jsp 파일을 넣어서 사용한다.

이렇게 폴더별로 관리하게 되면 응집도를 높일 수 있다!

(== 유지보수가 용이하다!)

 

 

▼ error 페이지 설정 후 실행시켰을 때 나오는 화면