2018. 5. 18. 21:26
반응형

JSP웹프로젝트나 스프링프레임워크에서 폼이나 ajax를 이용해 컨테이너에 전송을 하고 HttpServletRequest로 받는 경우가 많다.

파라미터 값을 출력할 때 주로 request.getParameter("name") 이런식으로 해야 한다.

이렇게 할 경우 넘겨주는 파라미터의 이름이 바뀌거나 추가될 경우 컨트롤러도 수정해야 한다.


모든 파라미터를 어딘가에 이용해야 하는 경우 컨트롤러 수정없이 다 이용할 수 있는 방법이 있다.

request.getParameterMap().keySet()를 이용하거나 request.getParameterNames()를 이용하면 된다.

두 경우 동일한 결과를 얻기 때문에 편한걸로 사용하면 될 것 같다.



아래 예제가 제대로 작동하려면 요청을 보내는 jsp 파일에 jquery가 존재해야 한다.


@ResponseBody
@RequestMapping(value="/test")
public String test(HttpServletRequest request) {
	Set<String> keySet = request.getParameterMap().keySet();
	for(String key: keySet) {
		System.out.println(key + ": " + request.getParameter(key));
	}
	
	Enumeration names = request.getParameterNames();
	while(names.hasMoreElements()) {
		String key = (String) names.nextElement();
		System.out.println(key + ": " + request.getParameter(key));
	}
	return "test";
}

<script>
	$(document).ready(function(){
		var params = {};
		params.name = "test";
		params.age = 22;
		params.test = "ttt";
		$.get("test", params);
	});
</script>

반응형