分为静态和动态,精态就是一直放在内存中等着,动态就是要的时候调入内存,不用的时候销毁掉
javabean:功能和状态的提供者(provider)
1.Similar to POJO (表现形式)。不需要继承/实现任何特定的类和接口,不需要运行时环境的支持,不需要部署。
2.通过get和set方法访问成员变量。(状态)
3.在web开发中作用范围有4种(application,session,request,page)。
4.它不是一种产品,是一种规范(specification)。
Servlet,网络最高层视图
Servlet是使用Java Servlet 应用程序设计接口(API)及相关类和方法的 Java 程序。除了 Java Servlet API,Servlet 还可以使用用以扩展和添加到 API 的 Java 类软件包。Servlet 在启用 Java 的 Web 服务器上或应用服务器上运行并扩展了该服务器的能力。Java servlet对于Web服务器就好象Java applet对于Web浏览器。Servlet装入Web服务器并在Web服务器内执行,而applet装入Web浏览器并在Web浏览器内执行。Java Servlet API 定义了一个servlet 和Java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。
Servlet 通过创建一个框架来扩展服务器的能力,以提供在 Web 上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给 Servlet,并让 Servlet 建立起服务器返回给客户机的响应。 当启动 Web 服务器或客户机第一次请求服务时,可以自动装入 Servlet。装入后, Servlet 继续运行直到其它客户机发出请求。Servlet 的功能涉及范围很广。例如,Servlet 可完成如下功能:
(1) 创建并返回一个包含基于客户请求性质的动态内容的完整的 HTML页面。
(2) 创建可嵌入到现有 HTML 页面中的一部分 HTML 页面(HTML 片段)。
(3) 与其它服务器资源(包括数据库和基于 Java 的应用程序)进行通信。
(4) 用多个客户机处理连接,接收多个客户机的输入,并将结果广播到多个客户机上。例如,Servlet 可
以是多参与者的游戏服务器。
(5) 当允许在单连接方式下传送数据的情况下,在浏览器上打开服务器至applet的新连接,并将该连
接保持在打开状态。当允许客户机和服务器简单、高效地执行会话的情况下,applet也可以启动客户浏览器和服务器之间的连接。可以通过定制协议或标准(如 IIOP)进行通信。
(6) 对特殊的处理采用 MIME 类型过滤数据,例如图像转换和服务器端包括(SSI)。
(7) 将定制的处理提供给所有服务器的标准例行程序。例如,Servlet 可以修改如何认证用户。
2.Servlet 的生命周期:
Servlet 的生命周期始于将它装入 Web 服务器的内存时,并在终止或重新装入 Servlet 时结束。
(1) 初始化
在下列时刻装入 Servlet:
=如果已配置自动装入选项,则在启动服务器时自动装入
=在服务器启动后,客户机首次向 Servlet 发出请求时
=重新装入 Servlet 时
装入 Servlet 后,服务器创建一个 Servlet 实例并且调用 Servlet 的 init() 方法。在初始化阶段,Servlet 初始化参数被传递给 Servlet 配置对象。
(2) 请求处理
对于到达服务器的客户机请求,服务器创建特定于请求的一个"请求"对象和一个"响应"对象。服务器调用 Servlet 的 service() 方法,该方法用于传递"请求"和"响应"对象。service() 方法从"请求"对象获得请求信息、处理该请求并用"响应"对象的方法以将响应传回客户机。service() 方法可以调用其它方法来处理请求,例如 doGet()、doPost() 或其它的方法。
(3) 终止
当服务器不再需要 Servlet, 或重新装入 Servlet 的新实例时,服务器会调用 Servlet 的 destroy() 方法。
==================================
JavaBean一般是一些set/get方法的类, 完成对数据的存取
Servlet是一种服务器端的技术, 用于处理请求和相应.
天地之别
<jsp: useBean id=" " class=" ">是在jsp里面使用的,jsp最终要编译成servlet的
而servlet在web.xml里面的配置是映射。
应该是 jsp+javabean和jsp+servlet+javabean两种模式吧,前者是纯JSP,后者是简单的MVC,建议楼主找MVC方面的看一下:-)
除非项目非常简单 建议用MODEL2,控制层与表示层混合 写起来,很烦的
其实jsp也是被编译成servlet
jsp执行的时候,需要向转换成servlet.所以,servlet的执行效率比jsp高一些。
还有一个速度问题,同样的代码,JSP比Servlet慢10%左右。
一般用jsp来处理表示层。
servlet来处理逻辑吱。
功能还差不多
一般javabean都是连数据库之类,servlet是用来控制业务逻辑的。你也可以不用servlet,用jsp+javabean或者只用jsp,或者只用servlet。但你不能只用javabean
Servlet看起来好像是一个微小的web server。它接受请求并产生响应。但,和常规web servers不同,servlet API 是专门设计来帮助Java 开发人员创建动态应用的。Servlet 本身是遍译成字节码的Java 类,就像其他Java对象一样。Servlet 访问HTTP特定服务的API,但仍然有另外一个Java 对象运行于程序之中,并管理所有的Java资产。
JavaBeans 是一种 Java 类,它遵从一定的设计模式,JAVABEAN 是一种JAVA语言写成的可重用组件。为写成JAVABEAN,类必须是具体的和公共的,并且具有无参数的构造器。JAVABEANS 通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。众所周知,属性名称符合这种模式,其他JAVA 类可以通过自省机制发现和操作这些JAVABEAN 属性。
如果你学过struts,可以把servlet理解成控制器ActionServlet,而javabean理解成ActionForm
=================
JSP的职责:从数据库取出数据,显示所有的留言信息(当中要用少量的,简单的逻辑处理:循环)、显示签写留言的页面(几乎全部都是html)。
Servlet的职责:接受签写留言页面提交过来的标单数据,进行数据检验,如果正确,则存入数据库并返回留言的显示页面;如果数据有误,给出错误提示后返回签写留言的页面。可以看到,这个就叫做逻辑处理。这些你也完全可以放在JSP中实现,但是用Servlet,其效率和安全性高多了,也让JSP页面变得很简洁明了。
JavaBean的职责:其实一般的留言板是不需要用到JavaBean的,但在这里,为了让你明白,还是牵强的把JavaBean用进来。所谓JavaBean,就是一个很简单的Java类,比如说,网上商城的所有商品是一个商品类,论坛中所有的帖子是一个帖子类,这里,留言板的所有留言是一个留言类,叫做Message类。每个类有着它特定的属性和方法。对于Message类,其属性有主题、内容、日期、留言者等,其方法可以有添加留言、删除留言、修改留言等。使用JavaBean,主要是为了让JSP编程能够适应Java程序员的习惯,直接对类和实例进行操作,而不是直接去操作数据库。
Javabean 就是一个类,这个类就定义一系列 get<Name> 和 set<Name> 方法。
JavaBean与类库的区别:
(1)并不是所有有用的模块都必须转化成Bean.Bean主要是能被用来可视化操作去完成一些效果.
(2)类库是一个提供函数操作给编程者的一个有效操作,但是并不能从可视化操作中来获益.
(3)举个例子来说:提供JDBC数据库访问的API作为一个类库比作为一个bean要好,因为JDBC的核心是用一个可编程的API,并不是能够直接展现于可视化操作.然而,写一个数库库访问Bean在JDBC的顶层还是有意义的.例如,你可以写一个能定制的"Select"bean以助于用户去组成一个查询语句,并且程序运行时用JDBC去运行这个查询语句,并显示结果集