코딩은 실력보다 시력이지

빅데이터교육과정/Spring

GET,POST,Annotation,Bean을 활용한 회원가입 MVC2

Listeria 2021. 4. 12. 02:10

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