1. GET 방식 : 데이터를 넘겨줄때 action 등과 같은 방법으로 url을 변경해줘야한다. 또한 url창에 데이터가 노출 되기 때문에 보안에 취약한 단점이 존재한다.
GET Controller
@RequestMapping(value = "personal/personal1", method = RequestMethod.GET)
public String pinput3(HttpServletRequest request, Model model) {
Personal personal = new Personal();
personal.setName(request.getParameter("name"));
personal.setId(request.getParameter("id"));
personal.setPw(request.getParameter("pw"));
personal.setMail(request.getParameter("mail"));
personal.setPersonalID(request.getParameter("personalID"));
personal.setYear(request.getParameter("year"));
personal.setMonth(request.getParameter("month"));
personal.setDay(request.getParameter("day"));
//personal.setHobby("hobby");
personal.setIntroducing(request.getParameter("introducing"));
System.out.println(personal.getName());
model.addAttribute("personal", personal );
return "personal/pdisp";
}
//데이터 입력단의 form 방식 설정
<form method = "get" Action="personal1">
2.POST 방식 : 데이터를 넘겨줄때 url을 따로 지정하지 않아도 되며 원래의 url 을 유지한 상태에서 페이지만 넘겨줄 수 있다. 데이터 노출이 없어 get방식에 비해 보안이 뛰어나다.
@RequestMapping(value = "personal/personal", method = RequestMethod.POST)
public String pinput2(HttpServletRequest request, Model model) {
Personal personal = new Personal();
personal.setName(request.getParameter("name"));
personal.setId(request.getParameter("id"));
personal.setPw(request.getParameter("pw"));
personal.setMail(request.getParameter("mail"));
personal.setPersonalID(request.getParameter("personalID"));
personal.setYear(request.getParameter("year"));
personal.setMonth(request.getParameter("month"));
personal.setDay(request.getParameter("day"));
//personal.setHobby("hobby");
personal.setIntroducing(request.getParameter("introducing"));
System.out.println(personal.getName());
model.addAttribute("personal", personal );
return "personal/pdisp";
}
//action이 불필요하다.
<form method = "post" >
3. Annotation 방식 : Annotation을 이용하여 데이터를 받는 방법. 메소드의 코드가 복잡해지는 단점이 있다.
@RequestMapping(value = "personal/personal2", method = RequestMethod.POST)
public String ans7(@RequestParam("name") String name, @RequestParam("id") String id,
@RequestParam("pw") String pw, @RequestParam("mail") String mail,
@RequestParam("personalID") String personalID, @RequestParam("year") String year,
@RequestParam("month") String month, @RequestParam("day") String day,
@RequestParam("introducing") String introducing, Model model) {
model.addAttribute("name", name);
model.addAttribute("id", id);
model.addAttribute("pw", pw);
model.addAttribute("mail", mail);
model.addAttribute("personalID", personalID);
model.addAttribute("year", year);
model.addAttribute("month", month);
model.addAttribute("day",day);
model.addAttribute("introducing",introducing);
return "personal/pdisp";
}
4. Beans를 활용하는 방식
@RequestMapping("/personal/personal2")
public String ans8(Personal personal) {
return "personal/pdisp";
}
위와 같은 간단한 방법으로 데이터를 받을 수 있다. 단, POST 방식을 사용할 경우, 원래 페이지와 Mapping 되는 주소가 같을 경우 입력 데이터가 없더라도 null 값으로 바로 결과 페이지가 출력되므로 POST방식을 사용하더라도 Action을 통해 새로운 경로를 설정해 줘야 한다.
'빅데이터교육과정 > Spring' 카테고리의 다른 글
Spring MVC 패턴 (0) | 2021.04.09 |
---|---|
AOP란? (0) | 2021.04.09 |
Spring bean Scope의 타입과 Annotation (0) | 2021.04.07 |