주석
JSP에서 주석 처리 방법
<!-- -->
JSP 주석 : 클라이언트로 전달 되지 않는 주석
<%-- 주석 --%>
지시어
지시어는 해당하는 JSP 파일의 속성을 기술하는 곳으로, JSP 컨테이너에게 해당 페이지를 어떻게 처리해야 하는지 전달하기 위한 내용을 담고 있다.
크게 page, include, taglib으로 나뉘며 각각의 속성이 있다.
- Page 지시어
Page 지시어는 현재의 JSP 페이지를 컨테이너에서 처리하는 데 필요한 각종 속성을 기술하는 부분으로 대개 소스 코드 맨 앞에서 볼 수 있다.
문법)
<%@ page 속성="속성값1" 속성2="속성값2"… %>
Ex)
<%@ page contextType="text/html;charset=euc-kr" import="javax.sql.*", java.util.*" errorPage="error.jsp" %>
Page에 들어가는 대표 속성 값
import : jsp 내에서 사용할 외부 자바 패키지나 클래스의 import 지정
Session : 세션의 사용유무(기본값 : true)
Buffer : 버퍼의 크기 (기본값 : 8kb)
autoFlush : 버퍼의 내용 자동 비움 (기본값 : true)
isThreadSafe 단일 스레드 모델을 사용함으로써 동시성 제어 여부 지정(기본값 : true)
Info : JSP 페이지에 대한 설명
errorPage : 현재 페이지 내에서 오류 발생 시 호출될 페이지 지정
isErrorPage 오류만을 처리하는 페이지로 지정(기본값 : false)
contextType : MIME 형식 지정 및 캐릭터 셋 지정 (기본값 : text/html:charset=ISO-8859-1)
Extends : 현재 JSP 페이지를 특정 클래스를 상속한 클래스로 지정
- Include 지시어
Include 지시어는 현재 JSP 파일에 다른 HTML이나 JSP 문서를 포함하기 위한 기능을 제공한다.
Include 지시어는 여러 페이지에 공통으로 들어가는 내용을 관리할 때 매우 유용하다.
<%@ include file="xxx.jsp" />
-> 그러나 성능적인 측면에서는 그다지 권장할 만한 기법은 아니다.
- Taglib 지시어
Taglib 지시어는 JSP 기능의 확장을 위해 만들어진 사용자 정의 태그를 JSP 파일에서 사용하기 위해 태그 라이브러리와 관련된 정보를 기술하는 목적
액션
- Include
Include 지시어와 비슷하나 include 지시어는 해당 파일을 포함시킨 다음 컴파일 하는데 비해, include 액션은 실행 시점에서 해당 파일을 호출 하여 포함한다는 차이가 있다.
Ex)
Include_action.jsp
<jsp:include page="footer.jsp">
<jsp:param name="email" value="test@test.net" />
<jsp:param name="tel" value="000-000-0000" />
</jsp:include>
Footer.jsp
<%= request.getParameter("email") %>
<%= request.getParameter("tel") %>
-> 호출 뿐만 아니라 파라미터도 전달 할 수 있다.
- Forward
Forward액션은 include 액션과 유사하지만 현재 페이지를 완전히 다른 페이지로 전환할 때 사용한다.
Include는 제어권을 다른 jsp파일로 넘겼다가 다시 가져오지만, forward는 제어권을 완전히 넘겨버린다.
<jsp:forward page="footer.jsp">
<jsp:param name="email" value="test@test.net" />
<jsp:param name="tel" value="000-000-0000" />
-> 동일하게 파라미터 또한 전달 할 수 있다.
- 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에 자동으로 매칭됨
선언과 표현식
- 선언
JSP내에 메서드나 멤버변수 선언.
<%!
//멤버변수 선언이나 메서드 선언이 올 수 있다.
String str = "test";
Public boolean check() }{
]
%>
- 표현식
표현식은 <%= %>를 사용해서 간단한 데이터 출력이나 메서드 호출 등에 이용한다. 코드 마지막에 세미콜론을 붙혀주어야한다.
<%= result %>
- 스크립트 릿
스크립트 릿은 JSP 문자내에 자바 코드를 기술 하는 부분이다.
어디서나 자바문법을 사용할 수 있는 장점이 있으나, 요 근래는 JSP 내에서 가급적 스크립트릿을 사용하지 말것을 권장한다. 그 이유는
JSP 내에 복잡한 프로그램 로직이 많이 들어가게 되면 유지보수가 어려워지고, 자바코드를 이해할 수 없는 그래픽 디자이너 등과 팀 작업에 어려움이
있을 수 있다.
-> 그래서 JSTL을 이용한 커스텀 태그 라이브러리나, JSP 빈즈 사용을 권장한다.
<%
// 로컬 변수 선언이나 간단한 로직 사용
String str = "text";
%>
<%
For(int i=1l i<=10; i++) {
%>
<%= I %><br>
<%
}
%>
HTML가 자바문법을 같이 사용할 수 있지만 이렇게 남용할 경우 버그 우려가 높고 가독성이 떨이지기에 JSP 빈즈를 사용한다.
JSP 내장 객체
JSP 내장 객체는 JSP 내에서 선언하지 않고 사용하는 객체이다.
- Request
Javax.servlet.http.HttpServletRequest 클래스이다.
주로 HTML 폼을 통해 전달되는 값을 가져올 때 사용한다.
- Response
Javax.servlet.http.HttpServletResponse 객체에 대한 참조 변수다.
사용자 요청애 대한 응답을 처리하기 위해 사용된다. Request에 비해 많이 사용되는 메서드는 적은 편이다.
- Session
Javax.servlet.http.HttpSession 인터페이스의 참조 변수다.
세션은 해당 웹 서비스에 접속한 사용자의 정보를 서버에 보관할 때 사용한다.
'web > Web' 카테고리의 다른 글
Get과 Post 방식의 차이점 설명 (0) | 2016.12.22 |
---|---|
자바 빈즈 개념 설명(Java Beans) (0) | 2016.12.22 |
JSP 개념 설명 (0) | 2016.12.22 |
아파치와 톰캣의 차이 (0) | 2016.12.22 |
JSP 2.0에서의 문자셋 지정 방식 (0) | 2016.12.22 |