JSP 정리
JSP(Java Server Page)
- JSP는 HTML 내에 자바 코드를 삽입하여 웹 서버에서 동적으로 엡 페이지를 생성하여 웹 브라우저에 돌려주는 언어이다. Java EE 스펙 중 일부로, 웹 애플리케이션 서버에서 동작한다.
JSP는 실행시에는 자바 서블릿으로 변환된 후 실행되므로 서블릿과 거의 유사하다고 볼 수 있다.
하지만 서블릿과는 달리, HTML 표준에 따라 작성되므로 웹 디자인하기에 편리하다. 아파치 스트럿츠나 자카르다 프로젝트의 JSTL 등의 JSP 태그 라이브러리를 사용하는 경우에는 자바 코딩없이 태그만으로 간략히 기술이 가능하므로 생산성을 높일 수 있다.
JSP는 이런식으로 흘러간다.
JSP의 특징
jsp는
1. 선언
- 멤버변수나 메소드 선언시에는 <%! 이부분 %> 에 자바코드와 동일하게 선언해준다.
2. 스크립트릿
- 스크립트릿은 클라이언트 요청 시 매번 호출되는 영역으로, Servlet으로 변환 시 service() method에 해당되는 영역이다. <% 이부분 > 에 request와 response에 관려노딘 코드들을 구현한다.
3. 표현식
- <%= 문자열 %> 이 부분에 브라우저에 출력할 데이터를 넣는다. 이 때, 문자열 뒤 세미콜론은 작성하지 않는다.
4. 주석
<%-- --%> html과 비슷한 주석처리 모양을 갖고 있다.
지시자
1. page Directive
<%@ page attr1="val1" attr2 = "val2" %> 등을 이용해 컨테이너에게 현재 JSP를 어떻게 처리할 것인가에 대한 정보를 제공한다.
2. include Directive
<%@ include file="/template/header.jsp" %> include를 사용해 반복되는 코드들을 따로 저장해 놓은 뒤, 불러서 사용할 수 있다. 코드와 코드의 결합 느낌?
3. taglib Directive
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
JSTL 또는 사용자에 의해 만든 커스텀 태그를 이용할 때 사용 된다. 이 태그를 이용해 조건문, 반복문 등을 만들 수 있기 때문에 JSP 페이지 내에 불필요한 자바 코드를 줄일 수 있다.
JSP 기본 객체 9가지
1. request
- 브라우저에서 보낸 요청으로, HTML 폼 요소의 선택 값 등 사용자 입력 정보를 읽어올 때 사용한다.
2. response
- 사용자의 요청에 대한 응답을 처리하기 위해 사용된다. 필요한 로직들을 처리한 뒤, 브라우저로 반환된다.
3. pageContext
- 각종 기본 객체를 얻거나 forward 및 include 기능을 활용할 때 사용된다. 한 페이지 내에서만 사용할 수 있는 attribute 박스 같은 것? 이라고 생각하면 편리하다.
4. session
- 클라이언트에 대한 세션 정보를 처리하기 위해 사용된다. 요청하고 응답하고 처리하는 도중에 계속해서 공유되는 영역이다. 브라우저 당 하나씩 존재하며, 브라우저가 꺼질 때 까지 유효하다. 로그인을 한번 하면 로그인 페이지를 벗어나도 그 사이트 모든 곳에서 로그인이 되어 있는 기능 등을 구현할 때 사용된다.
5. application
- 웹 서버의 애플리케이션 처리와 관련된 정보를 레퍼런스 하기 위해 사용된다. 세션보다 하나 더 큰 개념으로, 모든 브라우저를 합친 것이라고 생각하면 된다. 사용자 A가 담아 놓은 자원을 사용자 B도 쓸 수 있다.
6. out
- 사용자에게 전달하기 위한 output 스트림을 처리할 때 사용된다.
7. config
- 현재 JSP에 대한 초기화 환경을 처리하기 위해 사용된다.
8. page
- 현재 JSP 페이지에 대한 참조 변수에 해당된다.
9. exception
- Error를 처리하는 JSP에서 isErrorPage 속성을 true로 설정하면 exception 내장 객체를 사용할 수 있고, 기본은 false로 설정되어 있다. 전달된 오류 정보를 담고 있는 내장 객체이다.