- 1、本文档共122页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 可移植性(Portability)Servlet 皆是利用Java 语言来开发的,因此,延续Java 在跨平台上的表现,不论Server 的操作系统是Windows、Solaris、Linux、HP-UX、FreeBSD、Compaq Tru 64、AIX 等等,都能够将我们写好的Servlet程序放在这些操作系统上执行。借助Servlet的优势,就可以真正达到Write Once,Serve Anywhere 的境界,这正是从事Java 程序员最感到欣慰也是最骄傲的地方。当程序员在开发Applet 时,时常为了“可移植性”(portability)让程序员感到绑手绑脚的,例如:开发Applet 时,为了配合Client端的平台( 即浏览器版本的不同,plug-in 的JDK版本也不尽相同 ),达到满足真正“跨平台”的目的时,需要花费程序员大量时间来修改程序,为的就是能够让用户皆能够执行。但即使如此,往往也只能满足大部分用户,而其他少数用户,若要执行Applet,仍须先安装合适的JRE (Java Runtime Environment)。但是Servlet 就不同了,主要原因在于Servlet 是在Server 端上执行的,所以,程序员只要专心开发能在实际应用的平台环境下测试无误即可。除非你是从事做Servlet Container 的公司,否则不须担心写出来的Servlet 是否能在所有的Java Server 平台上执行。 强大的功能Servlet 能够完全发挥Java API 的威力,包括网络和URL 存取、多线程(Multi-Thread)、影像处理、RMI (Remote Method Invocation)、分布式服务器组件 (Enterprise Java Bean)、对象序列化 (Object Serialization) 等。若想写个网络目录查询程序,则可利用JNDI API;想连接数据库,则可利用JDBC,有这些强大功能的API 做后盾,相信Servlet 更能够发挥其优势。 安全 有几个不同层次为Servlet的安全提供了保障。首先,它是Java编写的,所以它可以使用Java的安全框架;其次,ServletAPI被实现为类型安全的;另外容器也会对Servlet的安全进行管理。在Servlet安全策略中,可以使用编程的安全也可以使用声明性的安全,声明性的安全由容器进行统一管理 Servlet可以和其他资源(文件、数据库、Applet、Java应用程序等)交互,以生成返回给客户端的响应内容。如果需要,还可以保存请求-响应过程中的信息。 采用Servlet,服务器可以完全授权对本地资源的访问(如数据库),并且Servlet自身将会控制外部用户的访问数量及访问性质 Servlet可以是其它服务的客户端程序,例如,它们可以用于分布式的应用系统中,可以从本地硬盘,或者通过网络从远端硬盘激活Servlet。 Servlet可被链接(chain)。一个Servlet可以调用另一个或一系列Servlet,即成为它的客户端。 Servlet API与协议无关。它并不对传递它的协议有任何假设。 像所有的Java程序一样,Servlet拥有面向对象Java语言的所有优势 * CGI(Common Gateway Interface)程序,主要用Perl、Shell Script或C编写,能够向客户端提供动态内容,即每次客户端浏览器访问某一页面时,可以看到不同的内容。 在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动,等等。 在CGI程序中有很大一部分用于处理对参数的提取和解码过程,而在Servlet程序中,解码传递的参数部分并不需要额外编写。 * public void init(ServletConfig config) throws ServletException 一旦对servlet实例化后,容器就调用此方法。容器把一个ServletConfig对象传统给此方法,这样servlet的实例就可以把与容器相关的配置数据保存起来供以后使用。如果此方法没有正常结束就会抛出一个ServletException。一旦抛出该异常,servlet就不再
文档评论(0)