CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

关于servlet中的dopost()的处理原理问题?

楼主Jacky1206(胖胖,其实我不胖)2002-07-08 10:53:33 在 Java / Web 开发 提问

各位DX;  
  请看我的如下代码:  
   
  网页代码:  
  <html>  
  <head><title>JdcSurvey</title></head>  
  <body>  
  <form   action="http://localhost:8080/servlet/untitled1.survey"   method="post">  
  <input   type=hidden   name=survey   value=Survey01Results>  
  <br>  
  <br>  
  How   Many   Emploees   are   there   in   your   Company?<br>  
  <br>1-100<input   type=radio   name=employee   value1-100>  
  <br>100-200<input   type=radio   name=employee   value=100-200>  
  <br>200-300<input   type=radio   name=employee   value=200-300>  
  <br>300-400<input   type=radio   name=employee   value=300-400>  
  <br>500-more<input   type=radio   name=employee   value=500-more>  
  <br>  
  <br>  
  General   Comments?<br>  
  <br><input   type=text   name=comment>  
  <br>  
  <br>  
  What   IDEs   do   you   use?<br>  
  <br>Java   WorkShop<input   type=checkbox   name=ide   value=JavaWorkShop>  
  <br>J++<input   type=checkbox   name=ide   value=J++>  
  <br>Cafe<input   type=checkbox   name=ide   value=Cafe>  
  <br><br><input   type=submit><input   type=reset>  
  </form>  
  </body>  
  </html>  
   
  servlet代码:  
   
  package   untitled1;  
   
  import   javax.servlet.*;  
  import   javax.servlet.http.*;  
  import   java.io.*;  
  import   java.util.*;  
   
  public   class   survey   extends   HttpServlet  
  {  
      private   static   final   String   CONTENT_TYPE   =   "text/html;   charset=GBK";  
      private   static   final   String   resultsDir="c:\\survey";  
      //Initialize   global   variables  
      public   void   init()   throws   ServletException  
      {  
      }  
      //Process   the   HTTP   Get   request  
      public   void   doPost(HttpServletRequest   req,HttpServletResponse   res)   throws   ServletException,   IOException  
      {  
          res.setContentType(CONTENT_TYPE);  
          PrintWriter   toClient   =   res.getWriter();  
   
          try  
          {  
              String   surveyName=req.getParameterValues("survey")   [0];  
              FileWriter   resultsFile=new   FileWriter(resultsDir+surveyName+".txt",true);  
              PrintWriter   toFile=new   PrintWriter(resultsFile);  
              toFile.println("<BEGIN>");  
              Enumeration   values=req.getParameterNames()   ;  
              while(values.hasMoreElements()   )  
              {  
                  String   name=(String)values.nextElement()   ;  
                  String   value=req.getParameterValues(name)[0];  
                  if(name.compareTo("submit")!=0)  
                  {  
                      toFile.println(name+":"+value);  
                  }  
              }  
              toFile.println("<END>");  
              resultsFile.close()   ;  
   
              toClient.println("<html>");  
              toClient.println("<head><title>survey</title></head>");  
              toClient.println("<body>");  
              toClient.println("<p>The   servlet   has   received   a   POST.   This   is   the   reply.</p>");  
              toClient.println("</body></html>");  
          }  
          catch(IOException   e)  
          {  
              e.printStackTrace()   ;  
              toClient.println("A   problem   occrued   while   recording   your   answers.Please   tyr   again");  
          }  
   
          toClient.close();  
          //Clean   up   resources  
      }  
  }  
   
  执行结果:  
  <BEGIN>  
  employee:200-300             //(我选的)  
  ide:JavaWorkShop             //(我选的)  
  survey:Survey01Results  
  comment:ok                         //(我写入的)  
  <END>  
   
   
  我的问题是:一,在values中是否存储了4个元素:survey,employee,comment,ide?  
  二:String   value=req.getParameterValues(name)[0]中,当当前的name为employee时,由于有5个名字为emploee的单选项,是不是只打印出被选择的项呢?还是由于  
  name.compareTo("submit")!=0才使得只打印了被选择的项?  
  三:读取values时是否有先后的顺序?象以上的结果是先employee,再ide.....那么它是随机的还是应该有顺序的打印呢(按网页中name出现的先后次序,象这张网页就应该是:  
  survey,employee,comment,ide)????  
   
  希望各位DX能不吝赐教,学生谢谢了! 问题点数:50、回复次数:2Top

1 楼gfzhx(小小)回复于 2002-07-08 11:10:07 得分 50

1:values中存储的是你提交过来的所有数据。  
  2:由于是单选,所以只会传过来一个参数,而你根据name也只能得到长度为1的数组。  
  3:读取的顺序具体没有规范规定,所以不同厂商的实现不同有可能不一样。一般传过来的数据都是按照你的网页自顶向下的顺序存放的。Top

相关问题

  • 谁能告诉我reset()与retrieve()它们处理操作的原理吗?
  • 〓〓〓〓〓求助:图像处理中“强光抑制”的原理或算法〓〓〓〓〓
  • 〓〓〓〓〓求助:图像处理中“强光抑制”的原理或算法〓〓〓〓〓
  • 如何了解浏览器及看图软件图像处理原理
  • 关于servlet异常处理
  • 请问,resin处理servlet
  • [分享]北京大学课件(数据库原理与技术,数字图像处理,Com组件技术)
  • [分享]北京大学课件(数据库原理与技术,数字图像处理,Com组件技术)
  • Jsp+Servlet+Javabean的数据处理方式?
  • servlet的处理form数据的问题?

关键词

得分解答快速导航

  • 帖主:Jacky1206
  • gfzhx

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo