매일매일 IT

JSP 기본 문법 본문

Programming Language/JSP

JSP 기본 문법

Teeeeeeemo 2018. 1. 5. 11:29

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 내에서 선언하지 않고 사용하는 객체이다.


1. Request

- 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
Comments