HTTP 요청의 쿼리 스트링의 파라미터나 폼 데이터
쿼리스트링 : URL의 일부, 웹 서버에 보낼 추가 파라미터를 포함합니다. URL 끝에 물음표(?) 다음에 위치하며 key=value 형태입니다. 여러 개의 파라미터가 있는 경우에는 앰퍼샌드(&)로 구분됩니다. 쿼리파라미터라고도 합니다.
http://example.com/search?query=AI&sort=recent
Controller에서 @RequestParam을 사용해서 HTTP 요청의 파라미터를 Java 메소드의 인수로 쉽게 매핑할 수 있습니다.
**localhost:8080/login?name=test**
/login으로 파라미터 요청이 오면 @ReqestParam을 통해 String name으로 매핑을 해줍니다.
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class LoginController {
@RequestMapping("/login")
public String gotoLoginPage(@RequestParam("name") String name) {
System.out.println("Request Param is " + name);
return "login";
}
}
Request Param is test
만약, 쿼리파라미터를 받아서 JSP 파일에서 사용하고 싶다면??
ModelMap을 사용하면됩니다.
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class LoginController {
@RequestMapping("/login")
public String gotoLoginPage(@RequestParam("name") String name, ModelMap model) {
model.put("name", name);
System.out.println("Request Param is " + name);
return "login";
}
}
gotoLoginPage()에서 ModelMap을 파라미터로 받고 JSP페이지에서 사용할 변수를 넣어줍니다.
${} JSP 표현식을 사용해서 Controller에서 받아온 파라미터를 사용할 수 있습니다.
<head>
<title>Login Page</title>
</head>
<body>
welcome to the login page ${name}!
</body>
</html>
localhost:8080/login?name=test
welcome to the login page test!