首页 > 资讯 > 网站设计
处理表单提交的数据
发布时间:2005-03-17   浏览次数:1153741
来源: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 下载本文件getFormData Servlet Example form LoveJSP.com Demo Page getFormData Servlet Demo Page username: password: Email: Homepage: //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"\n" +"" + title + "\n" +"\n" +" username: "+ request.getParameter("username") + "\n" +" password: "+ request.getParameter("password") + "\n" +" Email: "+ request.getParameter("Email") + "\n" +" Homepage: "+ request.getParameter("Homepage") + "\n" +"\n" +"");}} 这个程序的运行结果如下图所示: 大家可能注意到了,上面的结果中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 = "显示所有的Form变量的值";out.println(""+title+""+"\n" +"" + title + "\n" +"\n" +"\n" +"变量名称变量值");Enumeration paramNames = request.getParameterNames();while(paramNames.hasMoreElements()) {String paramName = (String)paramNames.nextElement();out.println("" + paramName + "\n");String[] paramValues = request.getParameterValues(paramName);if (paramValues.length == 1) {String paramValue = paramValues[0];if (paramValue.length() == 0)out.print("No Value");elseout.print(paramValue);} else {out.println("");for(int i=0; i
下一篇: MyFirstServlet
业务咨询

Copyright 2003 - 2023 huinet.cn All Rights Reserved.
慧网公司 版权所有