티스토리 뷰
지난 글에서는 백엔드 파이프라인이 완성 되었다.
그럼 이제 진짜 글 써도 됨?
그러기에는 아직 치명적인 문제가 하나 발생한다. 클라이언트가 보내는 요청을 받아줄 진입점이 없다는것이다.
내가 만든 BoardWriteCommand는 일반적인 자바 클래스일뿐, 스스로 웹 URL 요청을 받거나 응답하는 능력이 없다
클라이언트와 통신하려면 반드시 서블릿이 필요하다
그럼 어떻게 해야함?
이 문제를 해결하기 위해 클라이언트의 요청을 하나의 서블릿이 다 받아서 조율하는 구조를 만들면 된다.
이 서블릿이 URL을 분석해서 알맞은 Command 객체에게 처리를 넘겨주는 방식인 것이다.
그럼 이 역할을 수행할 서블릿을 만들자
com.study.controller 패키지를 만들고 직관적으로 BoardController라고 이름 붙혔다


그나저나 풀 패키지 경로를 사용하는건 위의 사진대로 눌러주면 깔끔하게 Import 된다
public class BoardController extends HttpServlet {
//클라이언트의 GET / POST 요청을 doAction 메서드로 전달
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doAction(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doAction(request, response);
}
//요청 교통정리를 담당하는 액션 메서드
private void doAction(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//요청 파라미터의 한글 깨짐을 방지한다
request.setCharacterEncoding("UTF-8");
//요청 주소에서 명령어 추출
String uri = request.getRequestURI();
String contextPath = request.getContextPath();
String commandPath = uri.substring(contextPath.length());
BoardCommand command = null;
try {
//추출한 경로에 따라 알맞은 명령 실행
if (commandPath.equals("/write.do")) {
command = new BoardWriteCommand(); //게시글 등록
command.execute(request, response); //실행
response.sendRedirect("list.do"); //실행 후 목록 페이지로 이동
}
//예외처리
} catch (Exception e) {
e.printStackTrace();
}
}
}
이제 모든 요청은 BoardController를 거쳐 가게 되었다.
그런데 아직 /write.do(글쓰기) 밖에 처리하지 못한다.
기능이 늘어남에 추가될것이다
이제 게시판의 길이 뚫렸으니 톰캣을 실행하고 주소창에 /write.do 를 쳐보자

혼란스럽다
사실 @WebServlet("*.do") 이 어노테이션이 붙어있지 않아서 발생한 일이었다.
주소와 클래스를 매핑해줘야만 일을 하는데 그게 없으니 404 not found가 뜨는것이었다
게다가 당연히 View가 없는데 글이 써질리가 만무하다
그러므로 주소창에 직접 쿼리 스트링을 입력해보자
http://localhost:8080/write.do?category=IT&title=test&writer=testWriter&password=1234&content=testContent

그러면 정상적으로 DB에 적재되는것을 확인할 수있다.
드디어 다음에는 다음 게시물에서는 글을 쓸 수가 있을까?
'게시판 만들기 > 1주차' 카테고리의 다른 글
| 만들자 게시판 (11) - 썼으면 읽어야지 목록 구현하기 (1) | 2026.07.04 |
|---|---|
| 만들자 게시판 (10) - JSP로 글쓰기 폼 구현하기 (0) | 2026.07.04 |
| 만들자 게시판 (8) - DAO 메서드 구현하기 (0) | 2026.07.02 |
| 만들자 게시판 (7) - 커맨드 패턴으로 주문서를 작성하기 (0) | 2026.07.02 |
| 만들자 게시판 (6) - 커맨드 패턴 도입하기 (0) | 2026.07.01 |
