English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JSP 양식 처리

웹 페이지를 볼 때, 서버에 정보를 제출하고 백엔드 프로그램이 처리하도록 요청하는 경우가 많습니다. 브라우저에서 GET과 POST 메서드를 사용하여 서버에 데이터를 제출합니다.

GET 메서드

GET 메서드는 요청의编码 정보를 URL의 뒤에 추가하고, URL과编码 정보는 "?"로 구분됩니다. 예를 들어:

http://ko.oldtoolbag.com/hello?key1=value1&key2=value2

GET 메서드는 브라우저가 기본적으로 매개변수를 전달하는 방법이며, 비밀번호와 같은 민감한 정보는 GET 메서드를 사용하지 않는 것이 좋습니다.

GET을 사용할 때, 전송 데이터의 크기는 제한됩니다(주로 매개변수의 개수는 제한되지 않습니다), 최대值为1024바이트.

POST 메서드

비밀번호와 같은 민감한 정보는 POST 메서드를 통해 전달할 수 있으며, POST 제출 데이터는 은닉됩니다.

POST 제출 데이터는 숨겨져 있으며, GET은 URL 내에서 전달됩니다(브라우저의 주소 표시줄을 확인할 수 있습니다).

JSP는 getParameter()를 사용하여 전달된 매개변수를 얻고, getInputStream() 메서드는 클라이언트의 바이너리 데이터 스트림 요청을 처리합니다.

JSP가 폼 데이터를 읽습니다

  • getParameter(): request.getParameter() 메서드를 사용하여 폼 매개변수의 값을 가져옵니다.

  • getParameterValues(): checkbox와 같은 이름이 같지만 값이 여러 개인 데이터를 얻습니다. 수신 배열 변수, checkbox 유형

  • getParameterNames():이 메서드는 모든 변수 이름을 가져올 수 있으며, Enumeration을 반환합니다.

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

URL의 GET 메서드 사용 예제

아래는 간단한 URL이며, GET 메서드를 사용하여 URL 내의 매개변수를 전달합니다:

http://localhost:8080/testjsp/main.jsp?name=기본 튜토리얼 웹&url=http://ww.oldtoolbag.com

testjsp가 프로젝트 주소입니다.

아래는 main.jsp 파일의 JSP 프로그램이 클라이언트가 제출한 폼 데이터를 처리하는 데 사용되며, getParameter() 메서드를 사용하여 제출된 데이터를 가져옵니다:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>기본 튜토리얼 웹(oldtoolbag.com)</title>
</head>
<body>
<h1> GET 메서드로 데이터를 읽기 위해 사용/h1>
<ul>
<li><p><b>사이트 이름:</b>
   <%= request.getParameter("name") %>
</p></li>
<li><p><b>웹사이트 주소:</b>
   <%= request.getParameter("url")%>
</p></li>
</ul>
</body>
</html>

다음은 브라우저를 통해 http:을 방문합니다.//localhost:8080/testjsp/main.jsp?name=JSP教程&url=http://ww.oldtoolbag.com의 출력 결과는 다음과 같습니다:

양식의 GET 메서드 사용 예제

다음은 간단한 HTML 양식으로, 이 양식은 GET 메서드를 통해 클라이언트 데이터를 전송합니다 으로 main.jsp 파일에:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>기본 튜토리얼 웹(oldtoolbag.com)</title>
</head>
<body>
<form action="main.jsp" method="GET">
사이트 이름: <input type="text" name="name">
<br />
웹사이트 주소: <input type="text" name="url" />
<input type="submit" value="제출" />
</form>
</body>
</html>

위 HTML 코드를 test.htm 파일에 저장합니다。 이 파일을 현재 jsp 프로젝트의 WebContent 디렉토리에 위치시키십시오. (main.jsp와 같은 디렉토리입니다).

액세스를 통해 http://localhost:8080/testjsp/test.html main.jsp 파일에 양식 데이터를 제출하는 그림은 다음과 같습니다:

"사이트 이름"과 "웹사이트 주소" 양식에 정보를 입력하고 "제출" 버튼을 클릭하면 결과가 출력됩니다。

양식의 POST 메서드 사용 예제

이제 POST 메서드를 사용하여 양식 데이터를 전달하는 방법을 설명해 보겠습니다. main.jsp와 Hello.htm 파일 코드를 수정합니다. 다음과 같이 보입니다:

main.jsp 파일 코드:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>기본 튜토리얼 웹(oldtoolbag.com)</title>
</head>
<body>
<h1>POST 메서드를 사용하여 데이터를 읽기/h1>
<ul>
<li><p><b>사이트 이름:</b>
<%
// 중국어 망쇼 문제 해결
String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8");
>
   <%=name%>
</p></li>
<li><p><b>웹사이트 주소:</b>
   <%= request.getParameter("url")%>
</p></li>
</ul>
</body>
</html>

코드에서 사용하였습니다 new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8")인코딩을 변환하여 중국어 망쇼가 발생하지 않도록 합니다。

다음은 수정된 test.htm 코드입니다:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>기본 튜토리얼 웹(oldtoolbag.com)</title>
</head>
<body>
<form action="main.jsp" method="POST">
사이트 이름: <input type="text" name="name">
<br />
웹사이트 주소: <input type="text" name="url" />
<input type="submit" value="제출" />
</form>
</body>
</html>

액세스를 통해 http://localhost:8080/testjsp/test.html main.jsp 파일에 표单 데이터를 제출하는 방법, 다음과 같습니다:

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

체크박스 checkbox은 하나 이상의 데이터를 전달할 수 있습니다。

이하는 간단한 HTML 코드로, 코드를 test.htm 파일에 저장합니다:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>기본 튜토리얼 웹(oldtoolbag.com)</title>
</head>
<body>
<form action="main.jsp" method="POST" target="_blank">
<input type="checkbox" name="google" checked="checked"> /> Google
<input type="checkbox" name="w3codebox  /> 기본 튜토리얼 웹
<input type="checkbox" name="taobao" checked="checked"> /> 淘宝
<input type="submit" value="사이트 선택"> />
</form>
</body>
</html>

이 코드는 브라우저에서 접속했을 때 다음과 같이 표시됩니다:

이하 주요.jsp 파일 코드는 체크박스 데이터 처리를 위해 사용됩니다:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>기본 튜토리얼 웹(oldtoolbag.com)</title>
</head>
<body>
<h1>체크박스에서 데이터를 읽어서</h1>
<ul>
<li><p><b>Google이 선택되었는가:</b>
   <%= request.getParameter("google")%>
</p></li>
<li><p><b>기본 지침 웹사이트가 선택되었는가:</b>
   <%= request.getParameter("w3codebox")%>
</p></li>
<li><p><b>타obao가 선택되었는가:</b>
   <%= request.getParameter("taobao")%>
</p></li>
</ul>
</body>
</html>

액세스를 통해 http://localhost:8080/testjsp/test.html main.jsp 파일에 표单 데이터를 제출하는 방법, 다음과 같습니다:

"선택 사이트"를 클릭한 후:


모든 테이블 파라미터를 읽기

다음에 우리는 HttpServletRequestgetParameterNames() 모든 테이블 파라미터를 읽기 위해, 이 메서드는 모든 변수 이름을 가져올 수 있으며, 이 메서드는 순회 가능 요소를 반환합니다.

一旦 우리가 Enumeration(순회 가능 요소)를 가지고 있으면, hasMoreElements() 메서드를 호출하여 요소가 더 있는지 확인하고, nextElement() 메서드를 사용하여 각 파라미터 이름을 얻을 수 있습니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>기본 튜토리얼 웹(oldtoolbag.com)</title>
</head>
<body>
<h1>모든 테이블 파라미터를 읽기</h1>
<table width="100%" border="1" align="center">
<tr bgcolor="#949494">
<th>파라미터 이름</th><th>파라미터 값</th>
</tr>
<%
   Enumeration 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>
</body>
</html>

아래는 test.htm 파일의 내용입니다:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>기본 튜토리얼 웹(oldtoolbag.com)</title>
</head>
<body>
<form action="main.jsp" method="POST" target="_blank">
<input type="checkbox" name="google" checked="checked"> /> Google
<input type="checkbox" name="w3codebox  /> 기본 튜토리얼 웹
<input type="checkbox" name="taobao" checked="checked"> /> 
                                                淘宝
<input type="submit" value="사이트 선택"> />
</form>
</body>
</html>

이제 브라우저를 통해 test.htm 파일에 접근하여 데이터를 제출하고, 결과는 다음과 같습니다:

액세스를 통해 http://localhost:8080/testjsp/test.html main.jsp 파일에 표单 데이터를 제출하는 방법, 다음과 같습니다:


"사이트 선택"을 클릭한 후:


위의 JSP 코드를 사용하여 다른 객체, 예를 들어 텍스트 박스,单选按钮,下拉框 등 다양한 형식의 데이터를 읽을 수 있습니다.