程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 處理表單提交的數據

處理表單提交的數據

編輯:關於JSP

來源:LoveJSP.site
在Web程序設計中,處理表單提交的數據是獲取Web數據的主要方法,今天,我們來看一看Servlet中是怎樣處理來自表單的數據的。

表單數據的提交方法有兩種Post方法和Get方法,當使用Post方法時,數據由標准的輸入設備讀入,當使用Get方法時,數據由CGI變量QUERY_STRING傳遞給表單數據處理程序。

Servlet會自動將以上兩種方法得到的數據進行處理,從而使用戶只要簡單的調用HttpServletRequest的getParameter方法,給出變量名稱即可取得該變量的值。需要注意的是,變量的名稱是大小寫敏感的。對於Post方法或Get方法提交的數據,Servlet的處理方法是一樣的。當請求的變量不存在時,將會返回一個空字符串。如果變量有多個值,你應該調用getParameterValues,這個方法將會返回一個字符串數組。使用getParameterNames可以取得所有變量的名稱,該方法返回一個Emumeration方法。

下面讓我們來看一個簡單的例子,下面這個Servlet讀取表單中指定名稱的五個字段的值。下載這個例子

//Html file----> postdata.htm 下載本文件
<html>
<head>
<title>getFormData Servlet Example form LoveJSP.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF">
<h1 align="center"> <i><b>Demo Page</b></i></h1>
<form action="/try/servlet/lovejsp.getFormData">
<p> </p>
<table width="41%" border="2" align="center">
<tr bgcolor="#6633CC" align="center">
<td colspan="2" align="center"><font color=white>getFormData Servlet Demo
Page</font></td>
</tr>
<tr bgcolor="#FFFFCC">
<td align="center" width="43%">
<div align="right">username:</div>
</td>
<td width="57%">
<div align="left">
<input type="text" name="username">
</div>
</td>
</tr>
<tr bgcolor="#CCFF99">
<td align="center" width="43%">
<div align="right">password:</div>
</td>
<td width="57%">
<div align="left">
<input type="password" name="password">
</div>
</td>
</tr>
<tr bgcolor="#FFFFCC">
<td align="center" width="43%">
<div align="right">Email:</div>
</td>
<td width="57%">
<div align="left">
<input type="text" name="email">
</div>
</td>
</tr>
<tr bgcolor="#CCFF99">
<td align="center" width="43%">
<div align="right">Homepage:</div>
</td>
<td width="57%">
<div align="left">
<input type="text" name="Homepage">
</div>
</td>
</tr>
</table>
<p align="center">
<input type="reset" name="Reset" value="clear">
<input type="submit" name="Submit2" value="Lets Go">
</p>
</form>
</body>
</html>

//Servlet File getFormData.java 下載本文件

package lovejsp;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

/** Servlet getParameter Ex from Lovejsp.site(http://www.lovejsp.com)
*/

public class getFormData extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "讀取表單數據";
out.println(LovejspTools.headTitle(title) + //a tools method to show the html code with title
"<BODY BGCOLOR="#FDF5E6"> " +
"<H1 ALIGN=CENTER>" + title + "</H1> " +
"<UL> " +
" <LI><B>username</B>: "
+ request.getParameter("username") + " " +
" <LI><B>password</B>: "
+ request.getParameter("password") + " " +
" <LI><B>Email</B>: "
+ request.getParameter("Email") + " " +
" <LI><B>Homepage</B>: "
+ request.getParameter("Homepage") + " " +
"</UL> " +
"</BODY></HTML>");
}
}


這個程序的運行結果如下圖所示:

大家可能注意到了,上面的結果中Email的值是null,這是因為在表單中沒有這個字段,表單的email的名稱是email。

下面這個程序是getParameterNames的示例,也是調試程序的很好的工具,它的功能是顯示所有的表單數據。

//Servlet File ShowAllFormData.java 下載本文件

package lovejsp;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

public class ShowAllFormData extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "顯示所有的FZ喎?http://www.BkJia.com/kf/ware/vc/" target="_blank" class="keylink">vcm2x5MG/tcTWtQ==";
out.println("<HTML><HEAD><TITLE>"+title+"</TITLE></HEAD>"+
"<BODY BGCOLOR="#FDF5E6"> " +
"<H1 ALIGN=CENTER>" + title + "</H1> " +
"<TABLE BORDER=1 ALIGN=CENTER> " +
"<TR BGCOLOR="#FFAD00"> " +
"<TH>變量名稱<TH>變量值");
Enumeration paramNames = request.getParameterNames();
while(paramNames.hasMoreElements()) {
String paramName = (String)paramNames.nextElement();
out.println("<TR><TD>" + paramName + " <TD>");
String[] paramValues = request.getParameterValues(paramName);
if (paramValues.length == 1) {
String paramValue = paramValues[0];
if (paramValue.length() == 0)
out.print("<I>No Value</I>");
else
out.print(paramValue);
} else {
out.println("<UL>");
for(int i=0; i<paramValues.length; i++) {
out.println("<LI>" + paramValues[i]);
}
out.println("</UL>");
}
}
out.println("</TABLE> </BODY></HTML>");
}

public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

運行結果:


好了,thats all for today,thank you all. see you next time


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved