반응형
이번 강의에서는 web.xml의 서블릿 매핑을 통해 .do 요청을 DispatchServlet으로 위임하는 방법과, 각 요청별 흐름을 Java 서블릿에서 직접 제어하는 구조를 배웠습니다. 게시판 프로그램의 전체 흐름을 하나의 컨트롤러 클래스(DispatchServlet)가 관리하게 되어 MVC 패턴의 기반이 마련되었습니다.
📌 web.xml 설정
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>com.springbook.controller.DispatchServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
📌 JSP 화면들
🔹 login.jsp
<form action="login.do" method="post">
<input type="text" name="id" value="12345">
<input type="password" name="pw" value="12345">
<input type="submit" value="로그인">
</form>
🔹 insertboard.jsp
<form action="insertboard.do" method="post">
<input type="text" name="title">
<input type="text" name="writer">
<textarea name="content"></textarea>
</form>
🔹 getboard.jsp
<form action="updateboard.do" method="post">
<input type="hidden" name="seq" value="...">
<input type="text" name="title" value="...">
<textarea name="content">...</textarea>
</form>
<a href="deleteboard.do?seq=...">글 삭제</a>
🔹 getboardlist.jsp
<% List<BoardVO> boardList = (List) session.getAttribute("boardList"); %>
<% for(BoardVO board : boardList){ %>
<a href="getboard.do?seq=<%=board.getSeq()%>"><%=board.getTitle()%></a>
<% } %>
📌 DispatchServlet.java
전체 요청 흐름을 담당하는 프론트 컨트롤러 역할을 수행하는 클래스입니다.
🔸 URI 매핑
String uri = request.getRequestURI();
String path = uri.substring(uri.lastIndexOf("/"));
🔸 요청 분기 처리
if (path.equals("/login.do")) login_proc(...);
else if (path.equals("/insertboard.do")) insertBoard_proc(...);
...
🔸 주요 메소드들
private void login_proc(HttpServletRequest request, HttpServletResponse response) {
// 로그인 처리 후 redirect
}
private void insertBoard_proc(...) { ... }
private void updateBoard_proc(...) { ... }
private void deleteBoard_proc(...) { ... }
private void getBoardList_proc(...) { ... }
private void getBoard_proc(...) { ... }
💡 포인트 정리
- .do 요청은 모두 DispatchServlet으로 위임되어 일괄 처리됨
- URI의 끝 경로를 기준으로 요청을 구분
- JSP는 데이터를 session에서 꺼내 화면에 표시함
- Java 서블릿이 DAO와 VO를 통해 비즈니스 로직을 처리하고, 화면 전환은 redirect로 처리함
📌 정리하자면, 이번 강의에서는 단일 서블릿(DispatchServlet)을 통해 게시판의 모든 요청을 관리하도록 구조를 통합하였고, 각 요청 흐름은 web.xml의 매핑 설정과 DispatchServlet 내부의 조건문을 통해 분기됩니다. 비즈니스 로직은 DAO를 통해 수행되며, JSP 화면은 단순한 뷰 역할만 수행하여 MVC 패턴의 흐름이 점점 명확해졌습니다.
'Spring > 실습 정리' 카테고리의 다른 글
Spring Boot 2강 - Lombok 설치 및 Gradle 설정법 (1) | 2025.06.30 |
---|---|
Spring Boot 1강 - HelloController로 첫 번째 웹 응답 만들기 (0) | 2025.06.30 |
Spring 강의 15강 - ViewResolver와 HandlerMapping을 활용한 컨트롤러 구조 개선 (0) | 2025.06.30 |
Spring 13강 - 로그아웃 기능 구현 (logout_proc.jsp) (0) | 2025.06.23 |
Spring 12강 - 게시글 삭제 기능 구현 (deleteboard.jsp) (0) | 2025.06.23 |
Spring 11강 - 게시글 등록 기능 구현 (insertBoard.jsp) (0) | 2025.06.23 |