JSP 게시판 프로젝트 페이지에서는 간단한 게시글 등록 조회 수정 삭제를 하는 기능을 가진 동적 웹사이트를 개발해 보는 방법을 알아보겠습니다.
프로젝트 생성 및 라이브러리 세팅
JSP 게시판 프로젝트를 개발하기 위한 가장 첫 번째 단계로 프로젝트를 생성하고 라이브러리를 세팅하는 작업을 진행해 보도록 하겠습니다.
사전 준비 사항
•
JDK 1.8 버전 이상 설치
•
IDE - Eclipse 설치
이번 프로젝트는 jdk1.8 버전 이상에서 이클립스 IDE 를 사용해서 진행해 보도록 하겠습니다 사전에 설치가 되어 있지 않은 분들은 위의 링크를 클릭하여 자바 개발 환경을 세팅하시면 되겠습니다.
작업 순서
1.
자바 웹 프로젝트 생성
a.
Dynamic Web Project
2.
라이브러리 세팅
a.
b.
자바 웹 프로젝트 생성
1.
[File] > [New]
2.
[Dynamic Web Project]
3.
web.xml
이클립스를 실행해서 [File] 메뉴의 [New] 메뉴로 들어가서 Dynamic Web Project 를 선택하도록 하겠습니다.
.프로젝트 이름은 간단하게 “Board” 라고 하고, 웹 어플리케이션 서버는 아파치 톰캣 9.0 버전을 사용하도록 하겠습니다. 또한 서블릿 버전은 4.0 버전을 선택하고 다음으로 넘어가겠습니다.
이 화면에서는 프로젝트에 빌드 기본 경로를 설정합니다 기본 값으로 세팅된 대로 놔두고 다 못 다음으로 넘어가겠습니다.
이 화면은 웹 모듈을 설정하는 화면입니다. 이 화면에서는 Context root 그리고 Content directory를 설정합니다. 또한 web.xml 파일을 생성할지 여부를 체크할 수 있습니다.
설정 | 내용 |
Context root | 웹 애플리케이션의 루트 경로 (주로 프로젝트 이름과 동일하게 지정) |
Content directory | JSP 파일 및 정적 자원(html,css,js,img 등) 이 위치하는 경로 |
web.xml | 웹 애플리케이션 설정 파일 |
Context
문맥 및 상황에 따라 이해되는 한 차원 높은 공간이나 영역.
Context 라고 하는 용어는 프로그래밍이나 컴퓨팅 분야에서, 어떤 상황이나 환경을 설명할 수 있는 영역이나 경로를 말합니다.
여기서 설정하는 Context root는 웹 애플리케이션을 호스팅 했을 때 해당 애플리케이션을 접근할 수 있는 최 상위 경로를 말합니다. 이클립스에서는 기본 값으로 프로젝트 이름과 동일하게 지정됩니다.
Content directory
컨텐츠 디렉토리는 JSP 파일하고 정적 자원이 위치해야 할 경로를 말합니다.
web.xml
web.xml 파일은 웹 애플리케이션의 설정 파일로 다음과 같은 기능을 지정하기 위해 사용합니다.
•
루트 페이지 설정 (welcome file)
•
서블릿 매핑
•
필터 설정
•
에러 페이지 설정
결과 화면
라이브러리 세팅
이제 프로젝트를 생성했으니 게시판 기능을 구현하기에 필요한 라이브러리를 세팅해 보도록 하겠습니다.
라이브러리
•
JDBC (Java Database Connectivity)
◦
MySQL Connector/J
•
JSTL
•
파일 업로드
◦
commons-io
◦
commons-fileupload
JDBC는 자바 어플리케이션으로 데이터베이스에 접근하여 데이터를 관리하고 조작하기 위한 api입니다. 이 페이지에서는 JDBC 중에서 mysql 데이터베이스하고 연결하는 JDBC 드라이버를 사용하도록 하겠습니다.
JSTL 은 JSP 에서 사용할 수 있는 표준 태그 라이브러리입니다. JSTL 을 사용하면 JSP 페이지 내에서 자바코드를 사용하는 것을 조금 더 간결하고 가독성을 높여서 사용할 수 있습니다. 주로 JSP 페이지 대해서 조건문과 반복문을 활용하거나 데이터 포맷을 처리하거나 데이터 요청 처리를 할 때 사용됩니다.
서블릿 및 JSP 에서 파일 업로드 기능을 구현하기 위해서는 주로 commons-fileupload 나 cos 파일 업로드 라이브러리를 사용합니다. 이 프로젝트에서는 commons-fileupload 를 사용해 보도록 하겠습니다..
1. MySQL 드라이버
위에 링크를 클릭하시면 JDBC 라이브러리를 바로 다운로드 할 수 있습니다.
해당 사이트로 이동해서 Platform Independent 를 선택하고 맥 OS 환경에 하면 TAR 아카이브 윈도우 OS 환경이라면 ZIP 아카이브를 압축해제를 하시면 되겠습니다.
압축을 해제하고 나면 mysql-connector-j j라고 하는 JDBC 라이브러리를 볼 수가 있습니다.
WEB-INF/lib 디렉토리에 JDBC 라이브러리 파일를 추가해주세요. 파일 폴더에서 ctrl + C 하고 이클립스에서 ctrl + V 하면 쉽게 추가할 수 있습니다.
일반적으로 WEB-INF/lib 디렉토리에 라이브러리(JAR 파일)를 배치하면 웹 애플리케이션 서버(예: Tomcat, Jetty 등)가 해당 라이브러리를 자동으로 인식합니다. 이 디렉토리에 라이브러리 파일을 추가하면 웹 애플리케이션이 실행될 때 해당 라이브러리가 class-path 에 추가되어 웹 애플리케이션에서 사용할 수 있게 됩니다.
2. JSTL 라이브러리
위에 링크를 클릭하시면 JSTL 라이브러리를 바로 다운로드 할 수 있습니다.
모듈 | 내용 |
spec | JSTL 스펙 자체를 정의한 인터페이스와 클래스를 포함 |
impl | JSTL의 핵심 로직과 태그 라이브러리 구현이 포함 |
jstlel | JSTL 태그에서 변수와 표현식을 다루기 위한 언어로, ${} 표현식을 평가하는 로직 포함 |
compat | 이전 버전의 JSTL과 호환성을 유지하면서 새로운 JSTL 버전을 사용하려는 경우에 도움을 주는 라이브러리 |
1.
JSTL 태그 라이브러리 다운로드
a.
taglibs-standard-compat-1.2.5.jar
b.
taglibs-standard-impl-1.2.5.jar
c.
taglibs-standard-jstlel-1.2.5.jar
d.
taglibs-standard-spec-1.2.5.jar
2.
JSP 프로젝트 에 포함하기
a.
[WEB-INF] > [lib] 폴더에 추가
JSTL 태그 라이브러리 추가하기
JSTL 라이브러리 파일 4개를 다운로드 받아 라이브러리 폴더에 추가해 줍니다.
3. 파일 업로드 라이브러리
3.
프로젝트에 라이브러리 파일 포함하기
a.
Project
i.
webapp/WEB-INF/lib
ii.
commons-io.jar 파일 저장하기
iii.
commons-fileupload.jar 파일 저장하기
파일 업로드 라이브러리 파일인 commons-fileupload 와 commons-io 다운로드 받아 라이브러리 폴더에 추가해 줍니다.
톰캣 서버 연동
웹 어플리케이션을 실행 할 수 있도록 톰캣 서버를 설치하고이를 이클립스에서 실행할 수 있도록 연동해보도록 하겠습니다.
1.
[File] > [New] > [Other]
2.
[Server]
3.
Tomcat v9.0 Server
a.
[Browse] > 웹서버 위치 설정
b.
jre > JRE 선택
Ctrl + N 이나 [File] 메뉴의 [New] 메뉴에서 [Other] 를 클릭합니다.
server 를 검색하여 선택하고 다음을 누릅니다.
사용할 웹 애플리케이션 서버 및 버전을 선택합니다. 여기서는 Tomcat v.9.0 을 사용하겠습니다.
[Browse] 버튼을 눌러, 실제로 톰캣이 설치된 설치 경로를 지정해 줍니다.
일반적으로 톰캣은 아래 경로에 설치됩니다.
C:\Program Files\Apache Software Foundation\Tomcat 9.0
Bash
복사
[Finish] 버튼을 눌러 톰캣 서버 설정을 완료합니다.
[Servers] 탭을 열어보면 새로 생성된 서버를 확인할 수 있습니다.