1. JSP 기본 문법
- 스크립트 태그 (Script Tag)
종류 | 태그 | 사용 용도 |
지시어 | <%@ ... %> | JSP 페이지의 속성을 기술 |
선언 | <%! ... %> | 멤버 변수 선언과 메소드 정의 |
표현식 | <%= ... %> | 변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력 |
스크립트릿 | <% ... %> | 순수 자바 코드 기술 |
주석 | <%-- ... --%> | JSP 페이지의 설명 기술 |
- 액션 태그 (Action Tag ) - JSP 페이지 간 흐름 제어, 자바 애플릿 지원 ,자바 빈즈 컴포넌트와 JSP 상호작용 지원XML 형태의 태그만 붙일 수 있다.
액션 | 사용 예 | 기능 |
include | <jsp: include page="kk.jsp" /> | 다른 페이지를 현재 페이지에 포함시킨다. |
forward | <jsp: forward page="kk.jsp" /> | 현재 페이지의 제어를 다른 페이지로 전달한다. |
useBean |
<jsp:useBean scope="page" id="cls" class="kk.MyBean" /> |
kk 패키지의 MyBean클래스를 cls 라는 이름으로 page범위에서 사용할 것을 선언한다. |
setProperty | <jsp:setProperty name="cls" property="kkk" /> | useBean 으로 선언된 빈즈 클래스의 setkkk() 메소드를 호출한다. |
getProperty |
<jsp:getProperty name="cls" property="kkk" /> |
useBean 으로 선언된 빈즈 클래스의 getkkk() 메소드를 호출단다. |
plugin | <jsp:plugin type="applet/bean" code="class"></jsp:pulgin> | 애플릿이나 빈즈 클래스 플러그인 형태로 로딩한다. |
param | <jsp: param name="user" value= "아이린" /> |
include , forward 액션에서 사용할 수 있는 파라미터를 설정한다. |
- 커스텀 태그 (Custom Tag)
2. 주석
프로그램 소스에 텍스트로 된 간단한 설명문 넣기
JSP 특성상 HTML , Java ,JSP 코드가 모두 섞여 있으므로 주석도 혼용해서 사용한다.
1) HTML 주석
<!-- 이것은 주석입니다. -->
HTML 주석은 원래 HTML 문서에 사용하는 주석이지만 JSP 문서에서도 사용할 수 있다.
웹 브라우저에서 소스보기를 (F12 ) 를 했을 때 주석 내용을 확인할 수 있으므로 주석의 내용이 외부로 노출되어도 상관없을 경우에 사용한다.
2) JSP 주석
<%-- 이것은 주석입니다 --%>
프로그램 코드와 관련한 주석이 필요할 때, HTML 주석과 달리 클라이언트로 전달되지 않는 주석이다.
3) 스크립트릿 부분
//이것은 주석입니다.
/*이것도 주석입니다.*/
모든 자바 주석 사용가능결겨
<!-- --> 은 보이지만 <%-- --%> 는 보이지 않는 다는 것을 알 수 있음
3. 스크립트릿
< % 이것은 실행 코드 ; %>
- JSP 에서 순수 자바 코드를 기술하고자 할 때 사용
- JSP 의 가장 특징적인 부분
- JSP 내에서 가급적 스트립트릿 안 쓰는 것을 권장 ( 이유는, JSP 내에 복잡한 프로그램 로직이 많이 들어가게 되면서 유지보수가 어려워지고 자바 코드를 이해할 수 없는 그래픽 디자이너 등과의 협업에 어려움이 따르기 때문이다)
- EL (표현언어, Expression Language), JSTL 을 비롯한 커스텀 캐그 라이브러리, JSP 빈즈 사용 권장
- 최신 프레임워크와 MVC 패턴을 적용하다보면 스크립트릿은 사용할 일이 거의 없다.
방법 2 를 남용할 경우 버그 우려가 높고 가독성이 떨어지는 문제가 있다.
따라서 가능한 태그 라이브러리나 JSP 빈즈를 사용하는게 좋다.
4. 표현식
<%= 표현 %>
- 표현식의 결과값을 출력 ( 간단한 데이터, 메소드 호출)
- 코드 마지막에 ; (세미콜론) 사용하지 않아야함
- 결국 out.println() 으로 변환되는 것과 마찬가지이므로, 사용할 수 있는 구문은 out.println() 인자로서 적합한 형태를 유지해야한다.
- 메소드 호출: <%= calculator()%>
- 변수 출력: <%= result%>
- 사칙 연산과 문자열 결합 : <%= "i+2=" +(i+2) +"입니다" %>
- 표현언어 사용이 권장된다!
5. 선언
<%! 선언 %>
- JSP 에서 메소드나 멤버 변수를 선언 하기 위한 구문
멤버변수? 클래스 멤버로 선언되는 변수, 메소드 외부에 선언된다.
- 구조적으로 JSP 소스코드에 자바 코드를 사용되는건 권장 X -> 빈즈나 별도의 자바 클래스 만들어 사용
6. 지시어
: 해당하는 JSP 파일의 속성을 기술하는 곳으로 JSP 컨테이너에게 해당 페이지를 어떻게 처리해야 하는지 전달하기 위한 내용을 담고 있다.
- Page 지시어 : 대개 소스코드 맨 앞에 위치 <%@ page 속성1="속성값1" 속성2="속성값2"..... %>
language | 스크립트 언어의 유형을 정한다. |
import | JSP 내에서 사용할 외부 자바 패키지나 클래스의 불러오기를 정한다. |
session | 세션 사용 유무를 정한다. |
buffer | 버퍼의 크기를 정한다. |
autoFlush | 버퍼의 내용을 자동으로 비운다. |
errorPage | 현재 페이지에서 오류가 발생할 경우 호출될 페이지를 정한다 |
isErrorPage | 오류만을 처리하는 페이지로 지정한다. |
contentType | MIME 형식 지정 및 캐릭터셋을 정한다. |
pageEncoding | contentType 과 동일한 기능을한다. |
extends | 현재 JSP 페이지를 특정 클래스를 상속한 클래스로 작성한다. |
- contentType : 현재 JSP 페이지를 클라이언트에서 처리하기 위한 컨텐츠 유형을 지정
속성값: text/html (기본값): 기본으로 ISO-8859-1 의 문자셋이 지정
text/html; charset=방식 : MINE 에서의 문자셋도 함께 지정 가능
-pageEncoding 속성: 컨테이너에서 처리할 JSP 페이지의 인코딩 방식을 기술
기본적으로 pageEncoding을 사용하고 , 클라이언트 응답 결과를 확인하기 위해 contentType 을 병행해서 사용한다.
속성값: ISO-8859-1 (기본값)
-import 속성 : 자바의 import 문장을 대체하는 속성, 한 행으로 기술하거나 여러 행에 걸쳐 page 지시어와 함께 기술할 수도 있다.
-errorPage 속성: 현재 JSP 페이지에서 오류가 발생할 경우 호출할 페이지를 지정한다.
-isErrorPage 속성: errorPage 속성에 설정된 오류 처리 파일로 다른 용도로는 사용 X, 오류처리에만 사용한다.
- include 지시어 : include 지시어는 현재 JSP 파일에 다른 HTML 이나 JSP 문서를 포함하기 위한 기능을 제공한다.include 액션과 비슷한 기능을 하는데 그 차이점은??? include 액션 부분에 정리!<%@ include file ="포함할 파일_이름"%>
include 는 여러 페이지에 공통으로 들어가는 내용을 관리할 때 매우 유용!
- taglib 지시어 : JSP 기능을 확장하기 위해 만들어진 커스텀 태그 라이브러리를 JSP 파일에서 사용하기 위한 지시어
<%@ taglib uri="/META_INF/mytag.tld" prefix = "mytag" %>
7. 액션 태그 - include 액션
include 액션은 다른 파일을 불러온다는 측면에서 include 지시어와 개념이 유사하다. 하지만 include 지시어는 해당 파일을 포함시킨 후 컴파일 하는 것에 비해, include 액션은 실행 시점에서 해당 파일을 호출하여 그 결과를 포함한다는 점에서 차이가 있다.
동적인 페이지를 포함시킬 경우 사용하는 것이 좋다.
include 지시어는 각각의 파일을 하나로 컴파일 하기 때문에 잘 바뀌지 않는 정적적인 페이지를 포함시킬 때 사용하는 것이 좋다!
<jsp: include page="포함할 파일 _이름"/>
특징) 변수를 전달할 수 있다. include 액션에서 JSP 파일을 포함하거나 forward 액션을 통해 다른 JSP 로 포워딩할 때
param 태그를 이용해 속성 값을 전달할 수 있다. 전달된 매개변수 값은 request.getParameter() 메서드를 통해 접근할 수 있다.
8. 액션 태그 - forward 액션
forward 액션은 include 액션과 유사하지만 현재 페이지를 완전히 다른 페이지로 전환할 때 사용한다. 즉 , include 액션은 메인 실행 파일이 다른 처리들을 포함하는 개념이지만 forward 액션은 페이지 제어권을 완전히 넘겨버린다.
<jsp:forward page="포워딩할 이름" />
9. 액션태그 -plugin 액션
plugin 액션은 웹 브라우저에서 자바 플러그인을 사용하여 자바 애플릿이나 자바 빈즈 컴포넌트를 실행할 수 있게 한다.이는 웹 브라우저 대부분이 자바를 플러그인 형태로 지원하므로 브라우저에 내장된 자바 가상 머신으로는 스윙 애플릿 등을 실행할 수 없는 점을 보완하려고 나온 개념이다.
10. 액션태그 - userBean 액션
액션에서 가장 중요한 부분이다 꼭 기억!
< jsp:useBean id="변수이름" class="빈즈 클래스_이름"/>
<jsp:setProperty name="변수이름" property="속성이름"/>
<jsp:getProperty name="변수이름" property="속성이름"/>
'프로그래밍언어 > WEB' 카테고리의 다른 글
JSP : 내장 객체 - out (0) | 2020.04.17 |
---|---|
JSP - 내장 객체 - request , response (0) | 2020.04.10 |
JSP 용어, 처리과정 정리 (0) | 2020.03.28 |
자바 웹 프로그래밍 개발 환경 구축 (0) | 2020.03.28 |
웹 프로그래밍 언어와 주요 기술 (0) | 2020.03.26 |