第1章 JSP 概述


JSP全称Java Server Pages,由Sun Microsystem公司倡导的,是一种动态网页技术标准,目的是使构造基于Web的应用程序更加容易和快捷。这些Web应用程序能够与各种Web服务器、应用服务器、浏览器和开发工具共同工作。

1.1 Java技术

Java是一种简单的、完全面向对象的、跨平台且安全可靠的、主要面向Internet的开发工具。Java技术主要包括Java语言和Java Applet 、JavaBeans、Java Servlet、JDBC、JNDI等。

1.1.1 JavaBeans

JavaBeans是Java的可重用组件。ASP通过COM来扩充复杂的功能,如文件上载、发送Email以及将业务处理或复杂计算分离出来成为独立可重复利用的模块,而JSP通过JavaBeans实现了类似的功能扩充。JavaBeans组件还可以用来重复执行复杂的计算任务,或负责与数据库的交互以及数据提取等。

JavaBeans是一个十分完整的组件模型,它能够支持标准组件技术中的各种特性,如属性(properities)、事件(event)、方法(method)和持续性(persistence),和“对象”的观念十分类似。

设计一个JavaBeans的步骤:

1、指定Beans的属性。

2、指定Beans所产生或响应的事件

3、定义Beans应公开给其他Beans的属性、方法和事件。

1.1.2 JDBC

JDBC是用于执行SQL语句的Java应用程序接口,由一组用Java语言编写的类和接口组成。在JSP中使用JDBC来访问数据库,JDBC通过数据库的JDBC驱动程序来访问数据库。

JAVA应用程序<——>JDBC(java.sql)<——>数据库的JDBC驱动程序<——>DATABASE.

1.1.3 J2EE

J2EE(Java2 Platform Enterprise Edition)平台规范是一个由SUN公司定义的用于简化分布式企业级应用开发和部署的基于组件的模型。

J2EE使用多层的分布式应用模型,其应用逻辑按功能划分为组件,各个应用组件根据它们所在的层分布在不同的机器上,J2EE分为4个层:客户层(Client Tier)、Web层(Web Tier)、业务层(Business Tier)和企业信息系统层(Enterprise Information System Tier).

1、客户层(Client Tier)运行在客户端机器上。应用于客户层的组件是“应用的客户组件(Application client components)”,它可以是基于Web方式的,如浏览器,也可以是基于传统方式的(非基于Web方式的),如独立的应用程序。

J2EE应用程序可以是基于Web的,也可以是不基于Web的。在一个基于Web的J2EE的应用程序中,用户的浏览器在客户层(Client Tier)运行,并从一个Web服务器上下载一个Web层中的静态HTML页面或者由JSP或Servlet生成的动态HTML页面。

2、Web层(Web Tier)运行在Web服务器上,Java Servlet和Java Server Pages(JSP)是Web层组件。调用Servlet或者JSP页面的HTML页面在应用程序组装时与Web组件打包在一起。与客户层相似,Web层可能包括一个JavaBeans类来管理用户输入,并将输出发送到在业务层中运行的Enterprise Beans类来进行处理。

3、业务层(Business Tier)运行在EJB上,Enterprise JavaBeans(EJB)是业务层组件。一个Enterprise Bean从客户程序处接受数据,对数据进行处理,在将数据发送到企业信息系统层(Enterprise Information System Tier)存储。一个Enterprise Bean还可以从存储中检索数据,并将数据送回客户程序。

 Enterprise Bean分为3类:会话(Session)Beans、实体(Entity)Beans和消息驱动(Message-driven)Beans。会话Bean表示与客户端程序的临时交互;实体Bean表示数据库的表中一行永久的记录;消息驱动Bean结合了会话Bean和JMS的消息监听器的特性,允许一个业务层组件异步接收JMS消息。

业务层经常被称作Enterprise JavaBeans(EJB)层。业务层和Web层一起构成了3层J2EE应用的中间层,而其他两层是客户层和企业信息系统层。

可以在J2EE平台上实现的基于Web的应用程序有4中,从简单到复杂排序如下:

1、基本HTML

2、带基本JSP页面或Servlets的HTML

3、带JavaBean类的JSP页面

4、将应用逻辑根据功能划分成区域的高度结构化的应用。


什么是Servlets?

Servlets是实现动态内容的一种简单、平台独立、Web服务器独立的方式。JSP页面是开发Servlets的一种基于文本的、以显示为中心的方式。JSP页面提供了Servlets的所有优点,并且当与一个JavaBeans类结合时,提供了一种使内容和显示逻辑分开的简单方式。分开内容和显示逻辑的好处是,更新页面外观的人员不必懂得Java代码、而更新JavaBeans类的人员也不必是设计网页的行家里手。可以用带JavaBeans类的JSP页面来定义Web模板,以建立一个由具有相似外观页面组成的网站。JavaBeans类完成数据提供,这样在模板中就没有Java模板,这意味着这些模板可以由一个HTML编写人员来维护。


Servlets适用范围?

servlets是一个程序设计工具,适用于不需要频繁修改的低级应用功能。JSP页面则通过显示为中心的描述性的方法将动态内容和逻辑结合在一起。对于一个使用JSP页面、简单的、基于Web的应用程序,可以使用订制标记或者scriptlets(scriptlets是直接嵌入在JSP页面的很小的Java代码片段),而不是使用JavaBeans类将内容与应用逻辑结合起来,定制标记被打包到一个标记库中,并被引入到一个JSP页面中。

总之,一个基于Web的应用程序使用HTML显示数据;用XML来定义数据,是数据可以被其他程序读取并处理;使用JSP页面或者Servlets来管理用户与业务层或存储层之间的数据流。

1.1.4 Java Servlet

Servlet是位于Web服务器端的Java应用程序,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

Servlet是使用Java Servlet应用程序设计接口(API)及相关类和方法的Java程序。Java Servlet API定义了一个Servlet和Java交互的服务器之间的一个标准接口,使得Servlets具有跨平台的特性。

Servlet在启动Java的Web服务器上或应用服务器上运行并扩展了该服务器的能力。Java Servlet对于Web服务器就好像Java applet对于Web浏览器,Servlet的主要功能在于可以事先交互的浏览和修改数据,生成动态Web内容。Servlet装入Web服务器并在Web服务器内执行,而applet装入Web浏览器并在Web浏览器内执行。

Web服务器装入Servlet后,Web服务器创建一个Servlet实例并且调用Servlet的init()方法。在初试化阶段,Servlet初始化参数被传递给Servlet配置对象,请求处理对于到达服务器的客户机请求,服务器创建对应于请求的一个“请求”对象和“响应”对象。service()方法从“请求”对象获得请求信息,处理该请求后用“响应”对象的方法将响应传回客户机。

当服务器不需要Servlet时,调用Servlet的destroy()方法结束这个Servlet。

1.2 JSP技术

1.2.1 JSP技术概述

JSP是一种动态网页技术标准.JSP技术用Java语言作为脚本语言,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。

JSP程序调试困难。JSP页面首先被转化为一个.java文件(servlet),然后再被编译。这样,出错信息实际上指向的是经过转化的那个.java文件而不是JSP本身。

1.2.2 Web应用开发的JSP技术

1、将内容的生成和显示进行分离

使用HTML或者XML标识设计和格式化最终页面,使用JSP标识或者小脚本生成页面上的动态内容(例如账户信息)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。

在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的访问内容(例如通过访问JavaBeans组件,使用JDBC技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)的形式发送给浏览器。

2、强调可重用的组件

3、采用标识简化页面开发


由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成Java Servlert,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。

1.2.3 JSP页面

JSP页面由HTML和大量JSP元件组成。通常JSP元件创建插入最终页面的文本。

1.2.4 JSP页面的应用模型

JSP页面有JSP引擎执行,引擎安装在Web服务器或者使用JSP的应用服务器上。JSP引擎接受客户端对JSP页面的请求,并且生成JSP页面给客户端的响应。

JSP页面通常被编译成Java Servlet。后者是一个标准的Java扩展。

JSP页面第一次被调用时,不存在会被编译成为一个Java Servlet类,并且存储在服务器的内存中。使得第二次对该页面的调用有非常快的响应。

JSP页面可以包含在多种不同的应用体系结构或者模型中,还可以用于由不同协议、组件和格式所组成的联合体中。

1、简单应用:

一个简单应用的实现中,浏览器直接调用JSP页面,JSP页面自己生成被请求的内容(可能会调用JDBC直接从数据库中获取信息)。JSP页面能够调用JDBC或者Java Blend组件来生成结果,并且创建标准的HTML,作为结果发回给浏览器。

缺点:工作良好,但是不能 扩展到大量的基于Web的并发客户访问稀少的企业资源,因为每个客户必须建立或者共享一个到可用内容资源的连接。

2、使用Java Servlet的一个灵活的应用

客户端直接对Servlet进行请求,Servlet生成动态内容,将结果捆绑到一个 结果对象并且调用JSP页面..JSP页面从该对象访问动态内容,并 将结果(例如HTML)发送回浏览器。

3、采用企业级JavaBean技术的可扩展处理

JSP页面作为企业级JavaBean(EJB)体系结构中的一个中间层。JSP页面和后台资源通过EJB组件进行交互,EJB组件管理对后端资源的访问。

1.3 用JSP开发Web站点的几种方式

1、直接使用JSP

最小型Web站点,例如留言板、动态日期等基本功能。一般将所有的动态处理部分放在JSP的Scriptlet中。

2、JSP+JavaBeans

中型站点,面对数据库查询、用户管理和小量的商业业务逻辑。在单纯的JSP中加入JavaBeans技术,利用JavaBeans完成数据库连接、用户登录与注销、商业业务逻辑封装的任务。例如:将常用的数据库连接写为一个JavaBeans.

3、JSP+JavaBeans+Servlet

借助Servlet和JSP良好的交互关系和JavaBeans的协助,将网站的整个逻辑结构放在Servlet中,而将动态页面的输出放在JSP页面来完成。

4、J2EE开发模型

MVC:视图、控制器和模型

视图:用户界面部分,即用户看到的部分。动态的JSP部分处理用户可以看见的动态网页,静态的网页有HTML、XML输出。

控制器:处于视图和数据之间,管理用户与视图发生的交互,负责网站的整个逻辑。这样的话,视图完全独立于控制器和模型之间,可以轻松修改显示页面。

模型:应用业务逻辑部分。

1.4 JSP的两种体系结构

1、Model 1

JSP页面可以集合业务逻辑(jsp:useBean)、服务端处理过程(jsp:scriplet)和HTML(<html>),在JSP页面中同时实现显示、业务逻辑和流程控制。以JSP页面为中心的开发模型称之为Model1.

浏览器Browser发送请求Request给JSP页面,JSP页面调用JavaBean连接数据库并并获取数据,最后,JSP页面独自响应Response请求并将处理结果返还给客户端。

2、Model2

将JSP和Servlets集合使用,用JSP生成表达层内容,用Servlet完成深层次的处理任务。这里,Servlet充当控制器的作用,负责对请求Request的处理。创建JSP页面需要使用Bean和对象,同时根据用户的动作决定把哪个JSP页传递给请求者。

注意:JSP页面没有处理逻辑,仅仅负责检索原先有Servlet创建的对象或Bean,从Servlet提取动态内容插入静态模板(<html>),

这是基于MVC模式的框架,MVC(Model View Controller)的缩写.Model代表应用的业务逻辑(通过JavaBean,EJB组件实现),View是应用的表示面(有JSP页面产生),Controller是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模式把应用逻辑,处理逻辑和显示逻辑分为不同的组件来实现。

浏览器Browser发送请求Request给Servlet,Servlet创建JSP页面,使用JavaBean连接数据库创建对象,同时JSP页检索有Servlet创建的对象或Beans,从Servlet中提取动态内容插入模板。

Model1 以简单页面控制为中心,适合快速开发;Model2 以整体规划为中心,适合复杂大规模系统开发。在实际开发过程中要将两个结合起来。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值