본문 바로가기

IT일반과목/JSP

20180826 집공부5 <지시어2>

<!--  1. html 주석 -->

<%-- 안에있는내용주석 --%>



● page 지시어 : 모든 jsp파일에 기술되어야 하는 요소로 현재 jsp문서와 관련된 처리 정보를 기술함

ex)

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>



● HTML 선언부 및 기본 태그

ex)

<!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>Insert title here</title>

</head>

<body>

 Hello World~~ 

</body>

</html>


● JSP 표현식 : 자바 코드를 이용해 간단한 출력을 위해 사용. 여기서는 현재 날짜와 시간 정보가 출력됨

ex)

현재 날짜와 시간은 : <%=new java.util.Date() %>



JSP 페이지의 구성 요소

◈ 디렉티브(Directive)

◈ 스크립트 : 스크립트릿(Scriptlet), 표현식(Expression), 선언부(Declaration)

◈ 표현 언어(Expression Language)

◈ 기본 객체(Implicit Object)

◈ 정적인 데이터

◈ 표준 액션 태그(Action Tag)

◈ 커스텀 태그(Custom Tag)와 표준 태그 라이브러리(JSTL)



주석

 -> JSP는 특성상 자바, HTML, JSP 코드가 섞여 있으므로 주석도 혼용해서 사용한다.


HTML 주석 : 클라이언트로 전달되는 주석

 -> 화면에는 보이지 않지만 브라우저 소스보기를 하면 내용이 노출됨

ex) <!-- 주석입니다. -->


JSP 주석 : 클라이언트로 전달되지 않는 주석

 -> 브라우저 소스보기를 해도 내용이 노출되지 않음

ex) <%-- 주석 --%>



지시어(Directives)

 -> JSP 파일의 속성을 기술하는 JSP 문법

 -> JSP 컨테이너에게 해당 페이지를 어떻게 처리해야 하는지 전달하기 위한 내용을 담고 있다.

 -> 지시어는 크게 page, include, taglib으로 나눌 수 있으며, 각각에서 다루는 속성이 다르다.

----------------------------------------------------------------------------------------------------------------

page 지시어

 -> page 지시어는 현재 JSP 페이지를 컨테이너에서 처리하는 데 필요한 각종 속성을 기술하는 부분


 -> 보통 JSP 페이지 맨 앞에 위치함.

ex) <%@ page 속성1="속성값1" 속성2="속성값2" ...%>


 -> 여러 줄에 나누어 작성할 수도 있음.

ex) <%@ page contentType="text/html;charset=UTF-8"

import="javax.sql.*,java.util.*" errorPage="error.jsp"%>

<%@ page import="java.util.*"%>






지시어에 대해 그전꺼를 이어서 봐보겠다.



session

 -> 세션은 웹 브라우저와 웹 서버가 지속적인 클라이언트 인식을 위해 필요한 정보를 임시로 저장해두는 방법

 -> 주로 웹 사이트에 로그인하거나 쇼핑몰에서 장바구니 등을 구현할 때 사용된다.

 -> 기본 값이 true(세션을 사용한다)이므로, 일부러 사용을 제한할 목적이 아니라면 별도로 설정하지 않아도 됨

 -> 세션과 관련한 자세한 내용은 다음에 다뤄보겠다.

ex)

<%@ page session = "true" %>



buffer

 -> JSP 페이지 데이터를 출력하기 위한 JspWriter 즉 out 내장객체의 버퍼 크기를 지정

 -> 기본값은 8KB 이고 JSP 페이지에 동적으로 많은  내용이 포함될 경우 버퍼 크기 조정이 필요할 수도 있으나 일반적으로는 변경하지 않아도 됨.




autoFlush

 -> 버퍼를 자동으로 비울 것인지를 지정하는 속성으로, 기본 값은 true다.

 -> 버퍼 속성에 지정되어 있는 크기만큼 버퍼를 유지하고 있다가 버퍼가 다 차면 자동으로 전송한다.

ex)

<%@ page autoFlush="true" %>



isThreadSafe

 -> 기본적으로 서블릿은 스레드로 동작하기 때문에 스레드로 인한 동기화 문제를 해결하기 위한 옵션임

 -> 기본값은 true로, 일반적으로 false로 설정하는 경우는 거의 없다.

ex)

<%@ page ifThreadSafe="true" %>



info

 -> 해당 JSP에 대한 간단한 설명으로 저작권이나 작성일 등 간단한 정보 기술에 사용

ex)

<%@ page info="JSP Example" %>

 


errorPage, isErrorPage

 -> 두 속성은 jsp파일의 오류 처리를 위한 것으로, errorPage는 현재 페이지에 오류 발생시 호출할 페이지를 지정하는 속성이고 isErrorPage는 오류 처리를 위한 전용 페이지임을 알리는 속성이다.


 -> errorPage : 일반적인 JSP 파일에 사용

ex)

<%@ page errorPage="오류_처리_파일.jsp" %>


 -> isErrorPage : 오류 처리 파일에만 사용

ex)

<%@ page isErrorPage="true" %>




contentType

 -> 현재 JSP 페이지를 클라이언트에서 처리하기 위한 콘텐츠 유형을  지정하는 부분.

 -> 윈도우에서 파일 확장자(.doc, .hwp등)에 따라 연결 프로그램이 동작하는 것과 마찬가지로 웹 브라우저에서도 contentType에 따라 전달되는 내용을 어떻게 처리할지 결정할 수 있다.

ex)

<%@ page contentType="text/html" %>


 -> text/html이 아니라 application/msword 로 지정할 경우 브라우저는 서버가 전달하는 콘텐츠를 ms word 문서로 인식해 처리할 것은 사용자에게 요청함

ex)

<%@ page contentType="application/msword" %>



contentType 속성와 캐릭터 셋

 -> JSP 페이지가 생성할 문서의 타입을 지정


 -> contentType 속성 형식

ex)

TYPE

TYPE;charset=캐릭터 셋


 -> TYPE : 생성할 문자의 MIME 타입

 - text/html, text/xml, text/plain 등


 -> 캐릭터 셋 - 응답 문서의 문자 인코딩 지정

 - EUC-KR, UTF-8, ISO-8859-1 등


 -> 설정 예

ex)

<%@ page contentType="text/html; charset=utf-8" %>



pageEncoding

 -> pageEncoding은 컨테이너에서 처리할 JSP 파일의 인코딩을 설정

ex)

<%@ page pageEncoding="UTF-8" %>



include 지시어

 -> include 지시어는 현재 JSP파일에 다른 HTML이나 JSP 문서를 포함하기 위한 기능을 제공

 -> include 지시어는 다음 절에서 살펴볼 include 액션과 비슷한 기능을 한다.

ex)

<%@ include file="포함할 파일_이름" %>


 -> 네이버와 같은 인터넷 포털사이트의 화면처럼 여러 정보의 조합으로 한 화면을 구성할 때 유용하게 사용됨

 -> include 지시어를 사용하면 기능 혹은 화면을 모듈화할수 있어 화면 구성이나 재활용이 용이하다.




taglib 지시어

 -> JSP 기능을 확장하기 위해 만들어진 커스텀 태그 라이브러리를 사용하기 위한 지시어

 -> 태그 라이브러리는 다음에 자세히 살펴볼 것이고 여기서는 간단한 문법만 참조

ex)

<%@ taglib url="/META-INF/mytag.tld" prefix="mytag" %>


 -> 커스텀 태그는 공통으로 활용하거나 특정 기능을 HTML 태그 형태로 모듈화 하는 기술이다.




<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="UTF-8" errorPage="error.jsp"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>include 지시어 테스트</title>

</head>

<body>

<div align="CENTER">

<H2> include 지시어 테스트</H2>

<HR>


<%@ include file="menu.jsp" %>

<P>

<table border=0 cellpadding=5 cellspacing=1>

<tr>

<td><font size=-1><%@include file="news.jsp" %></font></td>

<td width="20">&nbsp; </td>

<td><font size=-1><%@include file="shopping.jsp" %></font></td>

</tr>

</table>

</div>

</body>

</html>