기존 해왔던 방식)
JSP, Servlet, DTO, DAO => 사용자 화면, 내부처리(데이터베이스) 역할을 분리
JSP요청 => Servlet,
list.jsp => 요청 목록 => ListServlet 요청
오늘부터는 중간에 Action페이지를 두어 서블릿으로 내용을 보낼것이다.
JSP => 요청 => Servlet => 요청 내용 => Action페이지에서 처리
** 목록 / 삭제 / 수정 / 추가 / 비밀번호 => List / Delete / Update / Insert / Check => 해당 Action페이지에서 처리
사용된 패키지 구조이다.
Action.java 인터페이스를 먼저 작성한 후
action패키지의 모든 자바 파일에 구현!!
데이터 베이스 연결은 DBManager.java에서 하며
DAO는 게시판 쿼리문에 관한 내용을 담고
VO는 게시판 데이터를 받을 getter,setter 생성
모든 지시는 ActionFactory.java에서 할 것이다.
Action.java
public interface Action {
public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;
}
action패키지 내의 파일에 구현 받아 놓기.
데이터 베이스 접속에 관련한 DBManager.java
SingleTone Pettern사용
** 자원해제 코드에 PreparedStatement를 따로 주지 않은 이유는 PreparedStatement가 Statement에서 나온것이기 때문에 자원 해제 할때 Statement를 사용해서 닫아 줄수 있다.!!!
오늘은 게시판 데이터를 불러오는일과 글을 작성하는 부분을 했다.
그에 대한 ActionFactory.java
각 jsp 파일에서 해당되는 파라미터값을 이 ActionFactory로 보낼 것이다.
그러면 ActionFactory는 파라미터값을 가지고 해당 역할을 하는 서블릿의 객체를 생성하여 리턴!!
Controller 패키지 구성을 보면 액션팩토리 말고도 BoardServlet.java파일이 있다.
모든 파라미터값이 BoardServlet을 통하여 처리 된다.
BoardServlet 서블릿에서 ActionFactory.java 의 객체를 생성하여 넘어온 값을 전달 하여 ActionFactory에서 해당하는 서블릿( 글 검색 // 글 작성 // 글 수정 등등)으로 전달
post방식으로 넘어올수도 있기 때문에 post로 넘어온 값을 전부 다시 doGet메소드로 전달!!
게시판 화면 코드를 보자.
게시글 등록
-> BoardServlet으로 값을 보내는데 command라는 파라미터 명으로 board_write_from의 값을 보내지게 된다.
그러면 BoardServlet은 ActionFactory를 호출할때 board_write_from의 값을 보내고 이 값에 해당하는 서블릿을 호출(BoardWriterFormAction.java)
서블릿을 통하여 페이지 전환 된다.
게시판 리스트 부분을 빠뜨렸다. 중간에 끼워넣기 그래서 여기다 설명..
먼저 wellcome페이지 설정 때문에 index.jsp파일이 있다.
프로젝트를 통하여 실행하게 되면 index.jsp가 실행되는데
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
response.sendRedirect("http://localhost:9000/mvc_board/BoardServlet?command=board_list");
%>
페이지 전환을 하기위한 sendRedirect만 있다.
이때 BoardServlet에 board_list을 요청!!
'Learn > KH정보교육원' 카테고리의 다른 글
[KH정보교육원 당산] 57일차 ( jQuery - 실습 1) (0) | 2021.06.02 |
---|---|
[KH정보교육원 당산] 55일차(MVC예제 : 게시판 완성) (0) | 2021.05.31 |
[KH정보교육원 당산] 연습문제6 (UI) (0) | 2021.05.20 |
[KH정보교육원 당산] 49일차(CSS) (0) | 2021.05.20 |
[KH정보교육원 당산] 48일차(이미지 슬라이드,온도 변환) (0) | 2021.05.17 |