-
1.4 클라이언트 요청 처리Spring_FrameWork 2018. 11. 20. 16:44
//1.사용자 입력 정보 추출
String title = request.getParameter(“title”);
String writer =request.getParameter(“writer”);
String content =request.getParameter(“content”);
//2.DB 연동 처리
BoardVO vo = new BoardVO();
vo.setTitle(title);
vo.setWriter(writer);
vo.setContent(content);이코드는 사용자 입력 정보가 증가할때마다 코드를 추가해야한다.
command 객체를 이용하여 이 문제를 해결해야한다.
Command 객체는 Controller메소드 매개 변수로 받은 VO객체라고 보면 된다.
InsertBoardController글래스의 insertBoard() 메소드를 Command 객체를 이용하여 구현한다.
package com.springbook.view.board;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import com.springbook.biz.board.BoardVO;
import com.springbook.biz.board.impl.BoardDAO;@Controller
public class InsertBoardController{
@RequestMapping(value=“/insertBoard.do”)
public void insertBoard(BoardVO vo) {
System.out.println(“글 등록 처리”);
BoardDAO boardDAO = new BoardDAO();
boardDAO.insertBoard(vo);
}}
1.서블릿 컨테이너는 클라이언트의 HTTP 요청이 서버에 전달되는 순간
2.HttpServletRequest객체를 생성하고HTTP 프로토콜에 설정된 모든 정보를 추출하여 HttpServletRequest객체에 저장한다.
3.그리고 이 HttpServletRequest 객체를 service()메소드를 호출할때 인자로 전달해준다 .
클라이언트가 글등록을 요청하면 스프링컨테이너는 InsertBoardController객체의 insertBoard() 메소드를 호출한다. 이때
1.매개변수에 해당하는 BoardVO 객체를 생성하고
2.사용자가 입력한 값을 추출하여 vo객체에 저장한다 이때
BoardVO 클래스의 Setter 메소드들이 호출된다.
3. insertBoard() 메소드를 호출할때 사용자 입력값들이 설정된 BoardVO 객체가 인자로 전달된다.
주의점 Form 태그의 파라미터 이름과 Command객체의 Setter 메소드 이름이 반드시 일치해야 한다. 즉 각 파라미터 이름에 해당하는 setTitle() ,serWrite(),setContent() 메소드가 있어야 Setter 인젝션에 의해 자동으로 사용자 입력값이 저장된다.
'Spring_FrameWork' 카테고리의 다른 글
@RequestMapping의 method속성사용 (0) 2018.11.20 2.8 컨트롤러 통합하기 (0) 2018.11.20 어노테이션으로 MVC개발 (0) 2018.11.20 2018_10_01 (0) 2018.11.20 Spring의 특징 (0) 2018.11.20