위로 아래

글쓰기 비즈니스 로직 구현

앞서서 이번 프로젝트에서는 비즈니스 로직을 action 폴더로 구분한 JSP로 구현한다고 했었다.

BoardWriteAction 페이지에서 필요한 것을 정리해보면 다음과 같다.

 

  1. BoardWriteForm 페이지에서 파라미터를 받아온다.
  2. DTO 객체를 생성해서 파라미터 값을 넣는다.
  3. DAO 객체를 생성해서 DTO를 통해 파라미터 값을 전달한다.
  4. 처리가 완료되었으면 글목록 페이지로 이동한다.

 

 

 

BoardWriteForm 페이지에서 파라미터를 받아오기

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import = "java.sql.*" %>

String subject = request.getParameter("subject");
String writer = request.getParameter("writer");
String content = request.getParameter("content");
String passwd = request.getParameter("passwd");

글 제목, 작성자, 글 내용, 비밀번호 파라미터를 불러와 각각의 변수에 대입한다.

 

 

 

 

DTO 객체에 파라미터 값 대입

<%@ page import = "bean.BoardDTO" %>

BoardDTO dto = new BoardDTO();

dto.setSubject(subject);
dto.setWriter(writer);
dto.setContent(content);
dto.setPasswd(passwd);
dto.setIp(request.getRemoteAddr());

DTO 객체는 생성자를 통해 직접 생성할 수 있다.

글 제목, 작성자, 글 내용, 비밀번호, 작성자의 ip 주소를 DTO 객체에 저장한다.

 

 

 

 

DAO 객체에 파라미터 값을 전달

<%@ page import = "bean.BoardDAO" %>

BoardDAO dao = BoardDAO.getInstance();
dao.BoardWrite(dto);

DAO 객체가 이전에 만들었던 BoardWrite() 메소드를 통해 데이터베이스에 DTO의 파라미터를 저장한다.

 

 

 

글목록 페이지로 이동

<%@ page import = "java.sql.*" %>

response.sendRedirect("jb?command=list");

같이 이동해야 할 파라미터가 딱히 없다.

sendRedirect로 페이지만 이동해준다.

jb로 controller 서블릿을 호출하면서 command 키에 list 값을 함께 전달한다. 

 

컨트롤러에 만들어놓았던 아래 부분으로 페이지를 이동한다.

//BoardContoller 파일

switch(command) {
    case "list" : {
        page = "action/BoardListAction.jsp";
        break;
    }

RequestDispatcher dp = request.getRequestDispatcher(page);
dp.forward(request, response);

 

 

 

 


전체 코드

더보기
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import = "java.sql.*" %>
<%@ page import = "bean.BoardDTO" %>
<%@ page import = "bean.BoardDAO" %>

<%
	String subject = request.getParameter("subject");
	String writer = request.getParameter("writer");
	String content = request.getParameter("content");
	String passwd = request.getParameter("passwd");

	BoardDTO dto = new BoardDTO();
	
	dto.setSubject(subject);
	dto.setWriter(writer);
	dto.setContent(content);
	dto.setPasswd(passwd);
	dto.setIp(request.getRemoteAddr());
	
	BoardDAO dao = BoardDAO.getInstance();
	dao.BoardWrite(dto);
	
	response.sendRedirect("jb?command=list");
	
	
%>