'error-page'에 해당하는 글 1건

클라이언트의 브라우져에서 쿠키 사용을 제한 하고 있을 경우 jsessionid를 추가하여 url로 세션 정보를 공유하는 방법은 이미 서블릿에서 살펴 봤다.
jstl에서도 이와 같은 방법을 사용할 수 있다.

서블릿
response.encodeURL("/BeerTest.do");

jstl
<c:url value="/inputCommets.jsp"></c:url>

위와 같이 하게 되면 url 뒤에 jsessionid를 덧 붙여서 사용하게 된다.
하지만 urlencoding을 자동으로 하지는 않게 된다.
urlencoding을 하게 하려면 아래와 같은 방법을 사용해야 한다.

<c:set var="last" value="Hidden Cursor"></c:set>
<c:set var="first" value="Crouching Pixels"></c:set>
<c:url value="/inputCommets.jsp">
    <c:param name="firstName" value="${first}"></c:param>
    <c:param name="lastName" value="${last}"></c:param>
</c:url>

위와 같이 하게 되면 last, first에 설정 된 값에 있는 공백과 같은 값이 인코딩 되어 사용 된다.

* 오류 페이지 만들기

오류 메시지를 그대로 보여주지 않고 디자인 된 페이지를 보여주려면, 예외 사항이 발생하는 페이지에 다음과 같이 코딩해 주면 된다.

<%@ page errorPage="errorPage.jsp" %>
<% int x = 10/0; %> -> 예외 발생

에러 시 보여줄 페이지

<%@ page isErrorPage="true" %>
<body>
Error Page!!!
</body>

하지만, 모든 페이지에서 <%@ page errorPage="errorPage.jsp" %> 내용을 삽입하게 된다면 여간 귀찮은 일이 아닐 것이다. 따라서 configuration에서 error page를 지정하는 방법을 써서 수고를 덜 수 있다.

web.xml

  <error-page>
      <exception-type>java.lang.Throwable</exception-type>
      <location>/errorPage.jsp</location> => 일반적인 에러
  </error-page>
  <error-page>
      <exception-type>java.lang.ArithmeticException</exception-type>
      <location>/arithmeticError.jsp</location> => 특수한 경우의 에러
  </error-page>
  <error-page>
      <error-code>404</error-code>
      <location>/notFoundError.jsp</location> => 에러 코드에 따른 경우
  </error-page>

물론 web.xml에서 error page임을 명시해도 errorPage.jsp 파일에서는 "<%@ page isErrorPage="true" %>" 내용을 꼭 넣어야 한다.
errorPage.jsp에서는 exception 객체를 사용할 수 있다.
사용 방법은 다음과 같이 쓴다.

<%@ page isErrorPage="true" %>
You caused a ${pageContext.exception} on the Server.

Insert title hereError Page!!! You caused a java.lang.ArithmeticException: / by zero on the Server.

위의 예와 같은 경우에는 위와 같이 브라우져에 출력되게 된다.

오류가 났을 경우 오류 페이지로 가지 않고 catch로 잡을 수도 있다.
방법은 다음과 같다.

<c:catch>
    Inside the catch
    <% int x = 10/0; %>
</c:catch>

오류가 난 원인을 알기 위해서는 exception 객체를 사용해야 하는데, isErrorPage로 설정되지 않은 jsp에서는 exception 객체를 사용할 수 없다. 따라서 다음과 같이 사용해야 한다.

<c:catch var="myException">
    Inside the catch
    <% int x = 10/0; %>
</c:catch>

<c:if test="${myException != null}">
    There was an exception : ${myException.message}<br>
</c:if>

Insert title hereThere was an exception : / by zero

jstl에서 사용되는 5개의 라이브러리 중에서 자주 사용되는 태그는 다음과 같다.

* Core 라이브러리

<c:out>, <c:set>, <c:remove>, <c:catch>

<c:if>, <c:choose>, <c:when>, <c:otherwise>

<c:import>, <c:url>, <c:redirect>, <c:param>

<c:forEach>, <c:forTokens>

* 포맷팅 라이브러리

<fmt:message>, <fmt:setLocale>, <fmt:bundle>, <fmt:setBundle>, <fmt:param>, <fmt:requestEncoding>

<fmt:timeZone>, <fmt:setTimeZone>, <fmt:formatNumber>, <fmt:parseNumber>, <fmt:parseDate>

* SQL 라이브러리

<sql:query>, <sql:update>, <sql:setDataSource>, <sql:param>, <sql:dateParam>

* XML 라이브러리

<x:parse>, <x:out>, <x:set>

<x:if>, <x:choose>, <x:when>, <x:otherwise>, <x:forEach>

<x:transform>, <x:param>





신고

'Java > Servlet & JSP' 카테고리의 다른 글

사용자 정의 태그 개발 (1)  (0) 2009.03.23
커스텀 태그 사용하기  (0) 2009.03.17
JSTL 사용하기 (2)  (0) 2009.03.16
JSTL 사용하기 (1)  (5) 2009.03.12
템플릿 형태로 JSP 사용하기  (0) 2009.02.16
EL 함수 사용하기  (0) 2009.02.13

WRITTEN BY
체리필터
프로그램 그리고 인생...

받은 트랙백이 없고 , 댓글이 없습니다.
secret