JSP + Servlet+ JavaBean2010-04-0400:181.Servlet中doGet和doPost的区别:

doGet:处理GET请求

doPost:处理POST请求

两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串。

post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。

当一个客户通过HTML 表单发出一个HTTP POST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP 请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用doPost()方法。

当一个客户通过HTML 表单发出一个HTTP GET请求或直接请求一个URL时,doGet()方法被调用。与GET请求相关的参数添加到URL的后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该使用doGet()方法。

HTTP Servlet 使用一个 HTML 表格来发送和接收数据。要创建一个 HTTPServlet,请扩展 HttpServlet 类。

HttpServlet 类包含 init()、destroy()、service() 等方法。其中 init() 和 destroy() 方法是继承的。

执行一次 init() 方法。

2. Servlet的生命周期:

1、servlet容器创建servlet的一个实例

2、容器调用该实例的init()方法

3、如果容器对该servlet有请求,则调用此实例的service()方法

4、容器在销毁本实例前调用它的destroy()方法

5、销毁并标记该实例以供作为垃圾收集

3.Servlet的主要功能及过程:

Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:

  客户端发送请求至服务器端;

  服务器将请求信息发送至Servlet    

Servlet生成响应内容并将其传给Server。响应内容动态生成,通常取决于客户端的请求

  服务器将响应返回给客户端

其实jsp就是servlet,每一个jsp在第一次运行时被转换成servlet文件,再编译成.class来运行。

有了jsp,因此在MVC模式中servlet不再负责生成html页面,转而担任控制程序逻辑的作用,控制jsp和javabean之间的流转。

4. JSP与Servlet的区别与联系:

尽管jsp在本质上就是servlet,但是两者的创建方式不一样:

servlet完全是java程序代码构成,擅长于流程控制和事务处理,而通过servlet来生成动态网页很不直观;对于静态的html标签,servlet都必须使用页面输出流逐行输出

Jsp由html代码和jsp标签构成可以方便地编写动态网页因此在实际应用中采用servlet来控制业务流程,而采用jsp来生成动态页面。在struts框架中,jsp位于MVC设计模式的视图层,而servlet位于控制层。

Servlet中没有内置对象。

Servlet主要用于从客户端接收请求信息,而JSP主要负责将服务器端信息传送到客户端。

总之,jsp是servlet的一种简化,使用jsp只需要完成程序员需要输出到客户端的内容,至于jsp中的java脚本如果镶嵌到一个类中,由jsp容器完成,而servlet则是个完整的java类,这个累的service方法用于生成对客户端的响应。

JSP就象宾馆前台的服务员,要长的不错,让顾客一看就觉得比较舒服,他主要就是负责显示这个宾馆的形象的.而SERVLET就象部门经理,要处理各种各样的业务和事情,而bean呢就象是高层领导了,他负责从部门经理处获得信息,报告给董事会,或者把董事会的建议和计划吩咐下去.他们分工合作,各干其职。

5.JavaBean

 JavaBean是一个可重复使用的软件组件。

实际上JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称bean。

由于javabean是基于java语言的,因此javabean不依赖平台,具有以下特点:

 1. 可以实现代码的重复利用

 2. 易编写、易维护、易使用

 3. 可以在任何安装了Java运行环境的平台上的使用,而不需要重新编译。编写javabean就是编写一个java的类,所以你只要会写类就能编写一个bean,这个类创建的一个对象称做一个bean。为了能让使用这个bean的应用程序构建工具(比如JSP引擎)知道这个bean的属性和方法,只需在类的方法命名上遵守以下规则: 1. 如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,即更改或获取属性,在类中可以使用两个方法: getXxx(),用来获取属性xxx。 setXxx(),用来修改属性xxx.。 2. 对于boolean类型的成员变量,即布尔逻辑类型的属性,允许使用"is"代替上面的"get"和"set"。 3. 类中方法的访问属性都必须是public的。

 4. 类中如果有构造方法,那么这个构造方法也是public的并且是无参数的。

JavaBean在JSP程序中常用来封装事务逻辑、数据库操作等,可以很好的实现业务逻辑和前台程序的分离,使得系统具有更好的健壮性和灵活性。