White Whale Studio

JSP & Servlet [3] JSP의 기초 본문

IT Engineering/JSP & Servlet

JSP & Servlet [3] JSP의 기초

glorymind 2011. 11. 16. 16:22
반응형

 

                  뭐... 문제있남??


2011. 11. 16[水]

JSP 페이지라고 하면 HTML 문서 사이사이에 JSP 문법의 코드가 삽입되는 형태로 작성된다.

JSP 문법에는 3가지 형태가 있다.
1. <% .... %>
2. ${  .... } 익스프레션 언어
3. <jsp:forward> 또는 <c:if> 와같은xml 태그 형태

1번 스타일은 <% .... %> 문법은 지시자와 스크립팅 요소로 나뉜다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>   --->>> 지시자(directive)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>덧셈 프로그램 - 입력 화면</title>
</head>
<body>
<% int total=0; for(int cnt=1;cnt<=100;cnt++)
     total += cnt; %> -------->>>> 스크립틀릿(scriptlet)
1부터 100까지 더한 값은? <%= total %>     ------>>>> 익스프레션(expression)
</body>
</html>


적색 표시 부분이 지시자, 보라색 표시부분이 스크립팅 요소(스크립틀릿 + 익스프레션) 이다.


익스프레션 언어의 코드는 ${ ~ }로 구성되는데 그 안에 데이터 이름이나 간단한 식을 쓸 수 있다.
그러나 이러한 익스프레션 언어 문법은 단순해서 데이터를 출력하는 일을 구현한느 것조차도 힘들수가 있다.
그러한 경우 XML태그 형태로 기술되는 액션(action)이라는 것이 있는데 이러한 것을 이용해서
자바에서의 if, for, switch에 해당하는 태그를 사용할 수 있다.

◎ 스크립팅 요소의 문법

우선적으로 스크립팅 요소의 문법을 살펴보자.
앞에서도 밝혔지만, 스크립팅 요소는 스크립틀릿, 익스프레션, 선언부로 이루어진다.

선언부는 문법이 살짝 다르다.
<%!로 시작해서 %>로 끝난다. !가 추가된 것이다.
이 사이에는 변수 선언이나 메서드 선언을 쓸수 있다.
final, public, private, protected, static 등의 키워드를 붙이는 것도 가능하다.

지시자는 JSP의 다른 문법들과는 다른 목적으로 사용된다. 웹 컨테이너가 JSP 페이지를 서블릿 클래스로 변환할 때 필요한 여러가지 정보들을 기술하기 위해 사용하는 문법이다.
지시자 종류 : page, include, taglib
예를 들어보자.

  <  @page contentType="text/html; charset=ecu-kr"   >


contentType 은 JSP 페이지가 생성하는 문서의 종류와 그 문서를 웹 브라우져로 전송할 때 사용
charset은 많이 봐서 알겠지만 한국어로 인코딩이 필요할때 사용한다.

지시자 중에서 page는 자바에서 패키지를 import할때도 사용한다.
예로 들자면

<%@page import="java.util.GregorianCalendar"
%>
와 같이 사용된다.

<%@page contentType="text/html; charset=euc-kr"
%>
<%@page import="java.util.GregorianCalendar"
%>
<HTML>
    <HEAD><TITLE> 날짜와 시각 </TITLE></HEAD>
    <BODY>
            <%
                  GregorianCalendar now = new GregorianCalendar();

      String date = String.format("%TF", now); 
      String time = String.format("%TT", now);
%>
            오늘의 날짜 : <%= date %> <BR>
            현재의 시각 : <%= time %> <BR>
    </BODY>
</HTML>

여기서 %TF는 결과인 날짜를 yyyy-mm-dd 형식으로 포맷하는 포맷 문자열이고
%TT는 시각을 HH:MM:SS 형식으로 포맷하는 포맷 문자열이다.

 

결과화면은 위와 같다.
page 문내에서 contenttype과 import문을 동시에 쓰는 것도 가능하기는 하지만
코딩의 완성도를 위해서 분리하는 것이 좋다.
반응형
Comments