MVC 패턴으로 프로젝트 진행 시 유의사항

2024. 9. 3. 10:18·웹

예시  ) 글 작성 페이지를 만든다면?

 

[C]

V에서 온 요청을 올바른 M(DAO)로 보내줘야한다.
1 Action 당 1 기능을 넣어야한다.
"V에서 온 요청"이 기능인가? 페이지 이동인가?
사용자가 글 작성 버튼을 누르면,  V >> C >> V
글 작성 페이지로 이동함
글 내용을 작성하고 글 작성 버튼을 누르면, V >> C >> C >> V
BOARDDAO의 INSERT를 수행하고, 메인 페이지로 이동

예시 ) 글작성을 하는 Action - InsertBoardAction.java

package controller.board;

import controller.common.Action;
import controller.common.ActionForward;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import model.dao.BoardDAO;
import model.dto.BoardDTO;

public class InsertBoardAction  implements Action{

	@Override
	public ActionForward execute(HttpServletRequest request, HttpServletResponse response) {
		// V에서 받은 데이터를 ===>> parameter 
		
		
		// V에서 받은 데이터가 아래 세개라고 가정한 경우임
		String content = request.getParameter("content");
		String title = request.getParameter("title");
		String writer = request.getParameter("writer");
		// M한테 전달 ===> DTO
		BoardDAO boardDAO = new BoardDAO();
		BoardDTO boardDTO = new BoardDTO();	
		boardDTO.setContent(content);
		boardDTO.setContent(title);
		boardDTO.setContent(writer);
		boolean flag = boardDAO.insert(boardDTO);
		// 잘 됐는가 확인하려면
		// 로그를 작성해라!
		
		
		ActionForward forward = new ActionForward();
		if(flag) {// 성공했으면
		forward.setPath("main.do");
		}
		else { // 실패했으면
			forward.setPath("insertBoardPage.do");
		}
		forward.setRedirect(true);
		return forward;
	}

}

[V]

<a href="insertBoardPage.do">글 작성 페이지로 이동</a>
나 이렇게 했어. C에게 전달하기 
(굳이 뭐로 정하자 회의 보다는. 오더하기)
C가 name 정해야하는데 안 정해서 못 만듬 -->> xxxxx
<input type="text" name="writer" value="${loginInfo}" readonly>
C님, 저 value 값 ${loginInfo} 로 정했으니 참고해주세요~

 

예시 - insertBoard.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>글 작성 페이지</title>
</head>
<body>
	<form action="insertBoard.do" method="POST">
		내용 <input type="text" name="content" required placeholder="반드시 작성해주세요"> <br> 
		제목 <input type="text" name="title" required placeholder="반드시 작성해주세요"> <br>
		작성자 <input type="text" name="writer" value="${loginInfo}" readonly> <br>
				<input type="submit" value="글 작성">
	</form>
	<input type="text" name="content" required>
	<input type="text" name="title" required>
	<input type="text" name="writer" required>

</body>
</html>

[M]

INSERT를 만들고 추가하기 

예시 )

더보기
더보기

private final String INSERT = "INSERT INTO BOARD (BID,TITLE,CONTENT,WRITER) VALUES((SELECT NVL(MAX(BID),100)+1 FROM BOARD),'?','?','?')";

 

'웹' 카테고리의 다른 글

[JSP, JavaScript] 네이버 로그인 API  (0) 2024.08.30
이미지파일 업로드  (0) 2024.08.29
핸들러 매핑, 싱글톤 패턴  (0) 2024.08.21
'웹' 카테고리의 다른 글
  • [JSP, JavaScript] 네이버 로그인 API
  • 이미지파일 업로드
  • 핸들러 매핑, 싱글톤 패턴
yn98
yn98
좌우명 : 여전할 것 인가, 역전할 것 인가? 백엔드 개발자가 되고싶은 역전하고 있는 개발자 꿈나무의 블로그입니다. 개발을 하면서 공부한 것들을 기록합니다. 24.06 ~
  • yn98
    개발 꿈나무
    yn98
  • 전체
    오늘
    어제
    • 분류 전체보기 (131)
      • Python (3)
      • 공부 (7)
      • DB (7)
      • JAVA (24)
      • JSP (9)
      • jQuery (2)
      • HTML (3)
      • Spring (20)
      • 웹 (4)
      • C (1)
      • Git (2)
      • 에러일기 (19)
      • 프로젝트 (6)
      • 책 (21)
        • 멘토씨리즈 자바 (14)
        • 2024 수제비 정보처리기사 (7)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Notion
  • 공지사항

  • 인기 글

  • 태그

    어노테이션
    정보처리기사
    jsp
    MVC
    Di
    java
    @Component
    aop
    오블완
    멘토씨리즈 자바
    생성자
    정보처리기사 실기
    2-layered 아키텍처
    recoverabledataaccessexception
    정처기
    DispatcherServlet
    @service
    Spring
    티스토리챌린지
    ViewResolver
    객체지향
    정처기 실기
    codeup 4891 : 행복
    오버로딩
    html
    이벤트 스케줄러
    상속
    수제비
    스프링 프레임워크
    @repository
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
yn98
MVC 패턴으로 프로젝트 진행 시 유의사항
상단으로

티스토리툴바