목적
프론트엔드(JSP)에서 백엔드(Servlet)로 Form 데이터를 전달할 때, 백엔드에서 데이터를 활용하기 위해 파라미터로 전달받음
이 때, 전달받는 방법에 여러가지가 있어서 정리함
방법
1. HttpServletRequest 이용
// HttpServletRequest
@RequestMapping("/FormData1")
public String FormData1(HttpServletRequest httpServletRequest, Model model){
// httpServletRequest를 이용하여 id와 pw를 가져옴
String id = httpServletRequest.getParameter("id");
String pw = httpServletRequest.getParameter("pw");
// 출력 확인
System.out.println("id: " + id + " pw: " + pw);
// model에 담으면 JSP에서 attribute 인식
model.addAttribute("id", id);
model.addAttribute("pw", pw);
return "FormData1";
}
- 프론트엔드에서 Servlet으로 전달된 data들이 httpServletRequest에 담아서 전달된다.
- Model은 백엔드에서 다시 프론트엔드로 값을 전달하기 위해 사용
2. RequestParam
// RequestParam
@RequestMapping("/FormData2")
public String FormData2(@RequestParam("id") String id, @RequestParam("pw") String pw, Model model){
// 바로 사용 가능
System.out.println("id: " + id + " pw: " + pw);
model.addAttribute("id", id);
model.addAttribute("pw", pw);
return "FormData2";
}
- RequestParam으로 전달되는 변수를 바로 받아서 사용할 수 있다.
- 파라미터가 길어지는 단점이 있음
3. Bean
class Login{
String id;
String pw;
//getter setter
}
// Bean
// 파라미터와 일치하는 빈을 만들어서 사용
@RequestMapping("/FormData3")
public String FormData3(Login login){
System.out.println("id: " + login.id + " pw: " + login.pw);
return "FormData3";
}
- Login이라는 class가 존재할 때, 파라미터와 일치하는 빈을 만들어서 사용한다.
- login 변수에 id와 pw가 매칭되므로 login.id와 같이 접근해야 함
- 프론트엔드에서도 login객체로 접근해서 출력 가능
ex)
아이디: ${login.id}
패스워드: ${login.pw}
4. Path 변수
// 패스에 자체 변수 넣기
@RequestMapping("/FormData4/{id}/{pw}")
public String Login(@PathVariable String id, @PathVariable String pw, Model model){
model.addAttribute("id", id);
model.addAttribute("pw", pw);
return "FormData4";
}
- locoalhost:8080/FormData4/HW97/pw00
- 위 링크와 같이 접근했을 때, HW97이 id가 되고 pw00이 pw가 됨
> Model에 담은 변수는
아이디: ${id}
패스워드: ${pw}
이와 같이 사용 가능
'IT > 개발' 카테고리의 다른 글
[SpringBoot] Transaction 사용하기 (0) | 2021.09.24 |
---|---|
[SpringBoot] MyBatis 간단 기초 (0) | 2021.09.22 |
[SpringBoot] DI(의존성 주입) (0) | 2021.09.19 |
[SpringBoot] Visual Studio Code로 Spring Boot 프로젝트 만들기 (0) | 2021.09.19 |
[git] 깃 브랜치 연결 (간단사용법) in Linux (0) | 2021.09.07 |