일요일, 4월 14
Shadow

#046 JSP 스크립트 기본 문법, Directive, DOC

[01] JSP 스크립트의 요소 이해하기

1. 스크립틀릿의 이해

– <% …~~~… %>

– 일반적인 java, jsp코드가 위치합니다.

– 메소드는 선언할 수 없습니다.

– 스크립틀릿안에 포함된 자바 코드는 전부 _jspService()메소드 내에 선언됩니다.

2. 선언문

– <%! …~~~… %>

– 사용하려는 메소드를 선언합니다.

– 전역 영역을 나타냄으로 선언된 변수는 전부 jspService() 메소드 밖에
멤버 변수(인스턴스변수, 필드)로 선언됩니다.

– 선언문에 선언되는 변수는 하나의 JSP페이지에 동시접속자가 발생할 경우
멤버 변수의 값을 공유하게 되어 변수의 값이 알수 없는 상태로 변질되는
문제가 있음으로 사용하지 않습니다.

3. 표현식(Expression)
– <%=hap(10, 20)%> –> <% out.print(hap(10, 20)); %>
– 문장 종결자(‘;’)을 사용할 수 없습니다.
– 오로지 하나의 값만 출력할 수 있습니다.
– <TD>태그안에 데이터베이스의 컬럼값을 출력할 경우에 주로 사용함
– 주석을 붙일 수 없습니다.

4. 주석
– <%
//                     –> java 주석으로 지정해야 설명이 감추어집니다.
/*…~~~…*/
%>

– <!–급여:<%=pay(“sabun-001”)%> –> HTML주석에 JSP코드가 들어가면 주석으로 처리안됩니다.JSP가 실행되어 주석으로 처리됨

5. 실습

>>>>> http://127.0.0.1:8081/test/script.jsp

<%@ page contentType=”text/html; charset=euc-kr” %>

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
<html xmlns=”http://www.w3.org/1999/xhtml“>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=euc-kr” />
<title>Untitled Document</title>
</head>

<body>
<h1>

<!– File Name: script.jsp –>
<%!
// 선언문, 메소드 선언 가능
public int add(int i, int j){
return i + j;
}
%>

<%
// 스크립틀릿
int i = 10;
int j = 20;
// int sum = i + j;
int sum = add(i, j);

out.println(“정상적인 JSP출력 sum: ” + sum);
System.out.println(“Server Console 상에 출력 sum: ” + sum);
%>

<!– 표현식, Expression–>
<br />
변수 i의 값: <%=i%><br />
변수 j의 값: <%=j%><br />

<!– 주석 –>
<%
// 한줄 주석
/* 여러줄 주석 */
%>
</h1>
</body>
</html>

>>>>> script2.jsp

<%@ page contentType=”text/html; charset=euc-kr” %>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<HTML>
<HEAD>
<TITLE> test/script.jsp </TITLE>
<META NAME=”Generator” CONTENT=”EditPlus”>
<META NAME=”Author” CONTENT=””>
<META NAME=”Keywords” CONTENT=””>
<META NAME=”Description” CONTENT=””>
</HEAD>

<BODY>

<H1>
<%!
public int tot(int a, int b){
return a+b;
}
%>

<%
String msg = “열심히 하자”;
System.out.println(“Console 생활 신조: ” + msg);
out.println(“WEB 생활 신조: ” + msg);
out.println(“<br>”);
%>
<br>
<%
out.println(“100+200의 합: ” + tot(100, 200) + “<br>”);
%>
<br>
<%=100+200%>
<%=100-200%>
<%=100*200%>
<%=100/200%>
</H1>

</BODY>
</HTML>

[02] page 지시자(Directive)
– info :페이지 설명(X)

– language: 스크립트에 사용할 언어, 현재는 자바만 지원합니다.(X)

– contentType: jsp의 출력 형식 지정, 문자 셋을 지정합니다.(O)
. 내용의 형식(text/html)과 문자 코드(EUC-KR)를 선언합니다.

– extends: jsp페이지가 서블릿으로 변환될시에 상속될 클래스 지정(X)

– import: 패키지의 import, 중복 사용가능 합니다.(O)
. 자바에서 패키지를 사용하겠다고 선언하는 것과 같습니다.

– session: 기본값은 true이며 session값을 유지합니다.(X)
. 회원 로그인등에 사용되며 흔히 session변수라는 변수를 사용하려면 이 값이 true 이어야 합니다.

– buffer: jsp페이지의 출력크기를 킬로바이트 단위로 지정 합니다. 기본값은 8KB입니다.(X)
. 서버가 jsp페이지의 처리결과를 버퍼에 누적했다가 한번에 전송하는 목적으로 사용되는 메모리로 처리속도의 향상을 가져옵니다.

– autoFlush: 버퍼에 jsp페이지의 내용이 저장되어 다 차게되면 자동으로 클라이언트에게 전송하라는 설정이며 기본값은 true입니다.(X)
. 버퍼가 다 차게되면 자동으로 클라이언트에게로 데이터를 전송하도록 하는 옵션입니다.
. JSP페이지가 다 읽혀지면 자동전송됩니다.

– isThreadSafe: 하나의 jsp페이지가 동시에 여러 브러우저의 요청을 처리하게 할지를 결정하는 것으로 기본값은 true입니다.(X)

– errorPage: 예외 발생시 이동할 페이지를 지정합니다. 예외에 따른 에러와 관련한 안내 문구 출력에 사용됩니다.(△)

– isErrorPage: 현재 페이지는 에러페이지 입니다., 에러만 처리하는 페이지를 작성할 때 사용합니다.(△)
. 개발후 운영중에 예외 상황이 발생한 경우 보여주는 페이지입니다.
. exception 객체가 내부적으로 만들어집니다.

– pageEncoding: jsp1.2에 추가된 규약으로 jsp페이지의 문자셋 형식을 지정합니다.(△)
<%@ page pageEncoding=”EUC-KR” contentType=”text/html” %>
1. import.jsp, import속성의 실습, http://127.0.0.1:8081/test/import.jsp

<%@ page contentType=”text/html; charset=euc-kr” %>
<%@ page import=”java.util.*” %>
<%@ page session=”true” buffer=”8kb” isThreadSafe=”true” %>

<H1>Directive import<br>
<%
// Date 클래스는 java.util.* 패키지에 있음으로 반드시
// import 해야합니다.

Date date = new Date();
%>
현재의 날짜와 시간은?<p>
<%=date.toLocaleString()%>
</H1>

 

[02] J2EE Documentation 설치
– Servlet, JSP는 J2EE환경에 포함이 됨으로 J2EE DOC를 설치해야 합니다.
– http://java.sun.com/j2ee/1.4/download.html
1. J2SE(JAVA)
– http://java.sun.com/javase/6/docs/api/
– http://java.sun.com/j2se/1.5.0/docs/api/
– http://java.sun.com/j2se/1.4.2/docs/api/

 
2. J2EE(JSP, EJB)
– http://java.sun.com/j2ee/1.4/docs/api/index.html
– http://java.sun.com/javaee/5/docs/api/

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.