위로
아래
글쓰기 비즈니스 로직 구현
앞서서 이번 프로젝트에서는 비즈니스 로직을 action 폴더로 구분한 JSP로 구현한다고 했었다.
BoardWriteAction 페이지에서 필요한 것을 정리해보면 다음과 같다.
- BoardWriteForm 페이지에서 파라미터를 받아온다.
- DTO 객체를 생성해서 파라미터 값을 넣는다.
- DAO 객체를 생성해서 DTO를 통해 파라미터 값을 전달한다.
- 처리가 완료되었으면 글목록 페이지로 이동한다.
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");
%>