四、处理表单数据
时间:2007-10-22 来源:不详 作者:林子
4.2 实例:读取三个表单变量
下面是一个简单的例子,它读取三个表单变量param1、param2和param3,并以HTML列表的形式列出它们的值。请注意,虽然在发送应答内容之前必须指定应答类型(包括内容类型、状态以及其他HTTP头信息),但Servlet对何时读取请求内容却没有什么要求。
另外,我们也可以很容易地把Servlet做成既能处理GET请求,也能够处理POST请求,这只需要在doPost方法中调用doGet方法,或者覆盖service方法(service方法调用doGet、doPost、doHead等方法)。在实际编程中这是一种标准的方法,因为它只需要很少的额外工作,却能够增加客户端编码的灵活性。
如果你习惯用传统的CGI方法,通过标准输入读取POST数据,那么在Servlet中也有类似的方法,即在HttpServletRequest上调用getReader或者getInputStream,但这种方法对普通的表单变量来说太麻烦。然而,如果是要上载文件,或者POST数据是通过专门的客户程序而不是HTML表单发送,那么就要用到这种方法。
注意用第二种方法读取POST数据时,不能再用getParameter来读取这些数据。
ThreeParams.java
package hall;
import java.io.*; copyright dedecms
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
public class ThreeParams extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "读取三个请求参数";
out.println(ServletUtilities.headWithTitle(title)
"<BODY>\n"
"<H1 ALIGN=CENTER>" title "</H1>\n"
"<UL>\n"
" <LI>param1: "
request.getParameter("param1") "\n"
" <LI>param2: "
request.getParameter("param2") "\n"
" <LI>param3: "
request.getParameter("param3") "\n"
"</UL>\n"
"</BODY></HTML>");
}
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
4.3 实例:输出所有的表单数据
下面这个例子寻找表单所发送的所有变量名字,并把它们放入表格中,没有值或者有多个值的变量都突出显示。

上一篇:六、访问CGI变量 下一篇:二、设置开发、运行环境
文章评论
共有位Admini5网友发表了评论 查看完整内容