본문 바로가기

spring/Web

GET과 POST 방식, parameter 처리

html이나 jsp에서 회원가입을 할 때 클라이언트가 넘긴 데이터를 서버에서 받게되는데


기존 서블릿에서 처리하는 것보다 훨씬 간단한 방법을 스프링에서 제공하고 있다.


아래에서는 GET 방식과 POST 방식을 나눠놨는데 


데이터를 받는 방식에 따라서 GET과 POST 방식으로 나누는것이라 오해하지 않도록 주의하자.


아래 두개의 메소드의 RequestMethod 방식을 서로 달리해도 무방하다.


==============================================================================================================================

GET 방식


  @RequestMapping(value="login", method=RequestMethod.GET)

public ModelAndView submit(

@RequestParam(value="id", required=true) String id,    // 예를 들어 input 태그의 name 속성이 id인 데이터를 받게된다. <input type="text" name="id">

@RequestParam(value="pwd", defaultValue="11") int pwd){

// 데이터가 넘어올때는 String 형이어서 형변환이 필요했지만 @RequestParam 이용하여 간단하게 받을 형만 명시해주면 된다.

    // required : 기본값 true이며 데이터가 넘어오지 않으면 에러, false일 경우 넘어오지 않는다면 데이터형식의 기본값으로 설정된다.

    // defaultValue : 데이터가 넘어오지 않을때의 기본값을 지정한다.

String data = "";

if(id.equals("aa") && pwd == 11){

data = "login success";

}else{

data = "login fail";

}

ModelAndView view = new ModelAndView();

view.setViewName("showMessage");

view.setViewName("redirect:/showMessage");

view.addObject("message", data);

return view;

}


혹은 폼빈, 커맨드 객체 으로도 데이터를 넘겨받을 수 있다.


셋터가 있는 폼빈을 파라미터로 지정해 놓으면 id와 변수명을 일치시켜 데이터를 셋팅시킨다.



POST 방식


  @RequestMapping(value="/sangpum", method=RequestMethod.POST)

public ModelAndView submit(SangpumBean bean){

//파라미터로 넘어온 데이터를 스프링이 내부적으로 처리해서 담는다. 별도의 셋터를 호출하여 셋팅할 필요없다.

//bean 안에는 넘어온 데이터에 해당하는 셋터 메소드들이 있다.

ModelAndView view = new ModelAndView();

view.setViewName("showMessage");

view.addObject("message", model.compute(bean));

return view;

}