자료 저장소

# JSP 페이지 구성

일반적으로 JSP 페이지는 다음과 같은 형태로 구성되어 있다.

■ jspTest.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import = "java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>JSP 페이지 구성</title>
<link href="simple.css" rel="stylesheet" type="text/css">
</head><body>
<%! int a = 20; %>
<h1 id="header">Welcome</h1>
<p id="main">Today is
<jsp:useBean id="clock"class="java.util.Date"/>
<ul>
<li>Year : <%= clock.getYear() + 1900 %>
<li>Month : <%= clock.getMonth() %>
<li>Day : ${ clock.date }
</ul>
<% if(Calendar.getInstance().get(Calendar.AM_PM) == Calendar.AM) { %>
Good Morning
<% } else { %>
Good Afternoon
<% }%>

</body>
</html>


■ simpe.css <참조한 css 파일>
@CHARSET "EUC-KR"; 

h1, h2, h3 {
text-align : center
}
a:hover {
bachground:#C3D3E2;
}
#header {
text-align : center;
font-weight : bolder;
}
#menu {
border : 1px #ececec dotted
}
#main {
padding-top : 10px;
border-top : 1px #AAA solid
}
.blank {
display:none;
}


■ 페이지의 구성

JSP 페이지는 좀 더 구체적으로 보면 크게 두 가지 형태로 구성되어 있다. 하나는 HTML 문서내용이다.
이러한 것들은 내용이 고정 되어 있기 때문에템플릿 데이터라고 한다. 다른 하나는 원소라는 것으로 JSP에서 새로이 만들어진
것이다. 원소는 다시지시어 원소, 스크립팅 원소, 액션 원소로 나누어 진다.

1) 템플릿 데이터
  : 웹 컨테이너가 인식 할수 없는 태그들은 결과 페이지에 그대로 전달된다. 이러한 것들은 주로 HTML이나 XML 태그들로서,
   위 코드의 <h1>,<ul>태그들 및 Welcome과 같은 HTML 문서 내용들이 이러한 예에 속한다.

2) 원소
  ① 지시어 원소 : 지시어는 정보를 웹 컨테이너에 전달하는 역할을 한다.
  위 코드에서 페이지의 콘텐츠 타입과 import 문장을 기술하고 있다. 지시어는 <%@ 과 %> 사이에 기술한다.
  웹컨테이너에게 정보를 제공하기 때문에 클라이언트에게 데이터를 보내지 않으며 page,include,taglib가 있다.

  ② 스크립팅 원소 
   - 선언 : <%! int a = 20; %> 부분이 선언이다. 선언의 태그는 <%! ~ %>를 사용한다.
   - 식 : 식은 변수값, 계산결과, 함수 호출 결과를 직접 출력하기 위해 사용된다. 결과 값은 문자열 형태로 웹 브라우저에 전달된다.
   - 스크립트렛 : 자유롭게 자바 코드를 기술할 수 있는 영역을 말한다. <% ~ %>를 사용한다.
   - 식 언어 : JSP 2.0에서 새로 추가된 식 언어는 ${ }를 이용하여 객체들의 값에 접근할 수 있는 방법을 제공한다.
   
 ③ 액션 원소 : 액션 원소 혹은 JSP 태그라고도 불리는데, 이것은 JSP에서 특별하게 정의한 태그들을 사용하는 것이다.
 JSP의 표준으로 기본적으로 제공되거나, 프로그래머가 태그 확장 방법을 이용하여 새로이 기술 할 수도 있다. 
 표준으로 제공되는 것은 '<jsp:' 라는 태그가 붙어서 사용되며, 대표적인 예로 useBean, setProperty, getProperty등이 있다.
 액션 원소들은 XML 태그의 문법을 따르기 때문에 대소문자를 구별하고, 시작태그가 있으면 끝나는 태그가 있어야 한다.


■ JSP 처리 과정과 라이프 사이클

JSP 페이지는 웹 컨테이너에 의해 서블릿 코드로 변환되며 J2SDK의 tools.jar 파일에 포함되어 있는 자바 컴파일러를 통해 컴파일
되고, 컴파일된 클래스 파일에 의해 서블릿과 동일한 방법으로 작동된다.




JSP도 서블릿에서와 마찬가지로 유사한 라이프 사이클을 갖는다.
JSP는 jspInit() 메소드가 처음 초기화를 위해 호출되고, 이후에 클라이언트 요청에 의해 _jspService() 메소드가 호출된다.
JSP가 메모리에서 언로드될 때 jspDestroy()메소드가 호출된다. 서비스는 멀티스레드를 이용하여 병행적으로 처리된다.

자카르타의 경우 <Tomcat>/work의 서브 디렉터리에 JSP 페이지에 해당되는 서블릿 소스 코드와 클래스 파일들이 저장되어 있다.

'프로그래밍 > JSP' 카테고리의 다른 글

JSP :: JSP 페이지 요소  (0) 2010.11.22
JSP :: JSP 디폴트 객체  (0) 2010.11.22
JSP :: 간단한 JSP 프로그래밍  (0) 2010.11.22
JSP :: Hello Servlet!  (0) 2010.11.22
JSP :: 웹 컨테이너 설치  (0) 2010.11.21
댓글 로드 중…

최근에 게시된 글