리주의 프로그래밍 공부

QueryString 입력 본문

스프링(Spring) 공부

QueryString 입력

Leezu_ 2021. 1. 13. 19:19

QueryString(쿼리스트링)

     사용자가 웹프로그램으로 입력 데이터를 전달하는 방법 중 하나로, URL 주소 뒤에 입력 데이터를 함께 제공한다.

     ex) https://querystring:1234/list?변수=값

 

스프링에서 Controller를 통해 QueryString 값을 얻어오는 방법

<Controller.class>의 일부분

	@RequestMapping("/customer/notice/list")
	public String list(HttpServletRequest request) throws ClassNotFoundException, SQLException {
		String p = request.getParameter("p");
		System.out.println(p);
		
		return "notice.list";
	}

Front Controller에서 함수(여기서는 list)의 매개값, 반환값 등을 확인하기 때문에, list를 호출하면서 HttpServletRequest를 확인하고 제공해준다.

 

따라서 http://localhost:8080/customer/notice/list?p=2 의 결과로 console 창에 2가 출력되는걸 확인할 수 있다.

 

 

추가적으로 함수에 QueryString에서 똑같은 변수명으로 매개변수를 선언해서 사용할 수 있다.

<Controller.class>의 일부분

	@RequestMapping("/customer/notice/list")
    //QueryString에서 변수명으로 p를 사용하므로 String 변수명을 p로 설정
	public String list(String p) throws ClassNotFoundException, SQLException {
		System.out.println("page:" + p);
		
		return "notice.list";
	}
   

http://localhost:8080/customer/notice/list?p=2 의 결과로 console 창에 page:2가 출력되는걸 확인할 수 있다.

 

만약 QueryString에서 사용된 변수명을 다른 매개변수명으로 사용하고 싶다면, @RequestParam이란 Annotation을 사용하면 된다. 

 

@RequestParam

       아무것도 안적을때에는 기본적으로 name 속성으로, 기본값을 주고싶다면 defaultValue 속성을 설정하면 된다.

       다만 주의할 점은, parameter로 오는 모든 값들은 문자열이다.

	@RequestMapping("/customer/notice/list")
    // 속성을 따로 지정해주지 않았으므로 "p"는 name 속성으로 자동 매칭된다.
	public String list(@RequestParam("p") String page) throws ClassNotFoundException, SQLException {
		System.out.println("page:" + page);
		
		return "notice.list";
	}

 

위 내용은 유튜브 뉴렉처 님의 스프링 MVC 35, 36강 강의영상을 보고 개인적으로 작성한 글입니다.

 

'스프링(Spring) 공부' 카테고리의 다른 글

POST 한글깨짐 해결  (0) 2021.01.16
POST 입력  (0) 2021.01.16
JSON 출력  (0) 2021.01.12
RestController  (0) 2021.01.12
RequestMapping  (0) 2021.01.08