게시판 URI 및 JSP 생각하기
1. URI 및 JSP
1) 리스트
uri : /cp/bbs/list.do
jsp : /WEB-INF/views/bbs/list.jsp
2) 글쓰기 폼
uri : /cp/bbs/write.do
jsp : /WEB-INF/views/bbs/write.jsp
3) 글쓰기 완료
uri : /cp/bbs/write_ok.do -> list.do 로 리다이렉트
4) 글보기
uri : /cp/bbs/article.do
jsp : /WEB-INF/views/bbs/article.jsp
5) 글수정 폼
uri : /cp/bbs/update.do
jsp : /WEB-INF/views/bbs/write.jsp
6) 글수정 완료
uri : /cp/bbs/update_ok.do -> list.do 로 리다이렉트
7) 글삭제
uri : /cp/bbs/delete.do -> list.do 로 리다이렉트
2. 흐름도와 파라미터(클라이언트가 서버에 보내는 값)
1) 리스트
- 리스트 --> 리스트 : 페이지번호클릭(페이지번호[, 검색컬럼, 검색값])
- 리스트 --> 리스트 : 검색(검색컬럼, 검색값)
- 리스트 --> 리스트 : 초기화(검색 해제)
- 리스트 --> 글쓰기폼 : 등록하기 버튼
- 리스트 --> 글보기 : 제목클릭(글번호, 페이지번호[, 검색컬럼, 검색값])
2) 글쓰기폼
- 글쓰기폼 --> 등록하기 : 글저장 --> 리스트로 리다이렉트
|
(폼 데이터 : 제목, 작성자, 내용, 패스워드)
- 글쓰기폼 --> 등록취소 : 리스트로 가기
3) 글보기
- 글보기 --> 리스트 : 리스트버튼(페이지번호[, 검색컬럼, 검색값])
- 글보기 --> 글보기 : 이전글/다음글(이전글/다음글번호, 페이지번호[, 검색컬럼, 검색값])
- 글보기 --> 수정폼 : 수정버튼(글번호, 페이지번호)
- 글보기 --> 글삭제 : 삭제버튼(페이지번호[, 검색컬럼, 검색값])
4) 글수정폼
- 글수정폼 --> 수정완료 : 글수정버튼--> 리스트로 리다이렉트(글보기로 리다이렉트)
|
(폼 데이터 : 제목, 작성자, 내용, 패스워드, 글번호, 페이지번호) // 수정할게시글번호!!
- 글수정폼 --> 수정취소 : 리스트로 가기
5) 글삭제 --> 리스트로 리다이렉트(페이지번호[, 검색컬럼, 검색값])
자유게시판으로 사용할 DB table
-- 게시판 테이블
CREATE TABLE bbs (
num NUMBER NOT NULL,
name VARCHAR2(30) NOT NULL,
pwd VARCHAR2(50) NOT NULL,
subject VARCHAR2(255) NOT NULL,
content VARCHAR2(4000) NOT NULL, -- 1300자 이상 저장을 위해서는 CLOB
ipAddr VARCHAR2(50) NOT NULL,
hitCount NUMBER DEFAULT 0,
reg_date DATE DEFAULT SYSDATE,
CONSTRAINT pk_bbs_num PRIMARY KEY(num)
);
-- 게시판 시퀀스
CREATE SEQUENCE bbs_seq
INCREMENT BY 1;
START WITH 1
NOMAXVALUE
NOCYCLE
NOCACHE;
페이징 처리에 사용하는 쿼리 Query
-- ORACLE :
아래 쿼리는 오라클에서 성능이 우수함
SELECT * FROM (
SELECT ROWNUM rnum, tb.* FROM (
SELECT num, name, subject, hitCount,
TO_CHAR(reg_date, 'YYYY-MM-DD') reg_date
FROM bbs
ORDER BY num DESC
) tb WHERE ROWNUM <= 끝
) WHERE rnum >= 시작;
-- 수정/삭제가 빈번히 일어나는 경우 index의 성능이 좋지 않음.
-- ORACLE 12C 이상 : 위 쿼리보다 성능이 좋지 않음
SELECT num, name, subject, hitCount,
TO_CHAR(reg_date, 'YYYY-MM-DD') reg_date
FROM bbs
ORDER BY num DESC
OFFSET 30 ROWS FETCH FIRST 10 ROWS ONLY;
---------------------------------
-- MySQL
SELECT num, name, subject, hitCount,
DATE_FORMAT(reg_date, '%Y-%m-%d') AS reg_date
FROM bbs
ORDER BY num DESC
LIMIT 건너뛸개수, 가져올개수;
'쌍용강북교육센터 > 10월' 카테고리의 다른 글
1021_JSP/Servlet : 세션 Session (0) | 2021.10.25 |
---|---|
1021_JSP/Servlet : 쿠키 Cookie (0) | 2021.10.25 |
1018_JSP/Servlet : 게시판 페이징 처리 클래스만들기 // 복습 (0) | 2021.10.20 |
1014_JSP/Servlet : Servlet을 이용해서 간단한 인사관리 페이지 만들기 (0) | 2021.10.19 |
1012~1013_Servlet/JSP : 서블릿 (ch04,ch05 예제포함), 파라미터, forward (0) | 2021.10.14 |