- 浏览: 497172 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (185)
- job (15)
- linux/windows/unix/bash/shell (31)
- JAVA/J2EE/spring/hibernate/struts (30)
- VC/C++ (48)
- mysql/postgresql (6)
- php/jsp/asp/pear (1)
- FMS/flex/openlaszlo/red5/openmeetings (34)
- apache/tomcat/ftp/svn (6)
- xen/vm/Hadoop/cloudcompute (6)
- visual studio/eclipse/zendstudi/ant (8)
- others (1)
- windows异常处理 __try __except (1)
- (1)
- matlab (4)
- android (0)
最新评论
-
hongzhounlfd:
很透彻,很详细
依赖注入和控制反转 -
jefferyqjy:
谢谢~言简意赅~很明了!
依赖注入和控制反转 -
elderbrother:
太好了,谢谢
依赖注入和控制反转 -
east_zyd_zhao:
终于搞明白了
依赖注入和控制反转 -
Dremeng:
完美,一看就懂理解透彻
依赖注入和控制反转
第一篇:简单概述
首先,既然是Java Servlets,Java的特性它都具备,比如“一次编写,多平台运行”,而且它肯定是用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 工作。
从1996年Servlets的产生便决定了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 的经验技巧。
图1:Servlets,模板技术和框架
Tips for selecting a framework(选择框架技巧)
选取framework,非常重要的一步就是考虑每个framework的特性。以下是一些framework提供的部分特性,并不是所有的framework都支持这些特性。
1. 和模板语言集成
有些framework是一些模板语言的综合,其他的虽然也对模板语言经常优化,但只算上一支持模板语言的插件模型。如果你需要具体的模板语言,首先要确保framework能够非常好的支持他。
2. 设计和研发的分离
framework的目标之一就是让研发WEB应用程式时候使研发和设计分离。选择正确的模板语言是有必需的,但选择framework更是迫切而必要的,毕竟每种framework的关注不同,但都支持设计和研发的分离模式。
3. 安全性能
默认的servlet存取空话子和安全模型只能在普通的工作中适用,并不能满足安全高级需求,一些framework提供了一些可变换的安全模型,更有一些支持安全模型插件。如果你要需要高级安全控制,选择正确的framework是必须的。
4. 表单校验
framework通常提供一些校验表单数据的工具,能够允许framework在Servlet看到数据前对传递过来的参数/表单数据进行全方面的审核。比如说;一些允许使用表单上一步/下一步向导及其当前状态简洁方便的研发。
5. 错误处理
一些framework具有普通/高级错误处理机制、比如发送邮件警戒、数据存储日志错误或自动格式化的用户/管理者错误。
6. 持久性/数据库性能
持久性的终端数据存储能说是framework最为强大的性能之一,比如数据库技术。Frameworks让用户不再用sql的思维而使用object(对象)的思维来考虑事物。
7. 国际化
国际化是一直是一种挑战。不过有些framework有这种简单处理语言不同的性能。
8. IDE
一些framework为了framework的发展和支持第三方IDES(integrated development environments)提供了IDES。
9. 支持web服务的机构
随着web服务的增长趋势,经常见到一些以web服务为中心的新的framework和一些已存在的framework大力宣传他们的web 服务。
除了上面的特性,另外要考虑的是framework的许可证,我的建议是选择开源项目或是有多种卖主的标准接口。这样将会保护你的利益。不管是开源还是普通标准的framework都能避免一种单一的framework问题并能确保没有人能在你终止你正在使用的framework.。
第三要考虑的是 该framework的市场定位,不同的地方有不同的需要。Frameworks都是根据某一市场领域而产生的。你可能会发现去研究相似的应用程式用不同framework实现是非常用的.
发表评论
-
剖析Android消息机制
2011-10-26 15:56 1038剖析Android消息机制 在Android中,线程内部或者 ... -
Chapter 6 Exceptions(JAVA EXCEPTION IN NATIVE CODE)
2011-09-26 09:53 1495Contents | Prev | Next | Index ... -
JNI编程中如何传递参数和返回值。
2011-09-14 17:51 1792首先要强调的是,native方法不但可以传递Java的基本类型 ... -
Windows Mobile与Android应用开发对比
2011-09-06 11:44 1291Windows Mobile在经历过最初的Wince系列,po ... -
android和JNI经典blog.doc
2011-09-01 15:29 1750Android JNI调用 2011-02-24 1 ... -
java中的jar关联SRC调试
2011-07-31 21:28 1109我现在的方法是: 打开后看到的是.class文件,然后点ch ... -
android 调用C++的so
2011-07-08 18:36 4391第一步:开发环境的安 ... -
JAVA环境变量配置和详解
2011-07-08 13:46 1209你知道Java环境变量如何配置吗,这里和大家分享一下,主要包括 ... -
数据库试题
2010-12-23 20:05 3571www.zhrtvu.net/oldpage/depart ... -
观察者模式
2010-11-21 19:04 988观察者模式:在对象之间建立一对多的关系,这样一来,当一个对象改 ... -
Apache MINA
2010-11-01 21:04 1077Apache MINA是一个网络应用程序框架,用来帮助用户简单 ... -
JMX
2010-11-01 21:03 1120百科名片 JMX(Java Management ... -
依赖注入和控制反转
2010-10-25 10:57 29119依赖注入和控制反转 ... -
jrdesktop
2010-10-14 15:32 1524jrdesktop(Java Remote Desktop)是 ... -
Apache MINA
2010-10-14 10:28 1061Apache MINA是一个网络应用程序框架,用来帮助用户简单 ... -
XDoclet
2010-10-14 09:38 922XDoclet XDoclet是一个开源项目,可以从这里 ... -
log4j
2010-10-14 09:37 977Log4j是Apache的一个开放源代码项目,通过使用Log4 ... -
Jakarta项目
2010-10-14 09:35 1131Jakarta项目 Apache基金旗下的开源Java项目社 ... -
JMF(java media framework)综述
2010-10-14 09:34 4346摘要: 本文先简述了JM ... -
slf4j
2010-10-14 09:31 1089slf4j-logo SLF4J不是具 ...
相关推荐
【JSP和Servlet知识点详解】 一、JSP与Servlet的区别 1. **本质与生成**:JSP(Java Server Pages)本质上是Servlet的一种简化形式,它将HTML代码和Java代码结合在一起,经过Web容器(如Tomcat)的处理,被编译成...
### Servlet知识点集锦 #### 一、Servlet简介与工作原理 **Servlet** 是Java平台上的一个重要的技术,它主要用于开发动态网页。Servlet是运行在服务器端的Java类,它可以接收客户端(例如浏览器)发送的HTTP请求,...
此外,描述中提到的“涉及servlet知识,接口等”,意味着该项目不仅涵盖了Servlet的基础应用,还可能包含了接口设计和实现。 描述中提到“实现了登录,增删改查的功能”,这涵盖了Web应用程序的基本操作。登录功能...
### Servlet基础知识总结 #### 一、Servlet简介 Servlet是一种服务器端的小程序,是Java平台上的一个重要的技术之一,主要用于处理客户端的HTTP请求并生成动态网页。Servlet是在服务器端运行的,能够提供各种服务...
Servlet知识点包括: 1. **生命周期**:理解Servlet的初始化、服务、销毁三个阶段。 2. **部署描述符**:配置web.xml文件,定义Servlet的映射、初始化参数等。 3. **请求与响应**:处理HttpServletRequest和...
本文将深入探讨`servlet`的相关知识点,包括`serialVersionUID`的作用、`service()`方法的功能以及`doGet`和`doPost`的区别。 1. **serialVersionUID**: 在Java中,序列化是一个将对象转化为字节流的过程,便于...
jsp&servlet知识点总结.doc
本文将对这两项技术进行详细的知识总结。** **一、JSP简介** JSP(Java Server Pages)是一种服务器端脚本语言,用于创建动态网页。JSP文件实质上是HTML或XML文档,其中嵌入了Java代码片段。当客户端请求JSP页面时...
在Servlet的生命周期中,`init()`方法只在Servlet实例化时调用一次,通常是web应用首次被访问时。`service()`方法则在每次接收到请求时调用,它会根据请求类型自动转发到相应的`doGet()`或`doPost()`等方法。`...
通过阅读博文《JSP和Servlet基础知识点》(链接:https://greatwqs.iteye.com/blog/1040280),你可以深入理解这两个技术的实际应用和最佳实践,例如如何使用JSP标签库提高开发效率,以及如何在Servlet中处理会话和...
【标题】"JSP+servlet+JDBC实现的网上商城项目"揭示了这是一个基于Java Web技术构建的电子商务应用。在本文中,我们将深入探讨这些关键技术及其在构建网上商城中的作用。 【描述】"JSP+servlet+JDBC实现的网上商城...
以下是一些关键的Servlet知识点: 1. **Servlet生命周期**:Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。在服务器启动时,Servlet容器会加载并初始化Servlet,然后处理请求,最后在服务器关闭或不再...
Servlet是Java Web开发中的核心组件,它是一种服务器端的Java应用程序,主要用于扩展Web服务器的功能,处理来自客户端(通常是Web浏览器)的请求并...理解并熟练掌握这些知识点,对于开发高效、稳定的Web应用至关重要。
【Servlet知识点】: 1. **Servlet简介**:Servlet是Java编程语言中的一个接口,用于扩展服务器的功能,处理HTTP请求。它为开发者提供了对服务器端数据处理的强大能力。 2. **生命周期**:Servlet的生命周期包括加载...
【压缩包子文件的文件名称列表】:“新建文件夹”通常表示压缩包内包含一个或多个文件夹,这些文件夹可能包含了笔记的各个章节、示例代码、练习题解答等相关材料,帮助学习者系统地学习和巩固Servlet知识。...
**JSP(JavaServer Pages)/Servlet 知识详解** JSP 和 Servlet 是 Java Web 开发中的核心组件,它们在构建动态网站时起着至关重要的作用。以下是对这两个技术及其相关概念的详细解释: 1. **JSP 基础** JSP 是一...
以下是一些关键的Servlet知识点: 1. **Servlet生命周期**:Servlet有三个主要阶段——加载、初始化和服务。在服务器启动时或首次请求到达时,Servlet被加载并初始化。然后,每次接收到请求时,Servlet都会调用`...
在学习和理解这个系统时,有几个关键的Servlet知识点是值得深入探讨的: 1. **Servlet生命周期**:Servlet遵循初始化、服务和销毁三个阶段的生命周期。在初始化阶段,Servlet实例化并加载配置信息;服务阶段,...