국비지원

22/05/11 수업정리

야생늑대 2022. 5. 11. 17:47
반응형

1. 글목록페이지 (BoardList.jsp) 에서 로그인되어있을때만 글작성이 가능하도록 기능작성

① '글작성1' 버튼은 JSLT를 사용해서 로그인이 되어있을 때만 버튼이 보이도록 설정하고 로그인이

     되어있으면 onclick 이벤트 발생 시 boardWriteForm() 를 이벤트핸들러로 사용

 

② '글작성2' 버튼은 onclick 이벤트 발생 시 boardWriteForm2() 에 세션에 저장되어있는 접속해있는

     ID 값을 매개변수로 주는 핸들러로 사용 


2. onclick 이벤트  발생

① '글작성1' 버튼은 세션에 로그인정보가 없으면 안보이기떄문에 이벤트 발생 시 바로 글작성페이지로

     이동한다.

② '글작성2' 버튼은 세션에 로그인정보가 있는지 확인하기 위해 조건문 사용.

    ㉮ 세션에 로그인정보가 없다.   ->  로그인 요청 메시지 띄우고 로그인페이지로 현재 url파라미터와 함께 이동한다.

                                              (로그인하고나면 현재 페이지로 돌아오기 위해)

    ㉯ 세션에 로그인정보가 있다.   -> 글작성 페이지로 이동한다.

 

※  위 이미지에서 글작성페이지 url을 잘못 입력했다. 에러 원인 찾느라 별짓다하다가 꽤 시간지나고 나서 발견했다; 

저런 한두개 실수때문에 버리는 시간이 많다..

↓ 에러페이지

더보기
서블릿 실행이 예외를 발생시켰습니다.
서버가 해당요청을 충족시키지 못하게 하는 예기치 않은 조건을 맞닥뜨렸습니다.

3. 게시판 조회수 체크하기

이것도 완성하는데 시간 꽤걸렸다.

그냥 업데이트 문으로 하는거 알았으면 금방했을텐데 아예 정보없이 혼자서 했더니 업데이트쓰는것도 잊고 뻘짓했다.

글번호랑 조회수를 매개변수로 주고 SELECT문 으로 이것저것하다가 " 아 SELECT문은 입력이 안되지, INSERT문으로 넣어봐야겠다." 고 생각하고 INSERT문하려니까 값 입력이 안되네? 그래서 INSERT문안에 SELECT문으로 서브쿼리도 써보고 다해보고나서야 "아.. 값이 이미 입력되있는데 INSERT로 계속 거기다 넣을려고했네.  UPDATE문으로 값을 바꿔주면될 것같은데" 라는 생각이 들었다.  그리고 나서야 완성

 

4. 로그아웃중에도 글작성이 가능해지는 상황을 막기 위한 코드

선생님이 수업끝나기전에 숙제로 주셨는데 힌트는 세션 이라고 하셨다.

 처음에는 boardWriteForm 서블릿의 첫 부분에다가 세션에 로그인정보가 없으면 로그인요청메세지 출력 후 

history.back() 하는 명령어를 해놨는데. 로그아웃상태인데도 작성한 코드가 실행도 안되고 글작성페이지로 넘어가네?

 보니까 boardWriteForm서블릿은 글작성하고 나서 넘어가는 주소였다.

(글작성페이지도 아닌데 글목록페이지에서 글 작성 후 작업을 하는 서블릿으로 바로 넘어가려했으니 에러.)

그래서 이번엔 글작성페이지로 제대로 바꿔놓고 onclick 이벤트핸들러에 로그인아이디를 사용한 조건문을 작성했다.

결과는 역시 로그아웃중에도 글작성페이지로 넘어갔다.

그렇게 또 헤매다가 아예 서블릿 주소를 하나 더 매핑해서 그곳에서 세션의 로그인정보 유무 판단 후 로그인정보가 있으면 글작성페이지로 가도록 하고 로그인정보가 세션에 없다면 로그인요청 메시지 출력 후 뒤로 돌아가도록 했더니 

드디어 됐다.

 

반응형

'국비지원' 카테고리의 다른 글

22/05/18 수업정리  (0) 2022.05.18
22/05/12 수업정리  (0) 2022.05.12
22/05/10 수업정리  (0) 2022.05.10
22/05/09 수업정리  (0) 2022.05.09
22-05-06 수업정리  (0) 2022.05.06