스프링 파라미터 추출

728x90

 

1. HttpServletRequest

@GetMapping("/test")
public String test(HttpServletRequest request){
	
	String data1 = request.getParameter("data1");
	String [] data2 = request.getParameterValues("data2");

	for(String str1 : data2){
		System.out.println("data2 =" + str1);
	}


}
<a href="test?data1=100&data2=200&data2=300">test</a>

data1=100 이고 data2 = 200,300이 배열로 담겨지게 된다.

 

2. WebRequest

WebRequest는 HttpServletRequest 상위 클래스이다.

@GetMapping("/test")
public String test(WebRequest request){
	
	String data1 = request.getParameter("data1");
	String [] data2 = request.getParameterValues("data2");

	for(String str1 : data2){
		System.out.println("data2 =" + str1);
	}


}

3. PathVariable

Restful API 방식으로 프로그래밍시 많이 사용하는 방식

데이터가 요청 주소에 있을 경우 값을 주입 받을 수 있는 어노테이션

요청주소/값1/값2/값3 순서를 가지고 추출

Spring MVC에서 지원하고 있다.

<a href="test/100/200/300">test</a>
@GetMapping("/test/{data1}/{data2}/{data3}")
public String test(@PathVariable String data1,
		@PathVariable String data2,
		@PathVariable String data3){
		//@PathVariable int data3 형변환 가능
        
		System.out.println("data1 =" + data1);
		System.out.println("data2 =" + data2);
		System.out.println("data3 =" + data3);
}

4. RequestParam

파라미터 데이터를 직접 주입 받을 수 있다.

지정된 변수의 이름과 파라미터의 이름이 같을 경우 값을 주입 받는다.

가능한 경우 형 변환도 처리해줍니다.

value :  파라미터의 이름과 변수의 이름이 다를 경우 파라미터 이름을 지정한다.

required : false 를 설정하면 지정된 이름의 파라미터가 없을 경우 null이 주입된다.

 

<a href="test?data1=100&data2=200&data2=300">test</a>
@GetMapping("/test")
public String test(@RequestParam int data1,
				@RequestParam int [] data2){
			//@RequestParam(value = "data1") int value1
			//@RequestParam(required = false) String data3) 지정된 이름 파라미터 없을 때 null
			//@RequestParam(defaultValue = "100") int data4) 기본값으로 받겠다 싶을 떄
            
		System.out.println("data1 =" + data1);
		for(int i : data2)
		{
			System.out.println("data2 : " + i);
		}
}
반응형