dao
|_📂 GuestbookDao.java
데이터베이스에 직접 접근하는 메서드 위치
dto
|_📂 Guestbook.java
데이터 객체 위치
servlet
|_📂 GuestbookListServlet.java
doget 메서드 위치
|_📂 GuestbookWriteServlet.java
doPost 메서드 위치
src/main/Webapp/WEB-INF/guestbook
|_ 📂 guestbooks.jsp
페이지 화면을 띄우는 jsp 파일
GuestbookDao.java에 getGuestbooks, addGuestbook 함수를 구현한다.
Servlet 클래스에서 doGet, doPost 메서드를 작성한다. 이때 Servlet과 jsp 연동에 대한 개념 필요함.
이부분은 이전에 했던 Dao 작성을 참고하여 (비교적) 빨리 작성할 수 있었다.
🚨 연동할 때 jsp 경로 설정을 주의할 것!
origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다.
라는 에러를 한참동안 디버깅하다가 결국 경로가 문제임을 알게되었다...😥
다음과 같이 WEB-INF/(프젝이름)/(jsp파일)
으로 경로를 설정해주어야 한다.
RequestDispatcher rd = request.getRequestDispatcher("WEB-INF/guestbook/guestbooks.jsp");
rd.forward(request, response);
날짜부분에서 java.util.Date와 java.sql.Date에서 차이가 나서 1차시도로 형변환을 해봤지만 실패.
구글링해서 Date타입도 String 형태로 쿼리문에 입력했더니 성공했다!
redirect하는 부분도 약간 헤맸지만, localhost뒤에 붙이는 경로를 지정해주면 해결된다.
아래는 doGet과 doPost 함수까지 작성 완료하고 실행해본 결과이다
request.setCharacterEncoding("UTF-8");
처음에는 막막했지만 몇시간정도 쏟아부으니 완성되었다..
웹의 시초를 경험한 느낌이었고, DB와 Servlet, jsp파일들 간의 통신에 대해 확실하게 이해할 수 있는 계기가 된 프로젝트였다. 점점 이클립스도 익숙해지고 있고 앞으로 자바공부도 틈틈이 해야겠다.
REFERENCES
https://www.boostcourse.org/web326/project/206/content/165#summary