网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java咖啡馆(3)——Eclipse.
.Abstractclass和interface在Java.
.花二十分钟教你Ruby快速入门.
.Java 关于中文乱码问题的解决方案.
.Sun,IBM策划Java Portal标准.
.struts2的struts.properties配置.
.JDBC2.0扩展API(3).
.Infinity 属性.
.使用分布式缓存来群集Spring远程.
.Java技术与XML常见问题之JAXB.
.Servlet容器工作原理讲解(二).
.利用HSQLDB进行Hibernate的单元测.
.Java 1.5 中新的静态导入特性.
.8条用于分布式计算的架构技巧.
.软件项目开发过程模型.
.从XML到Java代码的数据绑定之二.
.感受Ruby on Rails.
.ThreadLocal的设计与使用.
.Java应用技巧-Java中的发声提示.
.等级结构数据集在Aspire和Tomcat.

Servlets提供了一个CGI开发的简单替换方法

发表日期:2008-1-5



  Java Servlet API的一个强大特性是其能够相对轻易地处理表单数据。和传统CGI开发中四处寻找环境变量不同,你可以通过常规的调用Java方法使用servlets来访问表单和查询字符串数据。让我们来看一下它是如何工作的。你可以在这里下载本文示例的代码。
  
  载入servlet
   
  当servlet被加载的时候,servlet引擎会调用servlet的init方法。这个方法在servlet被加载的时候只会被调用一次,并把配置数据以ServletConfig类的实例的形式传递出去。ServletConfig对象包含有servlet引擎和servlet运行环境的信息。
  
  ServletConfig对象会向servlet所操作的Web应用程序公开初始化数据。使用getInitParamete(String paramName)方法,你可以访问到这个数据,如Listing A所示。
  
  破坏之前
  
  servlet类会公开一个方法——destroy,在servlet正常卸载的时候,servlet引擎就会调用这个方法。当servlet所有的线程都卸载完毕或者超过了指定时间之后,这个方法就会被调用。它被用来保存servlet或者清除资源,见Listing B。
  更多关于servlet的文章
  在《Java servlet入门》这篇文章里,我们讨论了由Java平台提供的servlet如何在胖客户平台里使用类似面向对象的技术帮助创建Web应用程序。要了解Tomcat,看一看《Tomcat 4/jsp初学者指南》。
  每个用户一个实例
  
  servlet必须要能够处理来自多个客户的多个请求。由于任意数量的客户都会同时访问一个servlet,所以除了init之外的任何方法都必须以安全线程的方式被实现。
  
  图A是多个用户请求和单个servlet实例之间的关系。
  
  图A
  Servlets提供了一个CGI开发的简单替换方法
  对单个servlet的多个客户请求
  cookie是如何工作的
  
  由于是一个servlet处理多个用户的请求,所以servlet需要一种机制来确定是哪个客户发起哪个请求的。用来辨认客户请求身份最常用的机制是使用HTTP cookie。HTTP cookie是使用HTTP报头在浏览器客户和服务器之间传递的任意长度的信息。
  
  当servlet接收到来自有cookie的客户的请求,servlet就会使用cookie里的信息确定是哪个客户,并由此智能地向客户回应。这看起来像是一个无足轻重的特性,但是它把客户和基于 servlet的Web应用程序之间的交互操作带进了一个新的空间。尤其,这个特性让Web应用程序能够保存和恢复请求之间的客户状态。
  
  servlet维护客户状态的能力能答应客户和基于servlet的Web应用程序进行对话,而不是把客户限制在一次性的请求/回应的事务处理里。Java servlet API提供了一个叫做Cookie的类,它能够被从请求里取回,也能被保存在回应里,这个类还能让你从cookie里获得信息或者设置信息。例如,Listing C里的程序段从请求里取回cookie,打印每个cookie的信息,或者创建新的cookie并把它添加到回应里。
  
  eCourt会话
  
  有了能够维持请求和回应之间客户状态的能力,面向servlet的Web应用程序开发人员就能够有效地设计Web应用程序,这样的程序能够在叫做会话的一段时间内和客户进行交互操作。会话能够被servlet开发人员用来接收来自客户的数据,并根据先前请求和/或回应里接收到的信息把数据传递给客户。这有助于开发高效的Web应用程序,例如购物车、在线银行和Web邮件。
  
  Java servlet API提供了一个叫做HttpSession的类,开发人员可以在其中保存和取回任意对象,这些对象里包含有和客户会话相关信息。对象作为名称/值被保存在HttpSession类里,并被从其中取回。Listing D是一个这样的例子。
  
  结论
  
  使用Java servlet API,你就能够实现一些很强大的功能,这些都是使用传统CGI编程很难做到的,例如将一个请求同客户关联起来,实现与客户之间有意义的对话。在下一篇文章里,我们会扩展对服务器端开发的探索,同时看看事务逻辑组件和中间件的概念。
  
   本文的相关连接请点这里>>>
上一篇:如何在JBuilder中配置JBoss开发EJB 人气:780
下一篇:灵活使用EJB的本地和远程接口(三) 人气:589
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐