database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Tutorials 4388 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 4388
Windows 에서 JDBC & Java + Servlet + XML 설치하기
작성자
정재익(advance)
작성일
2002-10-15 20:45
조회수
8,458

jdbc

 

java+servlet+xml

 

이런 개발 환경을 구축할려면, 몇가지 과정이 있어서 헤깔리고 힘든 경우가 많다. 다음 글에서 Windows 에서 이러한 환경을 구축하는데 조금이라도 도움이 되길 바란다. 다음은 대략적인 과정만을 설명한 것으로 이런 환경을 원하는 사람들 에게 초기 도움이 되기를 원한다.

 

1.사전 설정

 

처음 설치시 라이센스 등도 문제가 되는 경우가 많으므로 약간의 주의를 기울이기 바란다. 일단 다음과 같이 하면 크게 문제가 될것 같지는 않다.

 

(1) jdk의 설치

 

SUN 사이트에서 Java(TM) 2 Platform, Standard Edition (을)를 구할 수있다.

(인스톨 후에, JAVA_HOME=F:\jdk1.3.1(※주의-F:는 설치 드라이브)으로 환경 변수를 설정한다.)

 

(2) Servlet[Tomcat]의 설치

 

Jakarta Project 에서 Tomcat3.2.3 패키지를 설치하길 권장한다. ---binary 패키지로 설치하길 추천한다.

(source로부터 build 하고 싶은 분은, ant, servletapi, tomcat 이 필요합니다.)

※build 과정은 자세한 정보를 제공하는 사이트가 있으므로 여기서는 언급하지 않겠습니다.

 

(3) XML parser (JAXP)의 설치

 

SUN 사이트에서 Java(TM) Technology & XML 을 구하여 설치할수 있습니다.

(상기, Tomcat3.2.3 binary에 포함되어 있기 때문에 source로부터 build 할 필요없으므로 그쪽을 사용하길 권장합니다.)

 

2.Apache와의 제휴 환경의 설정

 

jakarta-tomcat은 그 자체로 web-server 의 기능도 가지고 있습니다. 그러나, Apache 와 연동하는 쪽이 속도적, 기능면에서 훨씬 뛰어 나므로 일반적인 서버 환경에서 설치하는 방법입니다. 그러므로 비록 개발 환경이라고 해도 Apache 와 연동하는 방식으로 동작시키는 것이 더 좋을 듯 합니다.

 

(1) Tomcat의 초기설정 및 기동

 

일단 bin 디렉토리 내의 startup.bat를 기동합니다.

이렇게 하면 conf 디렉토리 내에서 자동으로―auto 관련의 각종 설정 파일들이 완성됩니다.

브라우저로 http://localhost:8080/ 로 하면 tomcat 이 기동되는 것을 확인할수 있습니다.(^.^) 여기서 일단 종료시킵니다.

 

(2) mod_jk.conf의 작성

 

conf/mod_jk.conf-auto 를 conf/mod_jk.conf 로 복사합니다.

conf/mod_jk.conf 를 추가적으로 수정합니다.

 

LoadModule jk_module mod_jk.dll

 

※ 참고로 이부분은 일본어 설정 관련이며 이글이 원래 일본글의 번역인지라 이 부분이 포함되어 있습니다.

 

(3) server.xml 의 수정

 

Apache 와 연동하기 위해서 web-server 기능을 오프로 합니다.

 

<!-- Normal HTTP -->

<!-- Apache link

<Connector className="org.apache.tomcat.service.PoolTcpConnector">

<Parameter name="handler"

value="org.apache.tomcat.service.http.HttpConnectionHandler"/>

<Parameter name="port"

value="8080"/>

</Connector>

Apache link -->

 

(4) Apache의 config/httpd.conf 의 마지막줄에 아래와 같이를 추가합니다.

 

Include F:\jakarta-tomcat-3.2.3/conf/mod_jk.conf

 

(5) Jakarta 어댑터의 설정

 

mod_jk.dll, jni_connect.dll를 ApacheCore.dll 이 있는 장소에 인스톨 합니다.

(source로부터 build 하는 분은, tomcat-3.2.3-src\src\native\apache1.3 아래에 build-source가 있습니다.)

 

3. postgres-jdbc 드라이버의 설정

 

postgresql-7.1.3 의 jdbc 는 Jan-17-2001 판입니다.

 

(1) postgresql.jar(※주의, JDBC2입니다)를 CLASSPATH에 추가해 주세요.

 

(2) jdbc 동작 테스트

 

interface\jdbc 내의 example\psql로 동작 시켜 보겠습니다.

 

(JAVA-VM만으로 동작시키기 때문에 standalone라면 jdk1.3.1만으로 동작합니다.)

 

java example.psql jdbc:postgresql://localhost/Administrator Administrator ""

PostgreSQL psql example v6.3 rev 1

Connecting to Database URL = jdbc:postgresql://localhost/Administrator

Connected to PostgreSQL 7.1.3

 

psql:1> \dt

 

TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS

급여 정보 TABLE no remarks

경력 정보 TABLE no remarks

사원 명부 TABLE no remarks

s시스 정의 TABLE no remarks

tx TABLE no remarks

kanji TABLE no remarks

psql:2> create table 테이블 정의 (연번 char(6) not null, 라벨명 char(20) not null, db명칭 char(60) not null, 항목명 char(60) not null, 행수 char(2) not null, 렬수 char(2) not null);

Updated 1 rows

psql:3> insert into 테이블 정의 values('000101', '와', '데이타베이스', '넣은', '20', '6');

Updated 1 rows

psql:4> select * from 테이블 정의;

연번 라벨명 db명칭 항목명행 수열수

000101 와 데이타베이스 넣은 20 6

psql:5>\q

 

※이것이 동작하면 PostgreSQL-JDBC 드라이버 세팅은 OK입니다.

 

4. servlet 동작 샘플

 

(1) server.xml에 등록

 

새롭게, web용 디렉토리를 등록(ex. pghome) 합니다.

 

<!-- PG_servlet exsample Add -->

<Context path="/pghome"

docBase="webapps/pghome"

crossContext="true"

debug="0"

reloadable="true">

</Context>

 

(2) mod_jk.conf 에 등록

 

새롭게 web용 디렉토리 정보를 등록(ex. pghome) 합니다.

 

Alias /pghome "F:/jakarta-tomcat-3.2.3/webapps/pghome"

<Directory "F:/jakarta-tomcat-3.2.3/webapps/pghome">

Options Indexes FollowSymLinks

</Directory>

JkMount /pghome/servlet/* ajp12

JkMount /pghome/*.jsp ajp12

<Location "/pghome/WEB-INF/">

AllowOverride None

deny from all

</Location>

<Directory "F:/jakarta-tomcat-3.2.3/webapps/pghome/WEB-INF/">

AllowOverride None

deny from all

</Directory>

<Location "/pghome/META-INF/">

AllowOverride None

deny from all

</Location>

<Directory "F:/jakarta-tomcat-3.2.3/webapps/pghome/META-INF/">

AllowOverride None

deny from all

</Directory>

 

(3) webapps아래에servlet 동작 샘플을 전개합니다.

 

servlet 구성은, 아래와 같은 구성이 되어 있습니다.

 

index.html 탑

 

servlet/ Auto-Reload Servlet-class

Web-inf/web.xml Servlet 의 등록이나 매핑, MIME 매핑등을 정의한다.

web-inf/classes/ Servlet-Class

Meta-inf/mainfest.mf MANIFEST

 

※PostgreSQL 데이타베이스의 사원 명부 테이블은, 전술의 PHP로 작성한 것을 사용합니다.

 

(4) Jakarta-tomcat 과 Apache를 기동합니다.

 

Jakarta-tomcat은 bin\startup.bat 에 의해 기동합니다.

 

2001-09-11 04:14:54 - ContextManager: Adding context Ctx( /pghome )

Starting tomcat. Check logs/tomcat.log for error messages

2001-09-11 04:14:54 - ContextManager: Adding context Ctx( /admin )

2001-09-11 04:14:54 - ContextManager: Adding context Ctx( /examples )

2001-09-11 04:14:54 - ContextManager: Adding context Ctx( )

2001-09-11 04:14:54 - ContextManager: Adding context Ctx( /test )

2001-09-11 04:14:56 - PoolTcpConnector: Starting Ajp12ConnectionHandler on 8007

Apache/1.3.20 (Win32) mod_jk running...

 

(5) pg_servlet 샘플의 동작 확인

 

http://localhost/pghome/servlet/pg_servlet/ 로 지정해 보세요.

 

사원 명부

사원번호   이름                 후리가나                메일 
00101      사이토 타로        사이트우 타로우      sai01@postgresql.org  
00200      후쿠하라 지로     후크하라 시″로우     fukuchan@postgresql.org  
00311      쿠와무라 이치로  쿠웜라 이치로우      kuwamu@postgresql.org  
00412      이시이 요시코     이시이 요시코         ishii@postgresql.org  

 

원시 코드(상기)

pg_servlet

 

// ************************************************************************
// * PostgreSQL Servlet exsample
// * 2001.09.10 H.saito
// ************************************************************************
import java.io.*;
import java.sql.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
//
// package postgresql;
//
public class pg_servlet extends HttpServlet
{
  private Connection handler;
  public void init() throws ServletException
  {
    String PGUrl = "jdbc:postgresql://localhost/Administrator";
    String PGUser = "Administrator";
    String PGPasswd = "";
    try{
      Class.forName("org.postgresql.Driver");
      handler = DriverManager.getConnection(PGUrl, PGUser, PGPasswd);
    } 
    catch (Exception ex){
      throw new
      ServletException("JDBC Error");
    }
  }
  public void doGet (HttpServletRequest request, HttpServletResponse response) 
  throws ServletException, IOException
  {
    try{
      Statement ex_stmt = handler.createStatement();
      String query ="SELECT * FROM 사원 명부 ";
      ResultSet rs = ex_stmt.executeQuery(query);
      response.setContentType("text/html; charset=sjis");
      PrintWriter out = response.getWriter();
      out.println("");
      out.println("JDBC driver function test");
      out.println("");
      out.println("

사원 명부

"); out.println(""); out.println(""); while(rs.next()){ String numb = rs.getString(1); String name = rs.getString(2); String furi = rs.getString(3); String email = rs.getString(4); out.println("" + "" + "" + "" + "" + ""); } out.println("
사원 번호이름후리가나메일
" + numb + "" + name + "" + furi + "" + email + "
"); out.println(""); ex_stmt.close(); } catch (Exception ex){ PrintWriter out = response.getWriter(); out.println("PG_Servlet error

" + ex.getMessage() + ""); return; } } }

 

※java+servlet+xml 은 튜닝만 조금 하면 상당히 고도의 환경을 구축할 수 있습니다. 숙련된 사용자가 아니라면 상당히 곤란을 당할수 도 있습니다. 그러나 제법 괜찮은 환경을 무료로 구축한다는 것은 상당히 도움이 될것으로 판단됩니다.

이 글에 대한 댓글이 총 2건 있습니다.

이 설치과정은 제대로 된 문서를 국내에서 구할수 없어 일단 일본어 문서를 대략적으로 해석해 둔것으로 자세한 설치과정은 이것만으로는 부족합니다.

 

좀더 제대로 된 문서를 구하게 되면 다시 올리도록 하겠습니다.

정재익(advance)님이 2002-10-15 21:33에 작성한 댓글입니다.

제가 위와 같은 환경에서 개발해 본적 이 있습니다.

 

정말 굿입니다..강추천 합니다..

 

여기에다..java 프레임워크들을 얹으면 곧바도 엔터프라이즈

환경이 구축됩니다..

 

물론 오라클처럼..DB엔진과 설계툴들의 궁합을 vendor들이

제공해주는 것은 아니지만..

 

일반적인 수준에서  UML -> 데이터 모델링 -> 순공학의 순서를

밟아 갈 수 있습니다.

 

래쇼날 Rose에서는 데이터 모델링과 DB 스키마를 생성할 수

있어 Postgresql과 sql 쿼리문 차원에서 관리를 할 수 있습니다.

 

김교식님이 2003-12-20 10:44에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
44707.3의 Schema 이야기 [1]
김상기
2002-12-11
12901
4446[초보] Postgresql Windows와 Linux에서 JDBC 드라이버 설치하기
이근호
2002-11-27
19266
4414배열내용 검색 array/intarray와 GIST [1]
신기배
2002-10-27
7339
4388Windows 에서 JDBC &amp; Java + Servlet + XML 설치하기 [2]
정재익
2002-10-15
8458
4337Programming with SQL
정재익
2002-09-09
10365
4336JDBC를 익히자 [1]
정재익
2002-09-09
8476
4324PostgreSQL을 Windows 2000에 설치하기
정재익
2002-09-03
7774
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다