@ 답변게시판
답변 게시판은 전에 남겼던 글과 글사이에 껴들어가야 되는
문제가 발생한다.
물리적으로는 최근 작성한 답글이 맨 밑으로 들어가지만
조회할때 어떤 조건에 의해 정렬이 답글이 밑에 있는것처럼
만들어 줘야 한다.
1. 원글과 그에 해당하는 답글을 같은 그룹으로 묶을수 있는
team이라는 컬럼도 필요하다. 보통 원글의 고유값을 따라간다.
2. 그러기 위해 레코드 정렬기준을 위한 컬럼이 하나 필요하다
보통 step이라고 명칭하는 컬럼이 필요하다. 원하는 위치에 가져다
놓을 수 있는..... 원글은 0 답글은 1
3. 원글보다 답글은 들여쓰기가 되어야 되고 답변이 깊어질수록
들여쓰기도 되어야 한다. 그러한 값을 저장할 depth라는 컬럼도 필요
원글은 0 답글은 1
select * from reboard
order by team desc,step asc
-- 최근 원글이 위여야 하기 때문에 team은 desc로 한다
테이블 예제
create table reboard(
idx number primary key
,writer varchar(20)
,title varchar(20)
,regdate date default sysdate
,hit number default 0
,ip varchar(15) -- 작성자의 ip
,detail clob
,team number -- 같은 그룹으로 묶어서 보여질 기준컬럼
,step number default 0 -- 같은 그룹내에서의 순위정렬 기준 컬럼
,depth number default 0 -- 답변의 깊이를 알 수 있는 컬럼
)
게시판 공식
-블럭당 시작 페이지
firstPage=currentPage-((currentPage-1)%blockSize)
-블럭당 마지막 페이지
lastPage=firstPage+blockSize-1
-페이지당 시작 index(List 계열의 컬렉션의 인덱스)
curPos=(currentPage-1)*recordSize
-페이지당 시작 번호
num=totalRecord-curPos
@
insert into reboard(idx,writer,title,ip,detail,team values(seq_reboard.nextval,?,?,?,?,seq_reboard.nextval);
오라클의 하나의 쿼리문내에서 nextval은 한번만 수행된다.
@ 민선생님 블로그에서 퍼온 JSP내장 객체
내장 객체 명 |
객체 타입 |
설 명 |
request |
javax.servlet.ServletRequest javax.servelt.http.HttpServletRequest |
클라이언트의 요청 정보를 가진 객체 |
response |
javax.servlet.ServletResponse javax.servlet.http.HttpServletResponse |
클라이언트에 보낼 응답 정보를 가진 객체 |
pageContext | javax.servlet.jsp.PageContext |
컨텍스트 정보를 가진 객체 |
session | javax.servlet.HttpSession | 클라이언트의 세션 정보를 가진 객체 |
application | javax.servlet.ServletContext |
해당 어플리케이션 정보 및 공유 정보를 가진 객체 |
out | javax.servlet.jsp.JspWriter | 응답을 전송하기 위한 출력 스트림 |
config | javax.servlet.ServletConfig |
해당 페이지에 대한 서블릿 초기 파라미터 정보를 가진 객체 |
page |
java.lang.Object javax.servelt.jsp.HttpJspPage |
해당 페이지 서블릿 인스턴스 |
exception
|
java.lang.Throwable | 해당 페이지 서블릿에 대한 예외 객체 |
[출처] JSP의 내장 객체|작성자 zino1187