앞서 다뤄보았던, Request객체와 Response객체도 jsp 내장객체 중 일부이다. 몇 가지 많이 쓰이는 내장 객체를 정리해보려고 한다.
데이터를 공유하는 객체. 태그를 사용하여 web.xml에 데이터를 저장해놓고, getInitParameter()라는 메서드를 통해 jsp나 servlet에서 데이터를 공유하는 방식이다.
우선 configEx.jsp라는 파일을 만들어 servlet 등록을 하고, web.xml의 데이터를 사용할 수 있게 태그를 사용하여, 데이터를 저장한다.
config 객체의 getInitParameter 메서드를 이용하여 web.xml에 저장되어 있는 데이터를 불러온다.(태그의 의 값을 getInitParameter 메서드의 key값으로 생각하면 된다. value값은 의 값이다.)
servlet에서는 getServletConfig()를 통해 web.xml에서 데이터를 가져올 수 있다.
jsp 파일과 형식은 같다. 태그를 사용하여, 데이터를 저장한다.
getServletConfig의 getInitParameter 메서드를 이용하여 데이터를 가져온다.
이 방법은 web.xml에 servlet등록을 한 후, 태그에 데이터를 지정해 준 jsp파일이나 servlet 파일에서만 사용할 수 있다.
어플리케이션 전체에 데이터를 공유하는 객체(어플리케이션에서 공통적으로 사용하는 데이터들). web.xml에 데이터를 저장해놓고, 하나의 특정 servlet이 아니라, 모든 servlet에서 사용할 수 있게 하는 방법이다. 태그를 이용한다.
web.xml에 태그를 이용하여 필요한 데이터를 선언한다.(의 값을 getInitParameter 메서드의 key값으로 생각하면 된다. value값은 의 값이다.)
application객체의 getInitParameter 메서드를 사용하여 web.xml에 저장된 데이터를 불러온다.
jsp파일 내에서 setAttribute 메서드를 사용하여 속성 값을 넣어줄 수 있다.(setter 기능)
setAttribute 메서드를 사용하여 넣어준 속성값을 가져올 때 사용한다.(getter기능) String 타입으로 타입캐스팅 해주어야한다.
jsp의 application 객체와 같은 역할을 하는 것이 getServletContext()이다.
우선 servlet 등록 후, servlet mapping을 하고, 태그를 이용하여 web.xml에 데이터를 저장한다.
getServletContext의 getInitParameter 메서드를 이용하여 데이터를 가져온다.
jsp와 마찬가지로, setAttribute 메서드를 사용하여, context에 속성을 부여할 수 있다.
jsp와 마찬가지로, getAttribute 메서드를 사용하여, setAttribute로 저장된 속성값을 받아올 수 있다. 이 때 String으로 타입캐스팅 해주어야한다.
/ss 경로로 브라우저에 접속 하면 setAttribute로 인해 데이터가 저장되고, /gs로 접속하면 getAttribute로 데이터를 불러올 수 있다.
출력을 해주는 객체. print 메서드를 사용하여 HTML 코딩을 할 수 있다.
예외처리를 해주는 객체. jsp 파일 상단에 <%@ page errorPage="errorPage.jsp" %>
를 적어줘야한다.(error 발생시 적어준 jsp 파일로 이동시킨다는 뜻)
이 때 이동한 페이지의 상단에는 <%@page isErrorPage="true" %>
를 적어주어, 이 페이지가 error 처리 페이지가 맞다는 걸 표시해주어야한다.
exception객체의 getMessage 메서드를 사용하여, 어떤 에러가 발생했는지 확인한다.
*response.setStatus(200)을 적어주는 이유: 웹 페이지는 상태값을 가지고 있고, 이 상태값으로 웹 페이지가 정상인지 아닌지 판단한다. errorPage.jsp는 에러를 알려주기 위한 정상적인 페이지인데 가끔 status가 500으로 설정되는 경우가 있어서 그걸 방지하기 위해 200으로 설정해주는 것이다.