매일매일 IT
JSP 기본 문법 본문
JSP 기본 문법
주석
- JSP에서 주석 처리 방법
- HTML : <!-- -->
- JSP 주석 : <%-- 주석 --%> 클라이언트로 전달 되지 않는 주석
지시어
- 지시어는 해당하는 JSP 파일의 속성을 기술하는 곳으로, JSP 컨테이너에게 해당 페이지를 어떻게 처리해야 하는지 전달하기 위한 내용을 담고 있다.
- 대표적으로 page, include, taglib으로 나뉘며 각각의 속성이 있다.
1. Page
- Page 지시어는 현재의 JSP 페이지를 컨테이너에서 처리하는 데 필요한 각종 속성을 기술하는 부분으로 대개 소스 코드 맨 앞에서 볼 수 있다.
- [문법] <%@ page attribute="value1" attribute2="value2"… %>
- [예시] <%@ page contextType="text/html;charset=utf-8" import="javax.sql.*", java.util.*" errorPage="error.jsp" %>
- Page에 들어가는 대표 속성 값
- import : jsp 내에서 사용할 외부 자바 패키지나 클래스의 import 지정
- Session : 세션의 사용유무(default value : true)
- Buffer : 버퍼의 크기 (default value : 8kb)
- autoFlush : 버퍼의 내용 자동 비움 (default value : true)
- isThreadSafe 단일 스레드 모델을 사용함으로써 동시성 제어 여부 지정(default value : true)
- Info : JSP 페이지에 대한 설명
- errorPage : 현재 페이지 내에서 오류 발생 시 호출될 페이지 지정
- isErrorPage 오류만을 처리하는 페이지로 지정(default value : false)
- contextType : MIME 형식 지정 및 캐릭터 셋 지정 (default value : text/html:charset=ISO-8859-1)
- Extends : 현재 JSP 페이지를 특정 클래스를 상속한 클래스로 지정
2. Include
- Include 지시어는 현재 JSP 파일에 다른 HTML이나 JSP 문서를 포함하기 위한 기능을 제공.
- 여러 페이지에 공통으로 들어가는 내용을 관리할 때 매우 유용하다.
- [예시] <%@ include file="xxx.jsp" /> -> 그러나 성능적인 측면에서는 권장되지 않는 기법.
3. Taglib
- Taglib 지시어는 JSP 기능의 확장을 위해 만들어진 사용자 정의 태그를 JSP 파일에서 사용하기 위해 태그 라이브러리와 관련된 정보를 기술하는 목적.
액션
1. Include
- Include 지시어와 비슷하나 include 지시어는 해당 파일을 포함시킨 다음 컴파일 하는데 비해, include 액션은 실행 시점에서 해당 파일을 호출 하여 포함한다는 차이가 있다.
- [예시]
- include_action.jsp
- footer.jsp : 호출 뿐 아니라 파라미터 또한 전달 가능.
2. Forward
- Forward액션은 Include 액션과 유사하지만 현재 페이지를 완전히 다른 페이지로 전환할 때 사용한다.
- Include는 제어권을 다른 jsp파일로 넘겼다가 다시 가져오지만, forward는 제어권을 완전히 넘겨버린다.
- [예시]
- forward_ex.jsp : 파라미터 또한 전달 할 수 있다.
3. useBean 액션
- 액션에서 가장 중요한 부분.
- <jsp:useBean id="변수명" class="빈즈 클래스명" />
- <jsp:setProperty name="변수명" property="속성명" />
- <jsp:getProperty name="변수명" property="속성명" />
- jsp에서 빈즈를 사용할 경우 setProperty와 getProperty는 빈즈 클래스의 getter와 setter 메소드를 내부적으로 호출한다.
- useBean id : 빈즈 클래스의 인스턴스명으로 사용할 변수
- class : 빈즈 클래스의 클래스명으로, 패키지 경로를 포함.
- setProperty name : 빈즈 클래스의 인스턴스명으로 id 값에 설정했던 변수명
- property : 속성 값으로 빈즈 클래스의 setXX 메서드와 매칭될 속성 값. *를 지정하면 모든 setter에 자동으로 매칭된다.
선언과 표현식
1. 선언식
- JSP 내에 선언문을 사용하면 멤버 변수나 메서드를 선언할 수 있어 프로그램 요소를 구현하기가 더욱 수월해진다는 장점이 있다.
- 그러나 일반적으로 JSP에서 자바 코드를 확장하기보다는 별도의 빈즈 클래스를 사용하는 것이 더 효율적이기 때문에 권장되지 않는다.
- <%! %>
- [예시]
2. 표현식
- 표현식은 메소드 호출, 변수 출력, 사칙연산과 문자열 결합에 사용.
- <%= %> 형태
- <%= calculator() %> // 함수 결과 출력, 메소드 호출
- <%= result %> // 변수 출력
- <%= "i+3=" + (i+3) + "입니다." %> // 문자열 결합
3. 스크립트릿
- JSP 문서 내에 자바코드를 기술하는 부분 (html 문서와 혼용 작성 가능)
- 초기와는 다르게 지금은 JSP 내 스크립트릿 사용을 가급적 사용하지 않는 것이 권장된다.
- 디자이너가 html 코드만 보며 디자인 하다가 html+jsp 코드를 보면 어려워 할 수 있다 -> 이를 위해 MVC 패턴 등장
- <% %> 형태
- 로컬 변수 선언이나 프로그램 로직이 올 수 있다.
- 스크립트릿 부분에는 순수 자바코드만 올 수 있다.
- HTML 출력이 필요할 경우에는 out.println()을 사용하거나 스크립트릿을 닫은 후 태그와 표현식을 이용해 출력하고 다시 스크립트릿을 작성하는 방법도 가능.
- JSTL 이용한 커스텀 태그 라이브러리나 JSP 빈즈 사용으로도 가능
JSP 내장 객체
- JSP 내장 객체는 JSP 내에서 선언하지 않고 사용하는 객체이다.
- Javax.servlet.http.HttpServletRequest 클래스이다.
- 주로 HTML 폼을 통해 전달되는 값을 가져올 때 사용한다.
2. Response
- Javax.servlet.http.HttpServletResponse 객체에 대한 참조 변수다.
- 사용자 요청애 대한 응답을 처리하기 위해 사용된다.
- Request에 비해 많이 사용되는 메서드는 적은 편이다.
3. Session
- Javax.servlet.http.HttpSession 인터페이스의 참조 변수다.
- 세션은 해당 웹 서비스에 접속한 사용자의 정보를 서버에 보관할 때 사용한다.
'Programming Language > JSP' 카테고리의 다른 글
JSP 파일 및 디렉토리의 이름 지정 규칙 (0) | 2018.01.05 |
---|