이전에 jsp를 이용해 게시판을 구현해봤고
mvc 패턴을 이용해 게시판을 구현해봤다.
이번에는 controller를 servlet으로 바꾼 확장된 MVC 패턴을 사용해 똑같은 게시판을 구현하는 실습을 해보겠다.
▶ MVC 패턴에 대해서 궁금하다면..
▶ Servlet에 대해서 궁금하다면...
2021.02.23 - [IT 독학/WEB] - Servlet (서블릿 / jsp / 서블릿 기초 / 서블릿 입문 / 웹개발 / 웹기초 / 웹독학 / 백엔드 개발자 / 프로그래밍)
개발환경 실습 준비는 jsp와 mvc 실습에서 한것처럼 했고(JSP ① 참고) 바로 새로운 프로젝트를 만들어준다.
앞서 했던 것처럼 db dto dao 등을 만들어준다.
sevboard.sql
먼저 java resources 에 게시판 데이터를 넣을 테이블을 만들어주고 데이터도 하나 넣어준다.
JDBCTemplate.java
db 연결을 위한 jdbc 탬플릿을 만들어준다.
▶ JDBCTemplate 에 대해서 궁금하다면...
SEVBoardDto.java
db 에서 만들어 놓은 대로 생성자와 getter&setter 을 만들어준다.
SEVBoardDao.java
이번엔 interface를 써서 그냥 dao 와 daoImpl로 나눠줬다.
SEVBoardDaoImpl.java
이렇게 하는 이유는 관리면에서 편하기 때문
그리고 biz 역시 만들어준다. Dao는 db에 직접 접근하는 객체로 쓰고 biz는 Controller에서 요청을 받아 넘겨주는 역할로 쓰는 것이다.
SEVBoardBiz.java
dao 처럼 기능 구현에 사용할 메소드 들을 만들어준다.
SEVBoardBizImpl.java
이 위에까진 JSP 실습과 일반 MVC 패턴과 비슷하다.
이제 Controller를 Servlet으로 만들어준다.
이 프로젝트는 3.0 이상이지만 어노테이션 방법말고 xml 방법으로 해보겠다.
Servlet의 이름을 정해주고 Finish를 눌러준다.
SEVBoardServlet.java
주석을 지우고 필요한 것만 남긴 새로운 Servlet의 모습이다.
web.xml 방법을 이용하기 위해선 일단 servlet 이름을 지정해주고 매핑을 해줘야 한다.
servlet 이름을 정해주고 이 위치를 적어준다.
또 매핑에서는 정해준 servlet 이름과 이제 그 servlet을 뭐라고 부를 건지 정해준다.
browser.jsp
이제 첫 화면을 만들어준다. '게시판'을 누르면 곧장 게시판으로 가게 요청을 보내준다.
servlet에서 정해준 url-pattern 대로 controller.do 로 main 요청을 보내준다.
controller (SEVBoardServlet.java) 로 가서 main 요청을 받아준다.
하지만 그 전에 UTF-8로 인코딩을 해주고 요청받을 변수를 선언해준다.
우리는 command라는 요청으로 요청을 받을 것이다.
그리고 요청을 통해 가져다 쓸 biz도 먼저 변수 선언해준다.
main 요청은 biz의 selectAll( ) 메소드를 이용해주기로 한다.
biz와 bizImpl의 selectAll( ) 은 게시글 전체 출력의 기능으로 dao의 selectAll( ) 메소드를 이용해주기로 한다.
그리고 SEVBoardDao.java 에서는 selectAll( )에서 쓸 쿼리문을 작성해주고,
SEVBoardDaoImpl.java 에서는 selectAll( )을 완성해준다.
미리 작성해 둔 쿼리문을 가져와 실행해주고 rs에 그 값을 담아주고 res로 리턴해준다.
이제 res에는 모든 게시글의 정보가 들어있을 것이다.
이걸 이제 controller에서 완성해주면되는데
SEVBoardServlet.java로 다시 돌아가 res에 list를 받아와주고 클라이언트 요청에 전송한 데이터를 유지해주기 위한 forward방식의 dispatcher 를 사용해준다.
dispatcher는 따로 메소드를 만들어줌으로 코드 중복을 피한다.
dispatch 방식으로 모든 데이터를 담아 main.jsp로 보내준다.
main.jsp
이제 main.jsp 를 만들어줘서 모든 게시글을 볼 수 있는 게시판 화면을 만들어준다.
이번에는 또 JSTL&EL을 써볼 건데 이와 관련된 내용은 여기에서 확인하시길...
▶ JSTL & EL
일단 jar파일을 다운받아서 lib에 넣어준다.
그리고 jsp에서 jstl 을 사용하기 위해 prefix는 c고 uri는 jstl 어쩌구로 선언해준다.
그리고 게시판 목록을 불러올 테이블을 만들어준다.
JSTL을 사용해 이전과 달리 forEach로 값을 가져와주면 된다.
이렇게까지 완성을 하고 실행을 해주면
이렇게 게시글 목록을 잘 띄워준다. (현재는 내가 넣은 데이터가 하나뿐이라 하나만 보인다)
댓글