JSP-양식 처리

이 장에서는 JSP의 양식 처리에 대해 설명합니다. 브라우저에서 웹 서버로 그리고 궁극적으로 백엔드 프로그램으로 일부 정보를 전달해야 할 때 많은 상황이 발생했을 것입니다. 브라우저는 두 가지 방법을 사용하여이 정보를 웹 서버에 전달합니다. 이러한 메서드는 GET 메서드와 POST 메서드입니다.

양식 처리 방법

이제 양식 처리의 방법에 대해 설명하겠습니다.

GET 방법

GET 메서드는 페이지 요청에 추가 된 인코딩 된 사용자 정보를 보냅니다. 페이지와 인코딩 된 정보는? 다음과 같이 문자-

http://www.test.com/hello?key1=value1&key2=value2

GET 메서드는 브라우저에서 웹 서버로 정보를 전달하는 기본 방법이며 브라우저의 긴 문자열을 생성합니다. Location:box. GET 메소드를 사용하지 않는 것이 좋습니다. 서버에 전달할 비밀번호 또는 기타 민감한 정보가있는 경우.

GET 메서드에는 크기 제한이 있습니다. only 1024 characters can be in a request string.

이 정보는 QUERY_STRING header 사용하여 처리 할 수있는 QUERY_STRING 환경 변수를 통해 액세스 할 수 있습니다. getQueryString()getParameter() 요청 개체의 메서드.

POST 방법

일반적으로 백엔드 프로그램에 정보를 전달하는보다 안정적인 방법은 POST 방법입니다.

이 메서드는 GET 메서드와 똑같은 방식으로 정보를 패키징하지만? 뒤에 텍스트 문자열로 보내는 대신 URL에서 별도의 메시지로 보냅니다. 이 메시지는 처리를 위해 구문 분석하고 사용할 수있는 표준 입력 형식으로 백엔드 프로그램에 제공됩니다.

JSP는 다음을 사용하여 이러한 유형의 요청을 처리합니다. getParameter() 간단한 매개 변수를 읽는 방법과 getInputStream() 클라이언트에서 오는 바이너리 데이터 스트림을 읽는 방법.

JSP를 사용하여 양식 데이터 읽기

JSP는 상황에 따라 다음 방법을 사용하여 양식 데이터 구문 분석을 자동으로 처리합니다.

  • getParameter() − 전화 request.getParameter() 양식 매개 변수의 값을 가져 오는 메소드.

  • getParameterValues() − 매개 변수가 두 번 이상 나타나고 여러 값 (예 : 확인란)을 반환하는 경우이 메서드를 호출합니다.

  • getParameterNames() − 현재 요청에있는 모든 매개 변수의 전체 목록을 원하면이 메서드를 호출합니다.

  • getInputStream() −이 메서드를 호출하여 클라이언트에서 오는 바이너리 데이터 스트림을 읽습니다.

URL을 사용한 GET 메서드 예제

다음 URL은 GET 메소드를 사용하여 HelloForm 프로그램에 두 개의 값을 전달합니다.

http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI

아래는 main.jsp웹 브라우저에서 제공하는 입력을 처리하는 JSP 프로그램. 우리는getParameter() 전달 된 정보에 매우 쉽게 액세스 할 수있는 방법-

<html>
   <head>
      <title>Using GET Method to Read Form Data</title>
   </head>
   
   <body>
      <h1>Using GET Method to Read Form Data</h1>
      <ul>
         <li><p><b>First Name:</b>
            <%= request.getParameter("first_name")%>
         </p></li>
         <li><p><b>Last  Name:</b>
            <%= request.getParameter("last_name")%>
         </p></li>
      </ul>
   
   </body>
</html>

이제 입력 http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI 귀하의 브라우저에서 Location:box. 이것은 다음 결과를 생성합니다-

GET 메서드를 사용하여 양식 데이터 읽기

  • First Name: ZARA

  • Last Name: ALI

양식을 사용한 GET 메서드 예제

다음은 HTML FORM과 제출 버튼을 사용하여 두 값을 전달하는 예입니다. 이 입력을 처리하기 위해 동일한 JSP main.jsp를 사용할 것입니다.

<html>
   <body>
      
      <form action = "main.jsp" method = "GET">
         First Name: <input type = "text" name = "first_name">
         <br />
         Last Name: <input type = "text" name = "last_name" />
         <input type = "submit" value = "Submit" />
      </form>
      
   </body>
</html>

이 HTML을 Hello.htm 파일에 보관하고 <Tomcat-installation-directory>/webapps/ROOT directory. 액세스 할 때http://localhost:8080/Hello.htm, 다음 출력을 받게됩니다.

<p> 이름과 성을 입력 한 다음 제출 버튼을 클릭하여 tomcat이 실행되는 로컬 컴퓨터에서 결과를 확인합니다. 제공된 입력을 기반으로 위의 예에서 언급 한 것과 유사한 결과를 생성합니다.

양식을 사용한 POST 방법 예제

GET 및 POST 메서드를 모두 처리하기 위해 위의 JSP에서 약간의 수정을 수행해 보겠습니다. 아래는main.jsp GET 또는 POST 메소드를 사용하여 웹 브라우저에서 제공 한 입력을 처리하는 JSP 프로그램.

실제로 매개 변수를 전달하는 유일한 방법이 변경되고 2 진 데이터가 JSP 프로그램에 전달되지 않기 때문에 위의 JSP에는 변경 사항이 없습니다. 파일 처리 관련 개념은 바이너리 데이터 스트림을 읽어야하는 별도의 장에서 설명합니다.

<html>
   <head>
      <title>Using GET and POST Method to Read Form Data</title>
   </head>
   
   <body>
      <center>
      <h1>Using POST Method to Read Form Data</h1>
      
      <ul>
         <li><p><b>First Name:</b>
            <%= request.getParameter("first_name")%>
         </p></li>
         <li><p><b>Last  Name:</b>
            <%= request.getParameter("last_name")%>
         </p></li>
      </ul>
   
   </body>
</html>

다음은의 내용입니다 Hello.htm 파일-

<html>
   <body>
      
      <form action = "main.jsp" method = "POST">
         First Name: <input type = "text" name = "first_name">
         <br />
         Last Name: <input type = "text" name = "last_name" />
         <input type = "submit" value = "Submit" />
      </form>
      
   </body>
</html>

이제 지켜 보자 main.jsp 그리고 hello.htm <Tomcat-installationdirectory>/webapps/ROOT directory. 액세스 할 때http://localhost:8080/Hello.htm, 다음 출력을 받게됩니다.

이름과 성을 입력 한 다음 제출 버튼을 클릭하여 tomcat이 실행중인 로컬 컴퓨터에서 결과를 확인합니다.

제공된 입력을 기반으로 위의 예에서와 유사한 결과를 받게됩니다.

체크 박스 데이터를 JSP 프로그램에 전달

두 개 이상의 옵션을 선택해야하는 경우 확인란이 사용됩니다.

다음은 예입니다. HTML code, CheckBox.htm, 두 개의 확인란이있는 양식의 경우.

<html>
   <body>
      
      <form action = "main.jsp" method = "POST" target = "_blank">
         <input type = "checkbox" name = "maths" checked = "checked" /> Maths
         <input type = "checkbox" name = "physics"  /> Physics
         <input type = "checkbox" name = "chemistry" checked = "checked" /> Chemistry
         <input type = "submit" value = "Select Subject" />
      </form>
      
   </body>
</html>

위의 코드는 다음 결과를 생성합니다-

다음은 체크 박스 버튼에 대해 웹 브라우저에서 제공하는 입력을 처리하는 main.jsp JSP 프로그램입니다.

<html>
   <head>
      <title>Reading Checkbox Data</title>
   </head>
   
   <body>
      <h1>Reading Checkbox Data</h1>
      
      <ul>
         <li><p><b>Maths Flag:</b>
            <%= request.getParameter("maths")%>
         </p></li>
         <li><p><b>Physics Flag:</b>
            <%= request.getParameter("physics")%>
         </p></li>
         <li><p><b>Chemistry Flag:</b>
            <%= request.getParameter("chemistry")%>
         </p></li>
      </ul>
   
   </body>
</html>

위의 프로그램은 다음 결과를 생성합니다-

Reading Checkbox Data

  • Maths Flag :: on

  • Physics Flag:: null

  • Chemistry Flag:: on

모든 양식 매개 변수 읽기

다음은 사용하는 일반적인 예입니다. getParameterNames()HttpServletRequest의 메소드를 사용하여 사용 가능한 모든 양식 매개 변수를 읽습니다. 이 메서드는 지정되지 않은 순서로 매개 변수 이름이 포함 된 열거 형을 반환합니다.

Enumeration이 있으면 표준 방식으로 Enumeration을 루프 다운 할 수 있습니다. hasMoreElements() 중지 할시기를 결정하고 nextElement() 각 매개 변수 이름을 가져 오는 메소드.

<%@ page import = "java.io.*,java.util.*" %>

<html>
   <head>
      <title>HTTP Header Request Example</title>
   </head>

   <body>
      <center>
         <h2>HTTP Header Request Example</h2>
         <table width = "100%" border = "1" align = "center">
            <tr bgcolor = "#949494">
               <th>Param Name</th>
               <th>Param Value(s)</th>
            </tr>
            <%
               Enumeration paramNames = request.getParameterNames();
               while(paramNames.hasMoreElements()) {
                  String paramName = (String)paramNames.nextElement();
                  out.print("<tr><td>" + paramName + "</td>\n");
                  String paramValue = request.getHeader(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" checked = "checked" /> Maths
         <input type = "checkbox" name = "physics"  /> Physics
         <input type = "checkbox" name = "chemistry" checked = "checked" /> Chem
         <input type = "submit" value = "Select Subject" />
      </form>
   
   </body>
</html>

이제 위의 Hello.htm을 사용하여 JSP를 호출 해보십시오. 이것은 제공된 입력을 기반으로 아래와 같은 결과를 생성합니다.

모든 양식 매개 변수 읽기

매개 변수 이름 매개 변수 값
수학 의 위에
화학 의 위에

위의 JSP를 사용하여 텍스트 상자, 라디오 버튼 또는 드롭 다운 등과 같은 다른 개체가있는 다른 양식의 데이터를 읽을 수 있습니다.