[JSP] 학교게시판 만들기 연습

🐷Jinie (juniorDeveloper)·2020년 10월 29일
0

JSP/MVC/SPRING

목록 보기
16/81

1. 다중게시판

1. ORACLE에 3개의 테이블을 만든다.

CREATE TABLE ss001 (
  custno NUMBER(6) NOT NULL PRIMARY KEY ,
  custname VARCHAR2(20),
  kor NUMBER(3),
  eng NUMBER(3)
);

CREATE TABLE ss002 (
  custno NUMBER(6) NOT NULL PRIMARY KEY ,
  custname VARCHAR2(20),
  kor NUMBER(3),
  eng NUMBER(3)
);

CREATE TABLE ss003 (
  custno NUMBER(6) NOT NULL PRIMARY KEY ,
  custname VARCHAR2(20),
  kor NUMBER(3),
  eng NUMBER(3)
);

2. SEQUENCE 1개 만들기

CREATE SEQUENCE s_0001
MINVALUE 1 
MAXVALUE 99999 
INCREMENT BY 1 
START WITH 1 
CACHE 20 NOORDER NOCYCLE ;

3. slist.jsp 와 index페이지 연결하기

  • 링크주소에 tab=테이블명 으로 매개변수를 던진다.
  • 링크주소에서 던진 매개변수를 slist.jsp에서 받고,
    session에 넣는다.
  • session에 넣은 값을 session으로 받아서 저장한다.
  • select 쿼리에 session에서 받아둔 테이블명을 넣는다.
    이때 띄어쓰기에 유의한다.



  • 테이블에 값을 넣어 잘 연결됐는지 테스트해본다.
INSERT INTO ss001
    VALUES (s_0001.NEXTVAL, '김하나', 90, 88); 
INSERT INTO ss002
    VALUES (s_0001.NEXTVAL, '나우리', 70, 99); 
INSERT INTO ss003
    VALUES (s_0001.NEXTVAL, '나종문', 80, 66);
INSERT INTO ss003
    VALUES (s_0001.NEXTVAL, '박영심', 90, 76);
INSERT INTO ss003
    VALUES (s_0001.NEXTVAL, '최철수', 58, 95);

4. 글쓰기

  • 게시판 옆쪽에 '글쓰기' 링크를 걸어준다.
  • 글쓰기 폼 form.jsp를 만든다.
  • 시퀀스는 NEXTVAL을 이용해 자동생성한다.
    테이블은 session으로 받은 값을 이용해서 from 테이블명을 지정한다.
  • 테이블에 insert가 완료되면, response.sendRedirect를 이용해 slist.jsp로 다시 돌아가도록 설정한다. 단, 변수 table의 값이 초기화 되어 링크되기 때문에,
    아래와 같이 if문을 걸어 아래처럼 매개변수 tab != null일 경우에 대해 처리를 먼저한다.
  • null이면 String table에는 session tab 값을 넣어 저장한다.
  • null이 아니면 매개변수 tab의 값을 table변수에 넣고 세션 tab에 다시 저장한다.

  • 저장된 값을 확인한다.

5. 삭제하기

  • slist.jsp 의 custno를 매개변수로 delete.jsp와 연결한다.

  • slist.jsp에서 받아온 custno값을 String으로 저장하고 where문에 적용한다.
    table은 session값에서 받아와 저장한다.
  • SQL의 delete쿼리를 작성하고 실행한다.
    response.sendRedirect를 이용해 처리 후 slist.jsp로 돌아가도록 설정한다.

  • 7번 이진지를 지워본다.
  • 삭제완료

6. 투표하기

  • 투표하기 폼만들기
    radio를 이용해서 값을 선택할 수 있도록 처리한다.
<input type="radio" name="sel" value="naver">
  • 'type'은 radio, 'name'은 값의 이름, 'value'는 값이다.
  • 투표 페이지에서 받아온 값을 미리 만들어둔 데이터베이스 테이블에서 쿼리실행으로 값을 넘겨준다.
  • update 쿼리를 사용할 때는 ?를 사용하면 작은따옴표('')가 자동으로 들어가서 실행되기때문에 변수로 저장해 그 자체를 쿼리에 직접 대입했다.
  • 반드시 ORACLE에서는 COMMIT을 하고 사용하자!
update sel set naver = naver +1;

  • 득표율을 표기하기 위해서 아래와 같은 식을 이용했다.
double krate = Math.round((double)k/sum *100);
  • 최종적으로 투표결과 페이지를 만들고 표시한다. 이때도 response.sendRedirect를 넣어서 바로가기를 해줬다.
<%=krate%>% <hr width=<%=krate %> color="yellow" size=10 align="left">
  • 이런식으로 hr tag에 width와 color, size, align을 지정해 그래프로 이용했다.

7. 로그인페이지 적용하기


  • 이전게시물에서 연습했던 로그인페이지를 이용해
    로그인시 투표가 가능하도록 홈페이지를 조정했다.
profile
ᴘᴇᴛɪᴛs ᴅᴇ́ᴠᴇʟᴏᴘᴘᴇᴜʀ. ᴘʀᴏɢʀᴀᴍᴍᴀᴛɪᴏɴ = ᴘʟᴀɪsɪʀ 💕

0개의 댓글