`
阅读更多

第一篇:简单概述

  首先,既然是Java ServletsJava的特性它都具备,比如“一次编写,多平台运行”,而且它肯定是用Java语言来写的,所以,学习Servlets必须要有一定的Java语言基础。如果没有,恐怕您会对以下内容失望的。
 
 从Servlets的工作机制上看,它比较象CGI(Common Gateway Interface)通用网关接口,比如:和CGI程序一样,Servlets可以响应用户的指令(提交一个FORM等等),也可以象CGI程序一样,收集用户表单的信息并给予动态反馈(简单的注册信息录入和检查错误)
  然而,Servlets的机制并不仅仅是这样简单的与用户表单进行交互。传统技术中,动态的网页建立和显示都是通过CGI来实现的,但是,有了Servlets,您可以大胆的放弃所有CGI(perl?php?甚至asp!),利用Servlets代替CGI,进行程序编写。(千万别怀疑,接着看)
  对比一:当用户浏览器发出一个Http/CGI的请求,或者说调用一个CGI程序的时候,服务器端就要新启用一个进程(而且是每次都要调用),调用CGI程序越多(特别是访问量高的时候),就要消耗系统越多的处理时间,只剩下越来越少的系统资源,对于用户来说,只能是漫长的等待服务器端的返回页面了,这对于电子商务激烈发展的今天来说,不能不说是一种技术上的遗憾。
  而Servlets充分发挥了服务器端的资源并高效的利用。每次调用Servlets时并不是新启用一个进程,而是在一个Web服务器的进程中共享和分离线程,而线程最大的好处在于可以共享一个数据源,使系统资源被有效利用。
  对比二:传统的CGI程序,不具备平台无关性特征,系统环境发生变化,CGI程序就要瘫痪,而Servlets具备Java的平台无关性,在系统开发过程中保持了系统的可扩展性、高效性。
  对比三:传统技术中,一般大都为二层的系统架构,即Web服务器+数据库服务器,导致网站访问量大的时候,无法克服CGI程序与数据库建立连接时速度慢的瓶颈,从而死机、数据库死锁现象频繁发生。而我们的Servlets(现在可以这么叫了吧,算是妮称,ok!)有链接池的概念,它可以利用多线程的优点,在系统缓存中事先建立好若干与数据库的链接,到时候若想和数据库打交道可以随时跟系统""一个链接即可,反应速度可想而知。
  在与传统技术的对比中,Java的服务器(至少三层架构)提出了一种“中间件”的概念,可能中间件的范围太广,本文又是Servlets的概貌了解,就不涉及太多。不过应用服务器的广泛应用,特别是在电子商务的时代,网站没有用到应用服务器的还真是让我感到奇怪?因为Sevlets技术是应用服务器的重要组成部分之一,在此简单提过。

 

 

 

作为从《Java Enterprise Best Practices》摘取的三部分的第一部分。主要是学习怎么有效地用 Servlets 工作。

  从1996Servlets的产生便决定了Java服务端的发展前景,并成为Java运用到WEB中的标准途径,是Java程式员做WEB应用程式服务的技术基础。本章探讨servlet发展和设置最佳实战。

  有效地用Servlets工作

  我们从Servlets Frameworks开始介绍,Servlets Frameworks(Apache Struts)通过提供给用程式框架提高了研发人员的工作效率从而逐步的流行起来。在第一部分,我们学习Servlets Frameworks到底提供了那些东东;然后,我们由浅入深地介绍怎么用预编译来优化Servlets性能,下一步,我们处理一些比较棘手的装载设置文件主题、并提供了一些代码使任务更加简单化。接着我将要提供一些关于何时需要使用HttpSession SingleThreadModel特点的经验技巧。在本部分末尾,我将解释怎么控制缓冲以便更清晰的获得用户的经历,和一些最经常出现的问题如:怎样实现客户端下载文件的时候弹出保存对话框,你将会明白这个问题的关键是HTTP头信息的正确设置。

  选择正确的Servlet Frameworks

   当我们写Web应用程式时候,首先应该记住Servlets是一项开源技术,早期,人们在做Java Web编程的时候总是忘记这个,没有引入Servlet API,于是我们不得不自己去实现。有点象以前的时代,非常的艰难,程式员必须自己写自己的Servlet代码,根本没有一点投机。我们今天非常幸运的不必那样做了。就象输出只要”out.println()”即可。
  目前。时代已改动,群体协作精神已来临,我们有许多servlet基础技术使Web应用程式更加快速容易的实现。第一个变革便是表示层(presentation layer)的变化:在out.println()出现之前,JavaServer Pages (JSP), WebMacro,Velocity等给我们提供了丰富的选择。这些技术更容易对研发,设置,修改动态的页面内容。在Java Servlet Programming(Second Edition)一书中你能看到这些和其他模板技术的研究。

  今天,我们主要讨论框架中的表示层的变革。(见图1)这些新的框架为快速建立web应用程式、页面添充web应用程式提供了一个平稳的操作平台。Framework具有最佳的专家设计和良好的重用性,好的Framework能提高你的应用程式模块化和可维护性。Framework也能让将将不同的技术封装成一种包形式并以提供组件的方式解决通常的任务。如果你选取正确的Servlet Frameworks,能非常快的提高你的效率并且非常好协调团队工作。因此我在这里选用正确的Frameworks 的同时在这个章节里提供了一些关于选取正确的Frameworks 的经验技巧。

1Servlets,模板技术和框架


  Tips for selecting a framework(选择框架技巧)

  选取framework,非常重要的一步就是考虑每个framework的特性。以下是一些framework提供的部分特性,并不是所有的framework都支持这些特性。

  1. 和模板语言集成
  有些framework是一些模板语言的综合,其他的虽然也对模板语言经常优化,但只算上一支持模板语言的插件模型。如果你需要具体的模板语言,首先要确保framework能够非常好的支持他。

  2. 设计和研发的分离
  framework的目标之一就是让研发WEB应用程式时候使研发和设计分离。选择正确的模板语言是有必需的,但选择framework更是迫切而必要的,毕竟每种framework的关注不同,但都支持设计和研发的分离模式。

  3. 安全性能
  默认的servlet存取空话子和安全模型只能在普通的工作中适用,并不能满足安全高级需求,一些framework提供了一些可变换的安全模型,更有一些支持安全模型插件。如果你要需要高级安全控制,选择正确的framework是必须的。

  4. 表单校验
  framework通常提供一些校验表单数据的工具,能够允许frameworkServlet看到数据前对传递过来的参数/表单数据进行全方面的审核。比如说;一些允许使用表单上一步/下一步向导及其当前状态简洁方便的研发。

  5. 错误处理
  一些framework具有普通/高级错误处理机制、比如发送邮件警戒、数据存储日志错误或自动格式化的用户/管理者错误。

  6. 持久性/数据库性能
  持久性的终端数据存储能说是framework最为强大的性能之一,比如数据库技术。Frameworks让用户不再用sql的思维而使用object(对象)的思维来考虑事物。

  7. 国际化
国际化是一直是一种挑战。不过有些framework有这种简单处理语言不同的性能。

  8. IDE
  一些framework为了framework的发展和支持第三方IDESintegrated development environments)提供了IDES

  9. 支持web服务的机构
  随着web服务的增长趋势,经常见到一些以web服务为中心的新的framework和一些已存在的framework大力宣传他们的web 服务。

  除了上面的特性,另外要考虑的是framework的许可证,我的建议是选择开源项目或是有多种卖主的标准接口。这样将会保护你的利益。不管是开源还是普通标准的framework都能避免一种单一的framework问题并能确保没有人能在你终止你正在使用的framework.
  第三要考虑的是 framework的市场定位,不同的地方有不同的需要。Frameworks都是根据某一市场领域而产生的。你可能会发现去研究相似的应用程式用不同framework实现是非常用的.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics