网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  servlet处理post请求     
  文章作者:未知  文章来源:水木森林  
  查看:105次  录入:管理员--2007-11-17  
 

下面介绍一个http servlet处理post方式的例子,见示例14-3。
    【程序源代码】

1 // ==================== program description ==========================
2 // 程序名称:示例14-3 : surveyexample.html
3 // 程序目的:surveyexample源代码
4 // ==============================================================
5 <!doctype html public "-//ietf//dtd html//en">
6 <html>
7   <head>
8     <title>javausagesurvey</title>
9   </head>
10 
11   <body bgcolor=#ffffff>
12   <p><img src=http://www.supcode.com/article/html/4/43/2005/02/10/images/bea_button_final_web.gif align=right>
13     <blockquote>
14     <font face="helvetica">
15     <form action="surveyservlet" method=post>
16       <input type=hidden name=survey value=survey01results>
17       <br><br>how many employees in your company?<br>
18         <br>1-100<input type=radio name=employee value=1-100>
19         <br>100-200<input type=radio name=employee value=100-200>
20         <br>200-300<input type=radio name=employee value=200-300>
21         <br>300-400<input type=radio name=employee value=300-400>
22         <br>500-more<input type=radio name=employee value=500-more>
23       <br><br>general comments?<br>
24         <br><input type=text name=comment>
25       <br><br>what ides do you use?<br>
26         <br>javaworkshop<input type=checkbox name=ide value=javaworkshop>
27         <br>j++<input type=checkbox name=ide value=j++>
28         <br>cafe‘<input type=checkbox name=ide value=cafe‘>
29       <br><br><input type=submit><input type=reset>
30     </form>
31     </font>
32     </blockquote>
33   </body>
34 </html>
 


    【程序输出结果】
    在客户端ie浏览的效果如图14-5所示。

servlet处理post请求(图一)screen.width-600)this.style.width=screen.width-600;">

图14-5 客户端浏览效果


    服务器端的servlet就是要将客户端填写并发送的表单数据写入一个文件,并且用一个"thank you"信息响应用户。示例14-4就是servlet程序。
    【程序源代码】

1 // ==================== program description ==========================
2 // 程序名称:示例14-4 : surveyservlet.java
3 // 程序目的:处理http post的表单请求
4 // ==============================================================
5 package examples.servlets;
6 import java.io.*;
7 import java.util.*;
8 import javax.servlet.*;
9 import javax.servlet.http.*;
10 
11 public class surveyservlet extends httpservlet
12 {
13  string resultsdir;
14  
15    public void init(servletconfig config)
16         throws servletexception
17    {
18       super.init(config);
19       resultsdir = getinitparameter("resultsdir");
20       if (resultsdir == null) {
21         enumeration initparams = getinitparameternames();
22         system.err.println("the init parameters were: ");
23         while (initparams.hasmoreelements()) {
24            system.err.println(initparams.nextelement());
25         }
26         system.err.println("should have seen one parameter name");
27         throw new unavailableexception (this,
28                                       "not given a directory to
write survey results!");
29       }
30    }
31  
32    public void dopost(httpservletrequest req, httpservletresponse res)
33       throws servletexception, ioexception
34    {
35       res.setcontenttype("text/html");  
36       printwriter toclient = res.getwriter();
37    
38       try {
39         //打开文件将调查结果写入文件
40         string surveyname = req.getparametervalues("survey")[0];
41         filewriter resultsfile = new filewriter(resultsdir
42                      + system.getproperty("file.separator")
43                           + surveyname + ".txt", true);
44         printwriter tofile = new printwriter(resultsfile);
45         tofile.println("<begin>");
46         enumeration values = req.getparameternames();
47         while(values.hasmoreelements()) {
48            string name = (string)values.nextelement();
49            string value = req.getparametervalues(name)[0];
50            if(name.compareto("submit") != 0) {
51              tofile.println(name + ": " + value);
52            }
53         }
54         tofile.println("<end>"); 
55         //关闭文件
56         resultsfile.close();
57      
58         // 响应客户
59         toclient.println("<html>");
60         toclient.println("<title>thank you!</title>");
61         toclient.println("<body bgcolor=#ffffff><p><img src=images
62                       /bea_button_final_web.gif align=right>" +
63             "<font face="helvetica">" +
64                         "thank you for participating</font></body>");
65         toclient.println("</html>");
66      
67       }
68     catch(ioexception e) {
69        e.printstacktrace();
70        toclient.println("a problem occured while recording your answers. " +
71                        "please try again.");
72       }
73    
74    }
75 }
 


    部分配置文件如下所示:

<servlet>
<servlet-name>surveyservlet</servlet-name>
<servlet-class>examples.servlets.surveyservlet</servlet-class>
<init-param>
<param-name>resultsdir</param-name>
 <param-value>c:eawlserver6.1configmydomainapplications
defaultwebappweb-infclasses
 examplesservlets</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>surveyservlet</servlet-name>
<url-pattern>/surveyservlet/*</url-pattern>
</servlet-mapping>
 


    【程序输出结果】
    在相同目录下生成了一个survey01result的文本文件,里面记录着客户提交的信息:

<begin>
employee: 100-200
ide: j++
survey: survey01results
comment:
<end>
 


    同时返回给客户端信息,如图14-6所示。

servlet处理post请求(图二)screen.width-600)this.style.width=screen.width-600;">

图14-6 返回给客户端的信息


    【程序注解】
    在init()方法中先初始化了resultsdir变量,这个变量是以后保存文件的路径,这个变量的值在web.xml中。

    dopost方法是用getparameternames和getparametervalues方法从表单中获取数据的,当参数名是submit时,就不对这个参数操作,并将其余客户端的参数名和参数值写入文件中。因为它返回文本给客户端,dopost 调用了 getwriter 方法。在写入响应主体部分之前,它进行了响应头部字段的设置setcontenttype("text/html")。

 
 
上一篇: servlets在网站中的应用前景如何及入门    下一篇: servlet的一些特点
  相关文档
thinking in java第三版读书笔记-第七章:多态性 11-17
如何开发会话bean(有状态会话bean) 11-17
getutcdate 方法 11-16
详细讲解 用jdbc连接各种数据库方法介绍 11-16
基于weblogic 的ejb 学习笔记(二) 11-17
带来娱乐和收益的静态内部类 11-17
applet和application 11-17
在应用程序中和applets小程序中使用archive 11-17
java q&a: 使用factory method模式 11-17
javac--java编程语言编译器 11-16
java模式研究之flyweight模式 11-16
新闻观察:是谁在宣扬java语言的过时论? 11-16
使用java web services developer pack1.6开发webservice入门 11-17
java中应用filter对权限和session控制 11-16
java虚拟机实例学习笔记一 11-17
java 数据对象(jdo)介绍(二) 11-17
ioc详解(1) 11-16
thinking in java第三版读书笔记-第九章:异常带来处理错误 11-17
java 理论和实践: 用软引用阻止内存泄漏 11-17
05年11月程序语言世界排行-java居首位(图) 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息