웹을 탐색할 때 정보를 서버에 제출하고 백그라운드 프로그램이 이를 처리하도록 해야 하는 경우가 많습니다. 브라우저는 GET 및 POST 메서드를 사용하여 데이터를 서버에 제출합니다.
GET 메소드는 URL 뒤에 요청된 인코딩 정보를 추가하며, URL과 인코딩 정보는 "?" 기호로 구분됩니다. 아래와 같이:
//www.w3cschool.cn/hello?key1=value1&key2=value2
GET 방법은 브라우저가 매개변수를 전달하는 기본 방법입니다. 비밀번호와 같은 일부 민감한 정보에는 GET 방법을 사용하지 않는 것이 좋습니다.
get을 사용할 때 전송되는 데이터의 크기는 제한되며(매개변수 수는 제한되지 않음) 최대값은 1024바이트입니다.
POST 메소드를 통해 비밀번호 등과 같은 일부 민감한 정보를 전달할 수 있으며 게시물 제출 데이터는 암시적입니다.
POST로 제출된 데이터는 보이지 않으며 GET이 URL로 전달됩니다(브라우저의 주소 표시줄에서 확인할 수 있음).
JSP는 전달된 매개변수를 얻기 위해 getParameter()를 사용하고, 클라이언트의 바이너리 데이터 스트림 요청을 처리하기 위해 getInputStream() 메소드를 사용합니다.
getParameter(): request.getParameter() 메서드를 사용하여 양식 매개변수의 값을 가져옵니다.
getParameterValues(): 체크박스 클래스(동일한 이름이지만 여러 값)와 같은 데이터를 가져옵니다. 체크박스 형태 등 배열 변수 수신
getParameterNames(): 이 메소드는 모든 변수의 이름을 가져올 수 있습니다. 이 메소드는 Emumeration을 반환합니다.
getInputStream(): 클라이언트에서 바이너리 데이터 스트림을 읽으려면 이 메서드를 호출합니다.
다음은 간단한 URL이며 GET 메서드를 사용하여 URL의 매개변수를 전달합니다.
http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI
다음은 클라이언트가 제출한 양식 데이터를 처리하기 위한 main.jsp 파일의 JSP 프로그램입니다. 우리는 제출된 데이터를 얻기 위해 getParameter() 메소드를 사용합니다.
<html><head><title>GET 메소드를 사용하여 양식 데이터 읽기</title></head><body><center><h1>GET 메소드를 사용하여 양식 데이터 읽기</h1><ul><li> <p><b>이름:</b> <%= request.getParameter("first_name")%></p></li><li><p><b>성:</b> <%= request.getParameter("last_name")%></p></li></ul></body></html>
다음으로 브라우저를 통해 http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI 에 액세스합니다. 출력 결과는 다음과 같습니다.
GET 메서드를 사용하여 양식 데이터 읽기이름: ZARAL성: ALI
다음은 GET 메소드를 통해 클라이언트 데이터를 main.jsp 파일에 제출하는 간단한 HTML 양식입니다.
<html><body><form action="main.jsp" method="GET">이름: <input type="text" name="first_name"><br />성: <input type="text " name="last_name" /><input type="submit" value="Submit" /></form></body></html>
위 HTML 코드를 Hello.htm 파일에 저장합니다. 이 파일을 /webapps/ROOT 디렉터리에 넣습니다. http://localhost:8080/Hello.htm 에 액세스하면 출력 인터페이스는 다음과 같습니다.
"이름"과 "성" 양식에 정보를 입력하고 "제출" 버튼을 클릭하면 결과가 출력됩니다.
다음으로 POST 메소드를 사용하여 양식 데이터를 전송하고 main.jsp 및 Hello.htm 파일 코드를 다음과 같이 수정해 보겠습니다.
main.jsp 파일 코드:
<html><head><title>GET 및 POST 메서드를 사용하여 양식 데이터 읽기</title></head><body><center><h1>GET 메서드를 사용하여 양식 데이터 읽기</h1><ul>< li><p><b>이름:</b> <%= request.getParameter("first_name")%></p></li><li><p><b>성:</ 비> <%= request.getParameter("last_name")%></p></li></ul></body></html>
다음은 Hello.htm의 수정된 코드입니다.
<html><body><form action="main.jsp" method="POST">이름: <input type="text" name="first_name"><br />성: <input type="text " name="last_name" /><input type="submit" value="Submit" /></form></body></html>
브라우저를 통해 http://localhost:8080/Hello.htm 에 액세스하면 출력은 다음과 같습니다.
"이름"과 "성" 양식에 정보를 입력하고 "제출" 버튼을 클릭하면 결과가 출력됩니다.
체크박스 체크박스는 하나 또는 여러 개의 데이터를 전달할 수 있습니다.
다음은 간단한 HTML 코드이며 CheckBox.htm 파일에 코드를 저장합니다.
<html><body><form action="main.jsp" method="POST" target="_blank"><input type="checkbox" name="maths" check="checked" /> 수학<input type= "checkbox" name="physics" /> 물리학<input type="checkbox" name="chemistry" check="checked" /> 화학<input type="submit" value="주제 선택" /></form> </body></html>
다음은 체크박스 데이터를 처리하는 데 사용되는 main.jsp 파일 코드입니다.
<html><head><title>체크박스 데이터 읽기</title></head><body><center><h1>체크박스 데이터 읽기</h1><ul><li><p><b>수학 플래그 :</b> <%= request.getParameter("maths")%></p></li><li><p><b>물리학 플래그:</b> <%= request.getParameter("physics")%></p></li><li><p><b>화학 플래그:</b> <%= request.getParameter("chemistry")%></p ></li></ul></body></html>
위 예제의 출력 결과는 다음과 같습니다.
아래에서는 HttpServletRequest의 getParameterNames()를 사용하여 사용 가능한 모든 양식 매개변수를 읽습니다. 이 메소드는 모든 변수의 이름을 얻을 수 있습니다.
Enumeration이 있으면 hasMoreElements() 메서드를 호출하여 사용을 중지할 시기를 결정하고 nextElement() 메서드를 호출하여 각 매개변수의 이름을 가져올 수 있습니다.
<%@ page import="java.io.*,java.util.*" %><html><head><title>HTTP 헤더 요청 예</title></head><body><center><h2 >HTTP 헤더 요청 예</h2><table align="center"><tr bgcolor="#949494"><th>매개변수 이름</th><th>매개변수 값</th></tr ><% 열거 paramNames = request.getParameterNames(); while(paramNames.hasMoreElements()) { String paramName = (String)paramNames.nextElement(); out.print("<tr><td>" + paramName + "</td>n "); String paramValue = request.getParameter(paramName); out.println("<td> " + paramValue + "</td></tr>n"); }%></table></center></body></html>
다음은 Hello.htm 파일의 내용입니다.
<html><body><form action="main.jsp" method="POST" target="_blank"><input type="checkbox" name="maths" check="checked" /> 수학<input type= "checkbox" name="physics" /> 물리학<input type="checkbox" name="chemistry" selected="checked" /> 화학<input type="submit" value="주제 선택" /></form> </body></html>
이제 브라우저를 통해 Hello.htm 파일에 액세스하고 데이터를 제출합니다.
위의 JSP 코드를 사용하여 텍스트 상자, 라디오 버튼 또는 드롭다운 상자와 같은 다른 개체 및 기타 형식의 데이터를 읽을 수 있습니다.