참고로, 이곳에(www.koug.net) 있는 게시판 소스는 게시판 마다 테이블을 따로쓴다는걸 전제로 합니다.
/*
원작자 : www.okjsp.pe.kr
작성자 : jinuxer@dreamwiz.com
배포처 : http://www.koug.net
작성일 : 2001-11-26-월
테스트 : http://www.koug.net
*/
==============================================================================
본 게시판의 전신은 http://www.okjsp.pe.kr 쥔장이신 케누(kenu)님이 만드신 게시판입니다.
케누님에게 누가 되지 않도록 하기 위해서 많은 테스트와 시행착오를 거쳤습니다.
제가 추가한 내용을 아래에 부분부분 나열하겠습니다.
==============================================================================
Oracle8i, O'reilly MultiPartRequest 를 이용한 자료게시판입니다.
------------------------------------------------------------------------------
2001-11-26-월
board_write2.jsp 에 답변시 메일보내기 기능 추가.
MailBean.java 메일보내기에 필요한 bean
board_move.jsp <-- 게시물 이동을 위한 소스
(okboard 는 프로시저로 했으나,
게시판마다 테이블을 따로 쓰는 관계로 jsp 코드로 했습니다.
다른 방법이 있을수도....ㅡ_ㅡ)
board_write.jsp <-- 게시물 이동관계로 소스 약간 수정.
(관리자로 로그인시에 번호 라인에 체크박스가 떠서,
이동시키고자 하는 게시물을 체크후 아래에서 이동할 게시판을 선택하여 게시물을 이동.)
O'reilly MultiPartRequest 를 *.jar 로 묶어서 WEB_INF/lib/* 에 두었습니다.
그 밖에 몇가지 버그수정.
2001-11-25-일
전신인 okboard0.95 에 맞게 업그레이드
board_insert.jsp
board_modify.jsp
board_reply.jsp
board_insert2.jsp
board_modify2.jsp
board_reply2.jsp
를
board_write.jsp
board_write2.jsp
로 통합
시간순, 답변순 기능 추가.
CREATE INDEX IDX_KBOARD2 ON KBOARD (SEQ)
go.jsp <-- fake 파라메터를 이용해 주소줄에 시간 추가 후 브라우저의 멍청한 점 이용 새로 페이지 로딩하게 함.
2001-11-22
Fn.java <-- 바이트 substring 추가(사용예 - Fn.cropByte(str,4,"..."); )
2001-11-21
./board/adm/admin_create.jsp <-- acount column(게시판 설명-HTML가능) 추가 및 버그 수정
./board/adm/admin_modify.jsp <-- 게시판 변경 폼변경(게시판 설명 부분 추가)
./board/adm/board_list.jsp <-- 게시판 생성폼 변경(게시판 설명부분 추가)
oraclejdbc.jsp <-- 오라클과 JDBC 연동 테스트 파일 첨부
./board/prelist.jsp <-- 메인화면에 뿌려줄땐 Re^# 이런 식으로
기타 여러가지 버그 수정 현재로선 잘 돌아감.
2001-10-19
board.css css 파일을 이용하여 쉽게 테이블 레이아웃을 변경가능(쌩노가다해따..ㅡ.,ㅜ)
2001-10-18
admin_create.jsp 게시판 관리 테이블 유무 체크
admin_delete.jsp 게시판 관리 테이블 유무 체크
top.jsp ./adm/* 밑의 jsp 에 include 시 테이블이 존재하지 않는다는 버그 수정
admin_login.jsp redirect 수정
prelist.jsp Pool 을 이용하여 메인페이지 속도 개선
기타 잡다한 몇가지 버그수정 ^^ㆀ
2001-10-15
admin 기능을 추가하였습니다.
admin 기능의 내용은,
1. 게시판을 관리하는 테이블을 따로 생성하여 게시판을 관리토록 하였습니다.
2. 게시판 추가, 삭제, 변경이 가능합니다.
------------------------------------------------------------------------------
0.92- 2001-10-04 4:05오전
index 사용으로 Oracle 하위버전(8i 미만)의 inline view 에서
order by 사용하지 않고도 순서대로 쿼리가능
Oreilly 의 MultipartRequest 로 jspSmartUpload 대체
(문제발생 windows2k 에서는 한글파일명 지원하지 않음, Unix/Linux 에서는 양호)
게시판 목록 제어 가능 - boardcfg.jsp 의 constraint
미리보기 기능추가
제목길이 조절하는 메소드 추가 Fn.java 의 crop()
필드 추가- homepage, html, preview
jdbc 드라이버 위치 내장 - WEB-INF/lib 디렉토리
브라우저 버전별 다운로드 헤더 구분 - download.jsp
0.91- 2001-07-28 1:26오전
reply 제목줄의 e가 사라지는 버그 수정
패스워드없는 글 관리자 삭제가능토록 수정
0.9- 2001-07-26 4:51오전
관리자 삭제 기능 추가 - 인증만 거치면 삭제시 패스워드 불문 (session 사용)
top.jsp 와 bottom.jsp 를 통한 다중게시판 커스터마이징 가능
kougboard.css 의 ok-1 스타일을 통해 타이틀 배경색 지정가능
페이지 링크에서 파라메터 최적화
게시판 html 코드 보이기
0.81- 2001-07-24 2:14오전
내용 검색 버그 수정
0.8- 2001-07-13 6:19오전
DB Schema 에 SEQ (일련번호) 추가 및 효율화
한글 검색 페이지 넘어가면 안되는 버그 수정
list 에서 tag 장난방지
당일 게시물은 시간으로 목록에 표시
3일 이내 게시물 구분표시
페이지그룹 이동 시 다음페이지의 처음과 끝 게시물로 이동
download 시 스트림 확실히 끊어주기
글쓰기, 수정, 답변 시 취소버튼 추가
main.jsp, Article.java, ArticleLists.java - bean test 파일, bug 많음
0.7- 2001-05-28 2:28오전
게시물 보기에서 관련글 리스트 출력
게시물 보기에서 이전, 다음글 링크 추가
DB Connection 중 사용한 Statement 랑 PreparedStatement 끊어주기
게시물 목록에서 제목길이 30자 제한
리스트에서 현재 페이지 굵게 표시
0.62 - 2001-05-24 11:26오후
검색후 리스트 버그 수정
최근 3일 게시물 표시
Timestamp와 SimpleDateFormat을 이용한 날짜표시
0.61 - 2001-05-23 6:33오전
리스트 버그 수정
0.6 - 2001-05-21 1:58오전
게시판 제목, 이름, 내용 검색 추가
select 항목 지정하는 javascript 추가
0.5 - 2001-05-20 1:11오전
수정기능 추가
Cookie로 입력신상 저장
0.4 - 2001-05-18 10:56오전
답변기능 추가
Fn.java 버그 수정
0.3 - 2001-05-17 5:57오후
오라클의 4000바이트 제한을 풀었습니다.
다운로드 방식을 바꾸었습니다.
한글제목파일, 이미지 다운로드시 이상없습니다.
게시물 작성 후 refresh 되도록 했습니다.
email 링크로 변경했습니다.
doc, xls, ppt, gif, img 모두 다운로드 창 뜹니다.
jsp 코드 올려도 실행되지 않습니다.
전신
kboard 를 오라클용으로 전환합니다.
현재개발환경
tomcat 4.0
Oracle 8.1.5,8.1.7
파일위치
zip 버전
/index.html <-- 게시판 생성 안내와 기타 기능에 대해서 설명, 차후에 변경하세요.
./board/admin.jsp <-- 게시판 관리자 인증처리
./board/adminlogout.jsp <-- 관리자 로그아웃
./board/board.jsp <-- 게시물리스트
./board/board_insert.jsp <-- 자료 입력폼
./board/board_insert2.jsp <-- 자료 입력처리
./board/board_reply.jsp <-- 답변 입력폼
./board/board_reply2.jsp <-- 답변 입력처리
./board/passchk.jsp <-- 수정권한 암호 입력
./board/board_modify.jsp <-- 수정폼
./board/board_modify2.jsp <-- 수정처리
./board/db.jsp <-- jdbc 정보파일
./board/go.jsp <-- back 방지용 중계처리
./board/delete.jsp <-- 삭제권한 암호 입력
./board/delete2.jsp <-- 삭제처리
./board/path.jsp <-- jvm의 classpath 확인
./board/download.jsp <-- 다운로드 처리
./board/error.jsp <-- 에러처리
./board/prelist.jsp <-- 인덱스 페이지에 최신글 보여주기
./board/board.css <-- 페이지 CSS
./board/top.jsp <-- 페이지 상단 처리
./board/bottom.jsp <-- 페이지 하단 처리
./board/header.jsp <-- 페이지 테두리 및 최상단
./board/tail.jsp <-- 페이지 테두리 및 최하단
./board/js/board.js <-- javascript
./board/js/onmouse.js <-- 마우스 on 시 미리보기 기능 스크립트(PHP 로 만든 jsboard[http://jsboard.kldp.org]의 스크립트이용)
./board/adm/admin_create.jsp <-- 게시판 테이블 관리 테이블 생성
./board/adm/admin_delete.jsp <-- 게시판 테이블 관리 테이블 삭제
./board/adm/admin_login.jsp <-- 게시판 테이블 관리 페이지 인증
./board/adm/admin_modify.jsp <-- 게시판 변경 폼(게시판 제목, 게시판 관리자 패스워드)
./board/adm/admin_modify2.jsp <-- 게시판 변경
./board/adm/admincfg.jsp <-- 게시판 테이블 관리 테이블 및 통합 관리자 패스워드
./board/adm/board_create.jsp <-- 게시판 생성
./board/adm/board_delete.jsp <-- 게시판 삭제
./board/adm/board_list.jsp <-- 게시판 리스트
./board/images/ <-- 그림파일 디렉토리
/WEB-INF/classes/util/ <-- 한글처리, 문자열대치, 쿠키처리 빈
/upload/ <-- 파일이 업로드되는 디렉토리
1. 실행법
설치 완료 후 tomcat을 구동시킨 후,
게시판 관리 테이블과 게시판 전체 관리자 패스워드를 적절히 편집합니다.
변경은 ./board/adm/admincfg.jsp 파일에서 하실 수 있습니다.
브라우저에서 http://localhost:8080/board/adm/admin_create.jsp 를 요청합니다.
그러면, 관리자 인증 창이 나옵니다.
위에서 편집해준 게시판 전체 관리자 패스워드를 입력합니다.
위에서 설정해준 게시판 관리 테이블이 생성이 됩니다.
(편집을 하지 않았을 경우 default는 kougboard가 생성됩니다.)
게시판 관리 테이블 생성후 게시판 테이블 리스트로 갑니다.
그다음부터는 보시면 아실겁니다.
2. 보안
oracle의 데이터베이스의 기본 접근권한으로 되어있습니다. (scott, tiger)
변경을 원하시면 ./board/db.jsp 파일만 수정하시면 됩니다.
게시판 관리 테이블 구성
CREATE TABLE KOUGBOARD
SEQ NUMBER NOT NULL,
BBSID VARCHAR2 (10) NOT NULL,
PASSWORD VARCHAR2 (8) NOT NULL,
TITLE VARCHAR2 (500),
ACOUNT VARCHAR2 (2000),
WHEN DATE DEFAULT SYSDATE) );
게시판 샘플 테이블 구성 (TESTBOARD, TESTBOARD_cnts)
CREATE TABLE TESTBOARD (
BBSID VARCHAR2 (10) NOT NULL,
SEQ NUMBER NOT NULL,
REF NUMBER NOT NULL,
STEP NUMBER DEFAULT 0 NOT NULL,
LEV NUMBER DEFAULT 0 NOT NULL,
WRITER VARCHAR2 (50) NOT NULL,
SUBJECT VARCHAR2 (500) NOT NULL,
PREVIEW VARCHAR2 (500),
PASSWORD VARCHAR2 (8),
EMAIL VARCHAR2 (50),
READ NUMBER DEFAULT 0 NOT NULL,
FILENAME VARCHAR2 (200),
MASKNAME VARCHAR2 (20),
FILESIZE NUMBER DEFAULT 0,
DOWNLOAD NUMBER DEFAULT 0,
HOMEPAGE VARCHAR2 (200),
WHEN DATE,
HTML CHAR (1),
IP VARCHAR2 (24))
CREATE INDEX ON TESTBOARD (REF, STEP DESC)
CREATE TABLE TESTBOARD_CNTS (
BBSID VARCHAR2 (10) NOT NULL,
SEQ NUMBER NOT NULL,
CONTENT VARCHAR2 (4000),
CID NUMBER DEFAULT 0 NOT NULL) ;
jinuxer^0^