코딩수업/AWS 클라우드환경 네이티브

10/31 웹 제작 - 에러 페이지, EL, jsp 표준 액션

인생즐겜러 2022. 11. 16. 20:02
728x90
반응형

AWS 클라우드환경 네이티브 수업 110 일차

 

 

 

진행

1. 에러 페이지

2. Expression Language (EL)

 

 

 

 

 

요약

1. 에러 페이지

2. Expression Language (EL)

3. jsp 표준 액션

 

 

 

 

 


 

 

 

 

 

에러 페이지

 

  • 404  : 보통 HTTP에서 사용자가 요청하는 페이지나 파일을 찾을 수 없을 때 가장 많이 발생
  • 500 : 예외적인 또는 예측하지 못한 에러의 경우 출력

 

<!-- NotFoundError.jsp => 404 에러-->

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<% response.setStatus(200); %>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>NotFoundError.jsp</title>
</head>
<body>
	<h1>해당 페이지를 찾을 수 없습니다.</h1>
</body>
</html>
<!-- ServerInternalError.jsp => 500 에러-->

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<% response.setStatus(200); %>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>ServerInternalError.jsp</title>
</head>
<body>
	<h1>웹 서버 내부에서 에러가 발생하였습니다.</h1>
</body>
</html>
<!-- web.xml에 코드 추가 -->

  <error-page>
  	<error-code>404</error-code>
  	<location>/ch05/NotFoundError.jsp</location>
  </error-page>
  
  <error-page>
  	<error-code>500</error-code>
  	<location>/ch05/ServerInternalError.jsp</location>
  </error-page>

 

 

 

 

 


 

 

 

 

 

Expression Language(EL)

 

JSP 태그로 작업 시 코드의 간소화를 위해 사용된다.

값이 없거나 형변환에 신경 쓸 필요 없이 사용 할 수 있다는 장점이 있다.

 

문법은 아래와 같다.

 

${ 표현식 }

 

표현식에는 문자, 연산자, 변수가 들어간다.

 

문자 : 논리(true, false) / 숫자 (정수, 실수) / 문자열 (" " , ' ' 로 표현) / Null

연산자 : 산술 (+, - 등) / 논리 (&& , || 등) / 비교 (==, != 등) / empty (값이 null이나 공백 문자인지 판단)

 

 

 

 

 

사용하면 유용할 EL 내장 객체

  • ${param.원하는변수} : request.getParameter(원하는 변수) 와 동일
  • ${header} : 헤더 정보를 name / values 형태로 싹 출력한다.

 

 

 

 

 

 

expression language를 사용하여 데이터 보내기(HashMap)

 

<!-- Address.jsp -->

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%
	HashMap<String, String> map = new HashMap<String, String>();
	// HashMap map = new HashMap(); 으로 쓰면 String 타입이 아니어도 그대로 작성 가능함...
	map.put("Gildong", "청석골");
	map.put("춘향", "남원");
	map.put("방자", "강원도");
	
	request.setAttribute("ADDRESS", map);
	RequestDispatcher dispatcher = request.getRequestDispatcher("AddressView.jsp");
	dispatcher.forward(request, response);
%>

 

<!-- AddressView.jsp -->

<%@ 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>주소 알아내기</h1>
	<h2>${param.NAME}의 주소는 ${ADDRESS[param.NAME]}</h2>
</body>
</html>

 

 

 

 

 

 


 

 

 

 

 

jsp:include 표준액션

 

표준 액션은 JSP 페이지가 실행될 때 동적으로 해당 웹 자원을 읽어서 포함하지만

include 지시자는 JSP 페이지가 서블릿 클래스로 변환될 때 해당 웹 자원을 읽어서 서블릿 클래스 코드의 일부로 만듦

 

<!DOCTYPE html>
<!-- Copyright.html -->
<font size="2">Copyright 이 페이지의 저작권은 길동.com에 있습니다.</font>
<!-- BookinFo.jsp -->

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>BookInfo.jsp</title>
</head>
<body>
	<h1>책 소개</h1>
	<h2>제목 : 자바를 잘 하는 길</h2>
	<h2>저자 : 김 자바</h2>
	<h2>페이지 : 935페이지</h2>
	<jsp:include page="Copyright.html"/>
</body>
</html>

 

 

 

 

 

 

jsp:forward 표준액션

 

JSP 페이지를 실행하다가 다른 JSP페이지로 제어를 넘기고자 할 때 사용한다.

 

 

<!-- Hundred.jsp -->

<%
	int sum = 0;
	for(int cnt = 1; cnt <=100; cnt++) {
		sum += cnt;
	}
	
	request.setAttribute("RESULT", sum);
%>
<jsp:forward page="HundredResult.jsp"/>
<!-- HundredResult.jsp -->

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>HundredResult.jsp</title>
</head>
<body>
	<h1>1부터 100까지의 합</h1>
	<h2>1부터 100까지의 합은 ${RESULT}입니다.</h2>
</body>
</html>

 

 

 

728x90
반응형