데이터베이스관리시스템의 활용

Download Report

Transcript 데이터베이스관리시스템의 활용

2008년 9월 11일 실습

실험제목
◦ JSP 개발 환경과 간단한 JSP 실습

목표
◦ JSP 웹 프로그래밍에 대한 이해
◦ JSP 개발환경구축
◦ 간단한 JSP 소스 코드 작성을 통한 개발 환경 실습

목차
◦ JSP 웹 프로그래밍 소개
◦ JSP 개발환경구축
 Java SE Development Kit 설치
 Apache Tomcat 설치
 Eclipse 설치
◦ 간단한 Java 프로그래밍 실습
◦ 간단한 JSP 실습
◦ 연습문제

WWW의 구성 : HTML + URL + HTTP
SGML
(Standard Generalized Markup Language)
문서용 Markup Language
◦ HTML(HyperText Markup Language)

Hypertext를 위한 SGML

인터넷에서 웹 페이지를 표시하기 위해 일반적으로 사용
Hypertext
Markup Language
Hyperlink 로 연결되어 있는 문서
데이터의 구조를 명기하는 언어
◦ URL ( Uniform Resource Locator )

웹 자원의 위치를 지정
http://www.w3.org/TR/html14/
scheme

server
path
Fragment identifier

protocol
문서 내부의 위치를 지정

서로 다른 기종의 컴퓨터 사이에
자료를 주고 받기 위한 구약
http://www.w3.org/TR/HTML4/#minitoc
◦ HTTP ( HyperText Transfer Protocol)

WWW 상에서 정보를 주고 받을 수 있는 프로토콜

TCP/IP 프로토콜을 사용하며, 80번 포트를 사용한다.
TCP/IP
하드웨어, 운영체제, 접속 매체와 관계없
이 통신할 수 있는 구조를 가진 프로토콜
이름
프로토콜
포트
기능
WWW
http
80
웹 서비스
Email
SMTP/POP3/IMAP
25/110/143
이메일 서비스
FTP
ftp
21
파일전송 서비스
<html> html : HTML 문서임을 선언
<head> head : 페이지에 대한 정보를 포함하는 Head 부분 선언
<title>문서의 제목</title> title : 문서의 제목을 지정
</head>
<body bgcolor=“white”> body : 화면에 출력되는 내용이 들어가는 body 부분 선언
<h1>Good Advice for Everyday life</h1>
<h2>For UNIX programmers</h2>
<b>Never</b> type :
<p><tt>rm –rf /*</tt><p>
on your computer.
<h2>For Nuclear Scientists</h2>
<b>Never</b> press the
<i>Big <font color=“red”>Red</font> Button</i>.
h1 ~ h6,b,p,I,tt, font : 화면에 출력되는 글자의 형식을 지정하기 위해 사용
</body>
</html>
HTML element :HTML 문서의 구조를 지정, 일반적으로 tag라고 부름
웹 브라우져에서
확인한 결과

CGI (Common Gateway Interface)
◦
◦

초기 웹 프로그래밍 개발에 사용된 기술, 현재는 거의 사용되지 않음
C 언어, Perl 등의 다양한 프로그래밍 언어를 지원하지만, 각 요청마다 개별 프로세스 생성으로 인한 시스템
부하 증가, 프로그램 내에서 HTML 을 처리하여 사소한 HTML 태그 변경에도 프로그램 재컴파일 필요
Server Script 기술
◦
◦
◦
◦
HTML에 프로그램 언어를 스크립트로써 사용할 수 있게 해주는 기술
프로그램의 해석이나 컴파일 과정을 서버에서 담당
CGI 방식보다 소스 코드가 간결하고, 컴파일을 서버에서 자동으로 담당하여 편리하며, HTML 태그 수정도
HTML 파일 내에서 가능
Server Script 기술의 종류
 ASP(Active Server Page)


장점
• PerlScript, JScript, VBScript 등 다양한 스크립트 언어 지원
• VBScript를 이용할 경우 서버 컴포넌트 사용 가능
단점
• Windows 운영체제와 IIS 웹 서버에서만 동작
PHP(Professional Hypertext Preprocessor)
장점
• 오픈소스 프로젝트로이므로, 다양한 운영체제와 웹 서버 환경에서 사용 가능
• 빠른 처리 속도, 메일과 데이터베이스 처리 등의 자체 지원
단점
• 순수 프로그래밍 언어가 아니므로 프로그래밍 언어로서의 강력한 기능 부족
• 클라이언트 요청에 따라 해당 PHP 페이지를 매번 프로그램 형태로 컴파일하므로, 사용자 증가에 따라
처리 효율이 떨어짐
JSP(Java Server Page)
장점
• Servlet이라는 자바 웹 프로그래밍 기법에 기반으로, HTML 과 함께 스크립트를 사용할 수 있음
• 프로세스 기반이 아닌 좀더 가벼운 스레드 기반으로 하여 효율적인 시스템 자원 관리
• Java 라는 강력한 객체지향 언어를 사용할 수 있음
단점
• 많은 메모리 요구
• 최초 Servelt 컴파일에 다소 시간이 걸림

Java(자바)
◦ Sun Microsystems 에서 개발한 객체지향형 프로그래밍
◦ Java는 C++ 언어의 대안으로 개발되었기 때문에 문법적인 특성은 C++의 조상인 C언어와 유
사
◦ Java로 작성된 프로그램은 bytecode라는 특수한 바이너리 형태로 변환되며, Java Virtual
Machine(JVM 자바 가상 머신) 이라는 특수한 가상 머신을 통해서 플랫폼 독립적으로 동작 가
능하여, CPU나 운영체제의 종류에 관계없이 JVM이 설치될 수 있는 시스템에서는 어디서나
실행할 수 있음

Servlet(서블릿)
◦ 자바를 사용하여 사용자의 요청에 따라서 웹페이지를 동적으로 생성하는 서버측 프로그램 또
는 그 사양
◦ Java 언어로 웹 프로그래밍을 하기 위해 개발된 기술
◦ 요청마다 프로세스보다 가벼운 쓰레드로써 응답하여 많은 요청에 대응

JSP(Java Server Page)
◦ Java Servelt 기반의 서버 스크립트 기술
◦ 특징

최초 Servlet으로 컴파일된 후에 메모리에서 처리되어 많은 사용자 접속도 처리 가능

JSP 또는 다른 Servlet의 데이터 공유 가능

Java의 모든 기능 사용 가능

다양한 운영 체제 및 개발 환경에서 이용할 수 있음

JSP 동작 흐름도
Client PC
Web browser
•
1.
2.
3.
4.
5.
6.
Apache HTTP Server,
Microsoft IIS 등이 Web
Server에 해당
Web Server
JSP 페이지 요청
HTML 파일(텍스트) 전송
Apache Tomcat이
Servlet Container에 해당
하며, 약간의 Web Server
기능도 구현
JSP 동작 원리
사용자의 웹 브라우저가 웹 서버에 JSP 페이지 요청
웹 서버는 요청 내용을 분석하고, Servlet
Container에 요청을 넘김
Servlet Container는 JSP 파일에 해당하는 Servlet
이 컴파일되어 있는지 확인하고, 아닐 경우 컴파일
하여 적재
Servlet 실행 내용 중 데이터베이스 처리 부분이 있
으면, 데이터베이스에 데이터를 가져옴
화면에 보일 내용을 HTML 형태로 웹 서버에 반환
웹 서버는 사용자에게 HTML 파일 전송
Servlet
Container
요청받은 JSP 파일에 해
당하는 서블릿이 있는가
예
Servlet 실행
데이터베이스
처리 부분 있는가
아니오
JSP파일을
Servlet 으로 컴파일
컴파일된 Servlet을
컨테이너에 적재
예
아니오
실행 결과 Web
Server에 반환
데이터베이스 가져오기
데이터베이스

HTML (HyperText Markup Language)
◦


웹 프로그래밍 기술
◦
CGI (Common Gateway Interface) : 현재는 잘 쓰이지
않는 초기 웹 프로그래밍 개발에 사용된 기술
◦
Server Script 기술 : HTML 에 프로그램 언어를 스크립트
로써 사용할 수 있게 해주는 기술이며, ASP(Active
Server Page), PHP(Professional Hypertext Processor),
JSP(Java Server Page) 등이 있음
JAVA
◦

Java Virtual Machine 위에서 실행되는 플랫폼 독립적인
객체지향형 프로그래밍 언어
Servlet
◦

◦
웹 자원의 위치를 알려주기 위한 규약
WWW 상에서 정보를 주고 받을 수 있는 규약
Java 언어로 웹 프로그래밍을 하기 위해 개발된 기술
JSP(Java Server Page)
◦
Servlet 기반의 서버 스크립트 기술, 다양한 장점이 있음
Java 의 버전
◦
◦
HTTP (HyperText Transfer Protocol)
◦

인터넷에서 웹 페이지를 표시하기 위해 일반적으로
사용되는, Hyperlink 로 연결되어 있는 HyperText
를 기술하기 위한 Markup language
URL (Uniform Resource Locator)
◦



Java SE : Standard Edition(표준판), 일반적인
자바 프로그래밍
Java EE : Enterprise Edition(기업판), 표준판을
기반으로 확장된 라이브러리 집합을 정의
Java ME : Micro Edition(축소판), 핸드폰이나
PDA 등 임베디드 기기용
Apache HTTP Server와
Apache Tomcat
◦
Apache HTTP Server는 자유 소프트웨어 HTTP
웹 서버이며, Apache Tomcat는 Servlet
Container만 있는 웹 애플리케이션 서버이다.
Tomcat의 경우, 대규모 사용자에 대응하기 위
해 Apache HTTP Server와 연동하여 사용하기
도 한다.

간단한 JSP 작성 – 현재 날짜와 시간을 보여주는 페이지 작성
•
소스 코드
<%@ page language="java"
contentType="text/html; charset=EUCKR“ pageEncoding="EUC-KR"%>
<!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>Hello World, my first jsp</title>
</head>
<body>
<center>
<H2>HelloWorld : 헬로월드</H2>
<HR>
현재 날짜와 시간은 : <%= new java.util.Date() %>
</center>
</body>
</html>
•
실행 결과

JAVA SE Development Kit
◦ JAVA 의 소프트웨어 개발도구
◦ Sun Microsystems에서 제작, 배포하고 있으며, GNU General
Public License(GPL) 에 따라 배포된다.
◦ http://java.sun.com

Apache Tomat
◦ Apache Software Foundation에서 개발한 Application Server
◦ Java Servlet과 JavaServer Pages(JSP) 명세를 구현
◦ http://tomcat.apache.org

Eclipse
◦ 자바를 비롯한 다양한 언어를 지원하는 통합 개발 환경
◦ http://www.eclipse.org
클릭
클릭
클릭
클릭
prompt에서
java –version 입력
JAVA 버전 확인
클릭
클릭
클릭
클릭
Password지정
클릭
클릭
클릭
설치종료 후
Tomcat 서비스 시작중
Apache Tomcat
설정창
Configure 클릭
Manual 선택
2.Stop 클릭
Tomcat Tracy Icon에서
오른쪽 클릭
3. 확인 클릭
www.eclipse.org 접속
클릭
클릭
클릭
실행되지 않을 경우 다음과 같이
eclipse.ini 파일을 수정
압축 풀기
-showsplash
org.eclipse.platform
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
-XX:PermSize=64m
-XX:MaxPermSize=128m
workspace(작업공간)으로
사용할 폴더 임의 지정
실행
클릭
편집기에 행 번호를
표시하기 위해
‘Show line numbers’
항목 체크
Text Editors
선택
클릭
클릭

Object-Oriented Programming(객체지향 프로그래밍)
◦ 컴퓨터 프로그래밍의 패러다임의 하나
◦ 컴퓨터 프로그래밍을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된
단위, 즉 Object(객체)들의 모임으로 파악하고자 하는 것

Class(클래스)
◦ 개별 객체들의 attribute(속성)를 저장하기 위한 ‘field’와 behavior(행위)를 규정
하는 ‘method’를 정의

Object(객체)
C의 함수와 유사
◦ Class가 실제로 메모리에 할당된 instance
◦ Object는 고유의 attribute를 가지며, Class에 정의한 behavior를 수행함

자바 프로그램의 실행
소스 코드 작성
컴파일
Byte Code
(class파일)
Java Virtual Machine
을 통해 실행
현재는 Java EE
Perspective 로 설정되
어 있음

Perspective
◦
클릭
Eclipse IDE에서 리소스의 관리, 프로그래밍, 디버그
등의 작업을 하기 쉽도록 에디터, 뷰를 배치하는 기능
‘Java’ 선택
새로 생성할 Java
Project 의 이름을 지정
Java Perspective 로 변경
오른쪽 클릭
‘Java Project’
선택
Java Project 생성
새로운 Java Project 설정
앞에서 만든 Java Project
오른쪽 클릭
새 java 파일 생성(1)
Class 선택
Class 이름으로
‘Dog’ 입력

public static void
main(String[] args)
◦
◦
Java 프로그램을 시작할 때
Java Virtual Machine 에서 호
출되는 최초의 method
반드시 위와 같은 형태로 선언
해야 함
자동으로 생성되
는 코드에 main
method를 추가
하기 위해 선택
새 java 파일 생성(2)
클릭
생성된 Dog.java 파일
Dog Class의 소스 코드 수정
•‘name’ 이라는 String 변수 선언
•private 한정자는 접근 범위를 class내부로 한정
• Dog class의 생성자 선언, 인자로 String object (객체)를 받음
• 2열에서 선언헌 ‘name’변수가 인자로 받은 String 객체를 참조
하도록 함
• Dog class에 ‘bark’ method를 정의
• ‘System.out.println’ method를 호출하여 콘
솔에 문자열 출력
• Dog object를 생성하고 ‘myDog’가 참조하다
록함
• myDog가 참조하고 있는 Dog object의 ‘bark’
method 호출
Dog.java 을 Java
Application 으로 실행
실행 결과를 Console 뷰에서 확인
Dog.java 에서
오른쪽 클릭
Java Application 선택
실행 결과가 Console뷰에 표시됨
Wrapper Class
• 기본 타입을 Object로 다루
기 위하여 제공되는 클래스

기본타입
기본 타입
크기(bit)
최소값
최대값
Wrapper Class
byte
8
-128
127
Byte
short
16
-215
(-32,768)
215-1
(32,767)
Short
int
32
-231
(-2,147,483,648)
231-1
(2,147,483,647)
Integer
long
64
-263
263-1
Long
기본 타입
크기(bit)
Wrapper Class
비고
float
32
Float
32-bit IEEE 754 floating-point numbers
double
64
Short
64-bit IEEE754 floating-point numbers
기본 타입
크기(bit)
최소값
최대값
Wrapper Class
char
16
Unicode 0
Unicode 216-1
Char
정수형
실수형
문자형
논리형

(-9,223,372,036,854,775,808)
(9,223,372,036,854,775,807)
기본 타입
크기(bit)
가질 수 있는 값
Wrapper Class
boolean
정확히 정의되지 않음
true / false
Char
참조타입
◦
기본 타입을 제외한 모든 자료형(class 변수, array 변수, String 변수)
Simple Assignment Operator
Equality ,Relational Operators
(동등, 비교 연산자)
(단순 할당 연산자)
=
Simple assignment operator
Arithmetic Operators
(산술연산자)
Conditional Operators
(조건 연산자)
==
Equal to
&&
Conditional -AND
!=
Not equal to
||
Conditional-OR
>
Greater than
?:
Ternay
+
Additive operator
>=
Greater than or equal to
-
Subtractive operator
<
Less than
*
Multiplication operator
<=
Less than or equal to
/
Division operator
%
Remainter operaotr
Conditional Operators
(조건 연산자)
Bitwise , Bit Shift Operators
(비트 연산자)
~
Unary bitwise oplement
<<
Signed left shift
>>
Signed righet shift
&&
Conditional -AND
>>>
Unsigned right shift
(단항연산자)
||
Conditional-OR
&
Bitwise AND
+
Unary plus operator
?:
Ternary
^
Bitwise exclusive OR
-
Unary minus operator
|
Bitwise inclusive OR
++
Increment operator
--
Decrement operator
!
Logical compliment
operator
Unary Operators
Type Comparison Operator
(형 비교 연산자)
instanceof
object 가 특정 type인지 비교
if-then-else 문
int testscore = 76;
char grade;
false
if ( testscore >= 90) {
true 또는 false값을 갖는 조건식
grade = ‘A’;
} else if ( testscore >= 80) {
false
grade = ‘B’;
} else if ( testscore >= 70) {
grade = ‘C’;
true
} else if ( testscore >= 60) {
grade = ‘D’;
true이므로 실행됨
} else {
다음 else if, else문은 무시됨
grade = ‘F’;
}
System.out.println(“Grade = “ + grade);
Grade = A
[실행결과]
swith 문
정수값
int month = 8;
switch (month) {
case 1: System.out.println(“Jan”); break;
case 2: System.out.println(“Feb”); break;
case 3: System.out.println(“Mar”); break;
case 4: System.out.println(“Apr”); break;
month는 8이므로
case 8이 실행됨
case 5: System.out.println(“May”); break;
case 6: System.out.println(“Jun”); break;
case 7: System.out.println(“Jul”); break;
case 8: System.out.println(“Aug”); break;
case 9: System.out.println(“Sep”); break;
case 10: System.out.println(“Oct”); break;
case 11: System.out.println(“Nov”); break;
case 12: System.out.prnitln(“Dev”); break;
default: System.out.println(“Invalid month.”); break;
}
Aug
[실행결과]
for 문
for( 초기화식;탈출조건;반복식) {명령문}
1. 먼저 초기화식을 실행 후 탈출조건을 검사하
여 true이면 명령문을 실행, false면 다음으
로 넘어감
2. 반복식 실행후 탈출조건을 검사하여 true이
면 다시 명령문 실행 후 반복신 실행, 다시
탈출조건 검사
for (int i = 1; i<9; i++) {
System.out.println(“Count is: “ + i);
}
Count
Count
Count
Count
Count
Count
Count
Count
is:
is:
is:
is:
is:
is:
is:
is:
1
2
3
4
5
6
7
8
for-each 문
for( 원소참조변수 : Collections 또는
배열) { 명령문 }
Java Collection(Set, List 등) 또는 배열에 대하
여 순차적인 원소 접근이 필요할 때 사용하는 간
략화된 구문
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8};
for ( int item : numbers) {
System.out.println(“Count is: “ + item);
}
[실행결과]
while 문
while(탈출조건) {
명령문
}
1. 먼저 탈출조건을 검사하여 true이면 명령문
을 실행하고, false이면 다음으로 넘어감
2. 명령문 실행 후 다시 탈출조건을 검사하여
명령문의 실행 여부를 결정
int count = 1;
while ( count<9 ) {
System.out.println(“Count is: “+count);
count++;
}

Object-Oriented Programming
◦

class의 실제 instance
Java의 기본 타입
◦
Class와 method의 이름
◦
◦
attribute와 behavior를 통해 어떤 것의 추상적인 성격을
정의
Object
◦

응용 프로그램과 컴퓨터 프로그램을 설계하기 위해
Object와 그들간의 관계를 이용하는 프로그래밍 패러다
임
Class
◦



Class의 이름은 대문자로 시작하고 명사를 사용
하며 여러 단어를 조합하여 작성할 경우 각 단어
의 시작은 대문자로 하는 것이 바람직
method의 이름은 소문자로 시작하고 동사를
사용하고 여러 단어를 조합하여 만들 경우 각 단
어의 시작은 대문자로 하는 것이 바람직
Java 언어의 주석
◦
byte, short, int, long, float, double, char, boolean
◦
앞의 예제에는 코드의 간결함을 위해 주석을 삭
제하였지만, Eclipse에서 java 파일을 새로 만들
경우, 주석까지 자동으로 생성해줌
주석의 종류

// : 해당 줄의 끝까지 주석처리

/* */ : 사이의 모든 것을 주석처리



Dynamic Web Project 생성(1/2)
HelloWorld.jsp 소스 코드 작성
Tomcat Server에서의 테스트
편집기 영역
Project Explorer View
프로젝트 생성,관리
Outline View
코드의 전체적인
구조 파악에 도움
1. Project Explorer에
서 오른쪽 클릭
2. Dynamic Web Project
선택



Dynamic Web Project 생성(2/2)
HelloWorld.jsp 소스 코드 작성
Tomcat Server에서의 테스트
3.’Apache Tomcat v5.5’
선택
1.Project Name
임의 지정
4.클릭
2.실행할 서버를 지정하기
위해 ‘New’ 클릭
5.’Browse’ 클릭하여 Tomcat
이 설치된 경로를 지정
6.클릭

Dynamic Web Project 생성

HelloWorld.jsp 소스 코드 작성(1/2)

Tomcat Server에서의 테스트
생성한 Dinamic Web
Project를 Project Explorer
에서 확인할 수 있음
1.WebContent에서
오른쪽 클릭
2.JSP 선택
3.HelloWorld.jsp로
파일 이름 입력
4.클릭

Dynamic Web Project 생성

HelloWorld.jsp 소스 코드 작성(2/2)

Tomcat Server에서의 테스트
Eclipse에서 기본으로
생성된 코드
page 지시어를 사용해
페이지의 속성 지정
<%@ page language="java" contentType="text/html;
charset=EUC-KR“ pageEncoding="EUC-KR"%>
<!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>Hello World, my first jsp</title>
</head>
<body>
<center>
오늘의 날짜와 시간
<H2>HelloWorld : 헬로월드</H2>
을 출력해주는 부분
<HR>
현재 날짜와 시간은 : <%= new java.util.Date() %>
</center>
</body>
</html>

Dynamic Web Project 생성

HelloWorld.jsp 소스 코드 작성

Tomcat Server에서의 테스트(1/2)
1. HelloWorld.jsp에서
오른쪽 클릭
프로젝트를 만들 때의
설정대로 표시됨
3. 클릭
2. Tomcat 서버에서의 실행을
위해 ‘Run on Server’클릭

Dynamic Web Project 생성

HelloWorld.jsp 소스 코드 작성

Tomcat Server에서의 테스트(2/2)
Eclipse 내장 웹브라우저로
표시된 모습
Tomcat이 Eclipse에
연동되어 실행되고 있음
1.
간단한 JSP 작성 – HelloWorld.jsp 을 응용하여 다음과 같이 화면에 자신의
학번과 이름을 출력


Java Development Kit (JDK)
◦


Apache Software Foundation 에서 개발한 Application
Server. Java Servlet 과 JavaServer Pages(JSP) 명세를 구
현하였다.
Eclipse
◦
◦
자바 언어 개발자들이 사용할 수 있도록 Sun
Microsystems에서 배포하는 소프트웨어 개발 도구
Apache Tomcat
◦
Eclipse 의 Perspective
자바 프로그램 작성에 주로 사용되는 open-source
Integrated development environment(IDE)
◦
◦
Eclipse는 Model 계층과 User Interface 계층으
로 구성되어 있으며 프로그램 작성 시 사용되는
자원들을 User Interface 계층에 효율적으로 배
치하기 위해, Perspective 기능을 제공
Perspective 는 사용되는 자원들을 효과적으로
보여주기 위한 View와 편집기로 구성된다.
JSP 프로그래밍을 위해서는 기본적으로 Java EE
Perspective 를 사용한다.

도서, 음반, 영화 중 한 가지 분야를 선택하여 가장 좋아하는 작품의 목록을
HTML의 표 관련 태그를 사용해서 작성. 작품 개수는 10개 이상, 테이블의
열은 5개 이상(작품 제목, 제작 년도 등등)이어야 한다.
◦ 페이지 상단에는 자신의 학과, 학번, 이름을 출력한다.
◦ 테이블의 마지막 열에는 해당 작품의 포스터, 자켓 사진 등의 그림이 들어가야 한
다.