一、Applet
Applet是一种特殊的Java程序,它本身不能单独运行(因为本身没有main()),需要嵌入在一个HTML文件中,借助浏览器或者appletviewer来解释执行。
Applet 小应用程序的实现主要依靠java.applet 包中的Applet类。
Applet类中的四种基本方法用来控制其运行状态:init()、start()、stop()、destroy()。
如果想在浏览器之间进行通信,那么需要applet调用getAppletContext方法.这个方法将返回一个实现了AppletContext接口的对象.可以将AppletContext接口的具体实现认为是打开了一条applet与环境浏览器之间的通信道路.(Java核心技术 卷1 p458页)
applet不能与其它网页上的applet进行通信(Java核心技术 卷1 p458页)
二、Scriptlet
小脚本程序(Scriptlet = Script + Applet),
Scriptlet是包含在<% %>之间的Java代码,在Web容器处理JSP页面时执行,通常会产生输出,并将输出发送到客户的输出流里。
<% 代码片段 %>等价于 <jsp:scriptlet> 代码片段 </jsp:scriptlet>。
<% %>中除了不能定义类和方法、不能用import引入类外,可以包含任何有效的Java代码。(Java类在Jsp外部定义,可用page指令的import属性引入,也可以Java Bean的形式使用。)
另外,Live Connect提供了Java与javascript的接口,可以允许在Java Applet小程序中使用javascript。
三、Servlet
小服务程序(Servlet = Server + Applet),Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
Servlet是平*立的Java类,编写一个Servlet,实际上就是按照Servlet规范编写一个Java类。
Servlet必须部署在Servlet容器,才能响应客户端的请求 对外提供服务。要对外统一接口,由容器来调用。
所有基于Java的服务器端编程都是构建在Servlet之上的。在J2EE中Servlet已经是一个标准的组件。
四、JSP
使用Servlet产生动态网页,需要在代码中打印输出很多HTML的标签,此外,在Servlet中,我们不得不将静态现实的内容和动态产生内容的代码混合在一起。于是就有了JSP,它是从Servlet继承而来,只不过它在Servlet当中又添加/修改了一些方法,作了新的封装。
事实上,JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例——JSP页面由系统编译成Servlet,Servlet再负责响应用户请求。JSP其实也是Servlet的一种简化,使用JSP时,其实还是使用Servlet,因为Web应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。
JSP文件必须在JSP服务器内运行。JSP文件必须生成Servlet才能执行。每个JSP页面的第一个访问者速度很慢,因为必须等待JSP编译成Servlet。JSP页面的访问者无须安装任何客户端,甚至不需要可以运行Java的运行环境,因为JSP页面输送到客户端的是标准HTML页面。
JSP侧重显示;servlet侧重控制逻辑。
MVC模式:Jsp + Servlet + JavaBean。M-JavaBean V-Jsp C-Servlet
五、参考
Applet、Scriptlet与Servlet
图解JSP与Servlet的关系