대덕공부/Spring

요청파라미터 전달방식과 사용방법

02O2 2022. 6. 13. 20:53

**getParameter 리턴타입  

          메서드                             리턴타입                      

getParameter(String name)                  String

getParameterValues(String name)          String[]

getParameterNames()                     java.util.Enumeration

getParameterMap()                         java.util.Map

<%@page import="java.util.Map"%>
<%@page import="java.util.Arrays"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>03/parameterDesc.jsp</title>
</head>
<body>
<h4>요청 파라미터 전달 방식과 사용 방법</h4>
<form action="" method="get">
   <input type="text" name="param1" value="value1">
   <input type="text" name="param1" value="value2">
   <input type="number" name="param2" value="234">
   <input type="text" name="param3" value="한글파라미터">
   <input type="submit" value="전송">
</form>
<% 
   request.setCharacterEncoding("UTF-8");
   Map<String,String[]> paramteterMap = request.getParameterMap();
   if(paramteterMap.size() > 0){
      
%>
<pre>
   param1 : <%=Arrays.toString( request.getParameterValues("param1")) %>
   param2 : <%= Integer.parseInt(request.getParameter("param2")) %>
   param3 : <%= request.getParameter("param3") %>
   
<% 
   }
%>
</pre>

</body>
</html>

   

reqeust.getParameterMap();

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

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

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

 

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

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

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

 

   param1 : <%=Arrays.toString( request.getParameterValues("param1")) %>

                    - 배열 내용 출력하기 (Arrays.toString())

   param2 : <%= Integer.parseInt(request.getParameter("param2")) %>
   param3 : <%= request.getParameter("param3") %>

 

get방식이기때문에 queryString으로 주소가 표현된다.