Latest web development tutorials

การประมวลผลรูปแบบ JSP

เราเรียกดูเว็บคุณมักจะต้องส่งข้อมูลไปยังเซิร์ฟเวอร์และปล่อยให้กระบวนการภูต เบราว์เซอร์ที่ใช้ GET และ POST วิธีการที่จะส่งข้อมูลไปยังเซิร์ฟเวอร์


GET วิธี

ได้รับการเข้ารหัสวิธีการขอข้อมูลเพื่อเพิ่มไปยัง URL ข้อมูลการเข้ารหัส URL ผ่าน "?" แยกจากกันโดย ดังต่อไปนี้:

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

วิธีการ GET เป็นวิธีการของเบราว์เซอร์ค่าเริ่มต้นผ่านข้อมูลที่สำคัญเช่นรหัสผ่านและอื่น ๆ ไม่แนะนำให้ใช้วิธีการ GET

รับใช้ขนาดของข้อมูลที่ส่งจะถูก จำกัด (ทราบจำนวนพารามิเตอร์ไม่ได้ จำกัด ) เพิ่มขึ้นเป็น 1024 ไบต์


วิธีการ POST

ข้อมูลสำคัญเช่นรหัสผ่านและเพื่อให้เราสามารถส่งผ่านวิธีการโพสต์โพสต์ในการส่งข้อมูลเป็นนัย

โพสต์ในการส่งข้อมูลไม่สามารถมองเห็นได้รับจะถูกส่งผ่าน URL ที่ภายใน (คุณสามารถดูที่แถบที่อยู่ของเบราว์เซอร์ของคุณ)

JSP ใช้ getParameter () เพื่อให้ได้ค่าพารามิเตอร์ผ่าน, getInputStream () วิธีการที่ใช้ในการประมวลผลคำขอกระแสข้อมูลไบนารีของลูกค้า


ข้อมูลรูปแบบ JSP จะอ่าน

  • getParameter (): ใช้ request.getParameter () วิธีการที่จะได้รับค่าพารามิเตอร์ของแบบฟอร์ม

  • getParameterValues (): ได้รับเป็นชั้นช่องทำเครื่องหมาย (ชื่อเหมือนกัน แต่ส่วนใหญ่ของค่า) ข้อมูลรับอาร์เรย์ของตัวแปรเช่นประเภทช่องทำเครื่องหมาย

  • getParameterNames (): วิธีการนี้สามารถได้รับชื่อของตัวแปรทั้งหมดวิธีการส่งกลับ Emumeration

  • getInputStream (): วิธีการนี้เรียกว่าการอ่านกระแสข้อมูลไบนารีจากลูกค้า


ตัวอย่างของการใช้วิธีการ GET URL

ต่อไปนี้เป็น URL ที่เรียบง่ายและใช้วิธีการ GET เพื่อส่งผ่านพารามิเตอร์ใน URL:

http://localhost:8080/testjsp/main.jsp?name=本教程&url=http://ww.w3big.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>本教程(w3big.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 = กวดวิชานี้และ url = http :? //ww.w3big.com ออกผลมีดังนี้


ใช้วิธีการรูปแบบ GET ตัวอย่าง

ต่อไปนี้เป็นรูปแบบ HTML ง่ายๆซึ่งจะถูกส่งมาโดยวิธีการ GET เพื่อ main.jsp ไฟล์ข้อมูลของลูกค้า:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>本教程(w3big.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 วางแฟ้มในไดเรกทอรีปัจจุบันภายใต้โครงการ WebContent JSP (กับ main.jsp ไดเรกทอรีเดียวกัน)

โดยไปที่ http: // localhost: 8080 / testjsp / test.html main.jsp ส่งข้อมูลแบบฟอร์มไปยังแฟ้ม, GIF สาธิตแสดงด้านล่าง:

กรอกข้อมูลใน "ชื่อเว็บไซต์" และ "URL" สองรูปแบบและคลิกที่ปุ่ม "ส่ง" ก็จะออกผล


ตัวอย่างของวิธีการ 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>本教程(w3big.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>

เราใช้รหัสใหม่ String ((request.getParameter ( "ชื่อ ")). GetBytes ( "ISO-8859-1"), "UTF-8") ในการแปลงรหัสป้องกันการเกิดของจีนที่อ่านไม่ออก

นี่คือ Test.htm รหัสแก้ไข:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>本教程(w3big.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 ส่งข้อมูลแบบฟอร์มไปยังแฟ้ม, GIF สาธิตแสดงด้านล่าง:


ข้อมูลผ่านช่องทำเครื่องหมายในการเขียนโปรแกรม JSP

ช่องทำเครื่องหมายช่องทำเครื่องหมายสามารถส่งผ่านข้อมูลได้มากยิ่งขึ้น

ต่อไปนี้เป็นรหัส HTML ง่ายๆและรหัสจะถูกเก็บไว้ในแฟ้ม Test.htm:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>本教程(w3big.com)</title>
</head>
<body>

<form action="main.jsp" method="POST" target="_blank">
<input type="checkbox" name="google" checked="checked" /> Google
<input type="checkbox" name="w3big"  /> 本教程
<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>本教程(w3big.com)</title>
</head>
<body>
<h1>从复选框中读取数据</h1>
<ul>
<li><p><b>Google 是否选中:</b>
   <%= request.getParameter("google")%>
</p></li>
<li><p><b>本教程是否选中:</b>
   <%= request.getParameter("w3big")%>
</p></li>
<li><p><b>淘宝是否选中:</b>
   <%= request.getParameter("taobao")%>
</p></li>
</ul>
</body>
</html>

โดยไปที่ http: // localhost: 8080 / testjsp / test.html main.jsp ส่งข้อมูลแบบฟอร์มไปยังแฟ้ม, GIF สาธิตแสดงด้านล่าง:


อ่านค่าพารามิเตอร์ทุกรูปแบบ

ด้านล่างเราจะใช้ getParameterNames HttpServletRequest () เพื่ออ่านพารามิเตอร์ทั้งหมดของรูปแบบวิธีการที่จะได้รับชื่อของตัวแปรทั้งหมดวิธีการส่งกลับแจงนับ

เมื่อเรามีการแจงนับ (การแจงนับ) เราสามารถเรียก 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>本教程(w3big.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>本教程(w3big.com)</title>
</head>
<body>

<form action="main.jsp" method="POST" target="_blank">
<input type="checkbox" name="google" checked="checked" /> Google
<input type="checkbox" name="w3big"  /> 本教程
<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 อ่านวัตถุอื่น ๆ เช่นกล่องข้อความปุ่มกล่องแบบหล่นลงหรือเหมือนรูปแบบอื่น ๆ ของข้อมูล