JSP 양식 처리
웹을 탐색할 때 정보를 서버에 제출하고 백그라운드 프로그램에서 처리하도록 해야 하는 경우가 많습니다. 브라우저는 GET 및 POST 메서드를 사용하여 데이터를 서버에 제출합니다.
GET 방식
GET 방식은 URL 뒤에 요청한 인코딩 정보를 추가하며, URL과 인코딩 정보는 "?" 기호로 구분됩니다. 아래와 같이:
http://www.php.cn/hello?key1=value1&key2=value2
GET 방식은 브라우저가 매개변수를 전달하는 기본 방식입니다. 비밀번호와 같은 일부 민감한 정보에는 GET 방식을 사용하지 않는 것이 좋습니다.
get 사용 시 전송되는 데이터의 크기가 제한되며(제한되는 매개변수 개수가 아님에 유의) 최대값은 1024바이트입니다.
POST 메소드
POST 메소드를 통해 비밀번호 등과 같은 일부 민감한 정보를 전달할 수 있습니다.
POST에 제출된 데이터는 보이지 않으며, URL에 GET이 전달됩니다(브라우저의 주소 표시줄을 확인할 수 있습니다).
JSP는 getParameter()를 사용하여 전달된 매개변수를 얻고, getInputStream() 메소드는 클라이언트의 바이너리 데이터 스트림 요청을 처리하는 데 사용됩니다.
JSP는 양식 데이터를 읽습니다
getParameter(): request.getParameter() 메서드를 사용하여 양식 값을 가져옵니다. 매개변수.
getParameterValues(): 체크박스 클래스와 같은 데이터를 가져옵니다(이름은 같지만 값이 여러 개임). 체크박스 유형
getParameterNames():과 같은 배열 변수를 수신합니다. 이 메소드는 모든 변수의 이름을 가져올 수 있으며, 이 메소드는 Emumeration을 반환합니다.
getInputStream():클라이언트에서 바이너리 데이터 스트림을 읽으려면 이 메서드를 호출합니다.
URL의 GET 메소드 사용 예
다음은 단순 URL이며 GET 메소드를 사용하여 URL의 매개변수를 전달합니다.
http://localhost:8080/testjsp/main.jsp?name=php中文网&url=http://ww.php.cn
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>php中文网(php.cn)</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=php Chinese website&url=http://ww.php.cn출력 결과는 다음과 같습니다. :
폼의 GET 메소드 사용 예시
다음은 GET 메소드를 통해 클라이언트 데이터를 제출하는 간단한 HTML 폼입니다. main.jsp 파일:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</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 파일에 양식 데이터를 제출합니다. 데모 Gif는 다음과 같습니다. :
"사이트 이름"과 "웹 사이트" 양식에 정보를 입력하고 "제출" 버튼을 클릭하면 결과가 출력됩니다.
폼의 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>php中文网(php.cn)</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>php中文网(php.cn)</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 파일에 양식 데이터를 제출합니다. 데모 Gif는 다음과 같습니다.
Checkbox 데이터를 JSP 프로그램에 전달합니다. checkbox checkbox 하나 또는 여러 개의 데이터를 전달할 수 있습니다. 다음은 간단한 HTML 코드이며 test.htm 파일에 코드를 저장합니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <form action="main.jsp" method="POST" target="_blank"> <input type="checkbox" name="google" checked="checked" /> Google <input type="checkbox" name="php" /> php中文网 <input type="checkbox" name="taobao" checked="checked" /> 淘宝 <input type="submit" value="选择网站" /> </form> </body> </html>위 코드는 브라우저에서 액세스할 때 다음과 같습니다. 다음은 체크박스 데이터를 처리하는 데 사용되는 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>php中文网(php.cn)</title> </head> <body> <h1>从复选框中读取数据</h1> <ul> <li><p><b>Google 是否选中:</b> <%= request.getParameter("google")%> </p></li> <li><p><b>php中文网是否选中:</b> <%= request.getParameter("php")%> </p></li> <li><p><b>淘宝是否选中:</b> <%= request.getParameter("taobao")%> </p></li> </ul> </body> </html>
http://localhost:8080/testjsp/test.html에 접속하여 양식을 제출합니다. main.jsp 파일의 데이터, 데모 Gif는 다음과 같습니다.
모든 양식 매개변수 읽기 아래에서는 다음을 사용합니다.
HttpServletRequest의 getParameterNames()는 모든 양식 매개변수를 읽는 데 사용됩니다. 이 메소드는 모든 변수의 이름을 가져올 수 있습니다.
열거가 있으면 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>php中文网(php.cn)</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>php中文网(php.cn)</title> </head> <body> <form action="main.jsp" method="POST" target="_blank"> <input type="checkbox" name="google" checked="checked" /> Google <input type="checkbox" name="php" /> php中文网 <input type="checkbox" name="taobao" checked="checked" /> 淘宝 <input type="submit" value="选择网站" /> </form> </body> </html>이제 브라우저를 통해 test.htm 파일에 액세스하여 데이터를 제출하고 출력 결과는 다음과 같습니다. 접속
http://localhost:8080/testjsp/test.html 양식 데이터를 main.jsp 파일에 제출합니다. 데모 Gif는 다음과 같습니다. :
위의 JSP 코드를 사용하여 텍스트 상자, 라디오 버튼, 드롭다운 상자 등 다른 개체와 기타 형식의 데이터를 읽을 수 있습니다.