JSP

221201 jsp error 예외 페이지

주영재 2022. 12. 1. 13:57

예외 페이지

예외 상황이 발생하면 웹 컨테이너(톰캣)에서 제공되는 기본적인 예외페이지가 보여짐
이때 프로그램 코드가 노출된다.

그래서 개발자가 따로 만들어 둔 에러 페이지로 유도시키는 것이 좋음

HTTP 주요 응답 상태 코드

404 : 요청한 URL을 찾을 수 없는 경우. 경로문제
500 : 서버측 내부 오류로 인해 페이지가 나타나지 않는 경우(java, JSP페이지내의 코드오류). 코드문제

400번대 에러는 클라이언트에서 잘못되었음을 의미함. 
500번대 에러는 서버 측에서 잘못되었음을 의미함. 


200 : 요청을 성공적으로 처리함. 성공 의미
307 : 임시로 페이지를 리다이렉트함
400 : 클라이언트의 요청이 잘못된 구문으로 작성됨
405 : 요청 방식을 허용하지 않음(GET, POST 등)
503 : 서버가 일시적으로 서비스를 제공할 수 없음(일시적 서버과부하, 서버 임시 보수 등)

처리방법은 하나만 확인
에러 처리방법 3

에러코드나 널포인트익셉션이 발생하면 에러페이지로 이동
코드를 외우지 말고 찾아서 쓸 줄 알면 됨

web.xml에

<!-- 에러처리 --> 
 <error-page>
	<error-code>404</error-code>
	<location>/errorpage/error_view.jsp</location>
</error-page>
<error-page>
	<error-code>500</error-code>
	<location>/errorpage/error_view.jsp</location>
</error-page>
<error-page>
	<exception-type>java.lang.NullPointerException</exception-type>
	<location>/errorpage/error_view.jsp</location>
</error-page>


넣으면 만들어놓은 페이지가 보임
자바코드에선 try catch구문 써도 됨

해석은 ~~한 코드가 발생하면 ~~페이지로 이동한다는 뜻

 

error가 포함된 구문

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	String name=request.getParameter("name");
	
	int a =name.length();
%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

request로 받아오는 값이 없다. nullpointexception 발생

 

error_view

<%@ 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>

	<style>
		.box{
			height: 100vh;
			display:flex;
			align-items: center;
			justify-content: center; 
		}
	</style>
</head>
<body>


	<div class="box">
		<div>
			요청한 페이지를 찾을 수 없음 <img alt="제목" src="/JSPBasic/HTML/1.jpg" width="100px">
		</div>
	</div>

</body>
</html>