JSP学习1

来源:互联网 发布:gitbook mac客户端 编辑:程序博客网 时间:2024/05/16 07:21

 

1.JSP和servlet的区别:

Java Servlet 是Java 语言的一部分,提供了用于服务器编程的API,Java Servlet编写的Java 程序称为一个servlet。servlet 通过HTML 与客户交互信息。servlet 的最大
缺点是不能有效的管理页面的逻辑部分和页面的输出部分,导致servlet 代码非常混乱,用servlet 来管理网站变成一件很困难的事情。为了克服servlet 的缺点,SUN公司用Java
Servlet 作为基础,推出了Java Server Page。JSP 提供了servlet 的几乎所有好处,当一个客户请求一个JSP页面时,JSP引擎根据JSP页面生成一个Java 文件,即一个servlet。用JSP 支持javabeans 这一特点,可以有效地管理页面的逻辑部分和页面的输出部分。另外,JSP 也可以和servlet 有效地结合,分离页面的逻辑部分和页面的输出
部分。

任何一个Web服务目录下的JSP 页面都可以通过表单或超链接访问某个servlet。通过JSP 页面访问servlet 的好处是,JSP 页面可以负责页面的静态信息处理,动态信息处
理交给servlet 去完成。

JSP主要关注于HTML(或者XML)与Java代码的结合,以及加入其中的JSP标记。如果一个支持JSP的服务器遇到一个JSP页面,它首先查看该页面是否被编译成为一个servlet。由此可见,JSP被编译成servlet,即被转变为纯Java,然后被装载入服务器执行。当然,这一过程,根据不同的JSP引擎而略有不同。
SERVLET用来写business layer是很强大的,但是对于写presentation layer就很不方便。JSP则主要是为了方便写presentation layer而设计的。当然也可以写business layer。写惯了ASP,PHP,CGI的朋友,经常会不自觉的把presentation layer和business layer混在一起。比如把数据库处理信息放到JSP中,其实,它应该放在business layer中。
  根据SUN自己的推荐,JSP中应该仅仅存放与presentation layer有关的部分,也就是说,只放输出HTML网页的部份。而所有的数据计算、数据分析、数据库联结处理,统统是属于business layer,应该放在JAVA BEANS中。通过JSP调用JAVA BEANS,实现两层的整合。
        从Servlet的生命周期说起。一般情况下,可以归纳为几点:
  1.装载Servlets。这项操作一般是动态执行的。有些Server提供了相应的管理功能,可以在启动的时候就装载Servlet;
  2.Server创建一个Servlet实例;
  3.Server调用Servlet的init()方法;
  4.一个客户端的请求到达Server;
  5.server创建一个请求对象;
  6.Server创建一个响应对象;
  7.Server激活Servlet的Service()方法,并传递请求和响应对象;
  8.service()方法获得关于请求对象的的信息、处理请求、访问其他资源、获得需要的信息;
  9.service()方法使用响应对象的方法,将响应传回Server,最终到达客户端。Service()方法可能机或其他方法已处理请求,如doGet()或doPost()或程序员自己开发的方法;
  10.对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用init()方法。也就是说,Servlet()只初始化一次。
  11.当Server不再需要Servlet时(一般是当Server关闭的时候),Server调用Servlets的destroy()方法。

SUN 公司以Java Servlet 为基础,推出了Java Server Page 。JSP 提供了Java Servlet 的几乎所有好处,当一个客户请求一个JSP 页面时,JSP 引擎根据JSP
页面生成一个Java 文件,即一个servlet。使用jSP+javabeans+servlet 的模式来开发Web应用程序。我们已经知道,用JSP 支持JavaBeans 这一特点,可以有效的管理页面的静态部分和页面的动态部分。另外,我们也可以在一个JSP 页面中调用一个servlet 完成动态数据的处理,而让JSP 页面本身处理静态的信息。因此,开发一个Web应用有两种模式可以选择:
(1) JSP+javabeans
(2) JSP+javabeans+servlet