Java Servlet与Applet相似之处:

◆它们不是独立的应用程序,没有main()方法。

◆它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用。

◆它们都有一个生存周期,包含init()和destroy()方法。

Java Servlet与Applet不同之处:

◆Applet具有很好的图形界面(AWT),与浏览器一起,在客户端运行。

◆Servlet 则没有图形界面,运行在服务器端。

Java Servlet 与 CGI(Common Gateway Interface) 的比较:

与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。在未来的技术发展过程中,Servlet有可能彻底取代CGI。

◆高效

在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。

在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择。

◆方便

Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。

◆功能强大

在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。

◆可移植性好

Servlet用Java编写,Servlet API具有完善的标准。因此,为IPlanet Enterprise Server写的Servlet无需任何实质上的改动即可移植到Apache、Microsoft IIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。

◆节省投资

Java Servlet与Applet不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。

Java Servlet 与 JSP(JavaServer Pages) 的比较:

JavaServer Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在 JSP中编写静态HTML更加方便,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计者进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。

Java Servlet API 2.2 简介

Java Servlet API 2.2 的类和接口组成两个Java 包,即:javax.servlet 和 javax.servlet.http(还包括javax.servlet.jsp包,不在本篇文章讨论范围之内)。

javax.servlet 包提供了控制 Servlet 生命周期所必需的 Servlet 接口,是编写 Servlet 时必须要实现的。

javax.servlet.http 包提供了从Servlet 接口派生出的专门用于处理 HTTP 请求的抽象类和一般的工具类。所有的Servlet 对象都要实现Servlet 接口,大多数情况下是作为已经实现了Servlet 接口的javax.servlet.GenericServlet 和 javax.servlet.http.HttpServlet 这两个抽象类的子类来间接实现Servlet 接口。

java servlet applet,详解Java Servlet与Applet比较相关推荐

  1. java web ip_详解Java Web如何限制访问的IP的两种方法

    前一阵子因为在做项目时碰到了这个功能,现在好好总结一下,至于为什么要限制IP访问,我就不多说了.然后百度了一下,现在主要有两种方式去限制IP访问,第一种是最简单的方便的,第二种是通过过滤器来限制访问. ...

  2. java lock unlock_详解Java中的ReentrantLock锁

    ReentrantLock锁 ReentrantLock是Java中常用的锁,属于乐观锁类型,多线程并发情况下.能保证共享数据安全性,线程间有序性 ReentrantLock通过原子操作和阻塞实现锁原 ...

  3. java system sleep_详解Java中的sleep()和wait()的区别

    详解Java中的sleep()和wait()的区别 对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序 ...

  4. java中priorityqueue_详解JAVA中priorityqueue的具体使用

    Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示.本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和时间复杂度, ...

  5. java中implement_详解JAVA中implement和extends的区别

    详解JAVA中implement和extends的区别 extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,Java中不支持多重继承,但是可以用接口来实 ...

  6. java中getclass_详解java中this.getClass()和super.getClass()的实例

    详解java中this.getClass()和super.getClass()的实例 前言: 遇到this.getClass()和super.getClass()的返回值感到疑惑,经过探索豁然开朗. ...

  7. java 重定向 redirect_详解Java从后台重定向(redirect)到另一个项目的方法

    (1)通过ModelAndView跳转 @RequestMapping("alipayforward") public ModelAndView alipayforward(Htt ...

  8. java ftp ftpclient_详解JAVA中使用FTPClient工具类上传下载

    详解JAVA中使用FTPClient工具类上传下载 在Java程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件.本文简单介绍如何利用jakarta commons中的FTPClie ...

  9. java中断runnable_详解Java 线程中断

    一.前言 大家肯定都使用过 Java 线程开发(Thread / Runnable),启动一个线程的做法通常是: new Thread(new Runnable( @Override public v ...

最新文章

  1. gtk移植到嵌入式_入行嵌入式研发10多年,一位工程师悟出了这些道理
  2. Jquery LigerUI
  3. 没错,接单就是特简单!
  4. 十大经典排序算法动画与解析
  5. 任务切换的基础:模拟任务切换时寄存器的保存与恢复
  6. java com dll_通过COM组件方式实现java调用C#写的DLL文件
  7. 前端学习(2173):动态路由的跳转
  8. AMD总裁兼CEO苏姿丰再添要职 已被选为公司董事长
  9. ERP流程一 总体说明
  10. 使用labview制作漂亮的按钮
  11. 关于jxls2.6.0的学习以及遇到的问题(八)
  12. Android 监听软键盘弹出/隐藏,控制软键盘弹出/隐藏
  13. Maya Python脚本建模之随机生成多边形并设定目标限制
  14. STM32 通用GPIO模拟I2C实现
  15. 利用Android属性动画实现有趣的加载中动效
  16. 让你的查询支持中文拼音码模糊查询。
  17. qt creator在高分辨率笔记本上控件运行显示不全的问题解决方法
  18. Java分布式中文分词组件 - word分词(转自:https://github.com/ysc/word)
  19. CSS字体unicode编码表
  20. 暴风影音第五代发布:左眼技术画质超越DVD

热门文章

  1. ATS 4.2.3隐藏服务器名称及版本号的方法
  2. SQLite3简单C++包装类源码示例
  3. kitbash贫民区三维场景模型 Kitbash3d – Favelas
  4. Rocksdb 的优秀代码(三)-- 工业级 线程池实现分享
  5. Rocksdb 与 TitanDb 原理分析 及 性能对比测试
  6. Asp.Net Core AsyncLocal 异步上下文
  7. 2018年12月14日 函数 总结
  8. 久未更 ~ 一之 —— 关于ToolBar
  9. hibernate中的hql查询语句list查询所有与iterate查询所有的区别
  10. StringUtils