티스토리 뷰

반응형

 웹 개발 과정 중에서 클라이언트가 보낸 요청정보를 받아 다루는 일은 굉장히 빈번하며, 반복적인 작업을 요구한다. 아래에 요청정보 처리 방법의 예제로 가장 원초적인(?) 방법부터, 스프링의 기능을 활용 하는 방법까지 총 3가지를 적어보았다.  


단계별로 줄어가는 코드의 양만 보더라도, 스프링의 강력함을 알 수가 있다.  


예제는 클라이언트가 보낸 nickName, title, content를 받아서 Model에 저장한 후, JSP페이지를 리턴하는 과정이다.  


1.HttpServletRequest를 이용하는 방법

 서블릿을 활용한 기본적인 방법이다.


@RequsetMapping("/board/write")
public String ArticleWrite(HttpServletRequest request, Model model) {
    String nickName = request.getParameter("nickName");
    String title = request.getParameter("title");
    String content = request.getParameter("content");

    model.addAttribute("nickName", nickName);
    model.addAttribute("title", title);
    model.addAttribute("content", content);

    return "/board/write";
}


2.@RequestParam 애노테이션을 이용하는 방법

 스프링의 @RequestParam 애노테이션을 이용하여서 getParameter하는 과정없이 바로 매개변수로 받았다. 메소드 내부의 코드 내용은 줄었지만, 파라미터 받는 부분이 길어졌다


@RequsetMapping("/board/write")
public String ArticleWrite(@RequestParam("nickName") String nickName, @RequestParam("title") String title, @RequestParam("content") String content, Model model) {
    model.addAttribute("nickName", nickName);
    model.addAttribute("title", title);
    model.addAttribute("content", content);

    return "/board/write";
}


3.데이터를 객체로 바로 받는 방법

 nickName, title, content를 필드로 가지고 있는 Article이란 객체로 요청정보를 바로 받았다. 객체로 받은 것만으로 getParameter와 Model.addAttribute 하는 과정을 자동으로 진행한다. 코드가 훨씬 깔끔해졌다. 파라미터의 이름과 객체의 필드이름이 동일 한 경우에 진행된다는 점을 주의하자.


@RequsetMapping("/board/write")
public String ArticleWrite(Article article) {
    return "/board/write";
}


반응형
댓글