网页的,如果用Java Servlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么SUN后来还要推出Java Server Pages的原因。
2.2.1 Servlet工作流程
Servlet是Java编写的服务器端程序,是由服务器端执行和调用的Java类。Servlet是采用Java技术来实现CGI功能的一种技术,能够像CGI一样动态地扩展Web服务器的功能,并采用请求——响应模式提供Web服务。Servlet和CGI一样都是运行在Web服务器上,用来生成Web页面。Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。其工作流程图如图2-1所示。
Servlet工作流程:
a)客户端发送请求信息至服务器。
b)服务器将请求信息发送至Servlet。
c)Servlet生成响应内容并将其传给Servlet。响应内容动态生成,通常取决于客户端的请求。
图2-1 Servlet工作流程图
d)服务器将响应信息返回至客户端。
2.2.2 Servlet过滤器开发技术
Servlet 过滤器是一种小型的、可插入的Web组件,其提供了对Web应用程序的前期处理和后期处理的逻辑控制,可以拦截请求和响应,以便查看、提取或以某种方式操作正在客户端和服务器之间进行交换的数据。
Servlet过滤器具有动态、灵活、透明、模块化、可移植、可重用等性质,是一种自包含的、模块化的组件,可以在使用时将其添加到请求/响应链中,也可以被删除而不影响到应用程序的其他Web组件。Servlet过滤器应用非常广泛,有拦截的地方一般都可以用到过滤器,其也和Servlet类似,也需要在Web应用配置文件(即Web.xml)中进行配置部署。过滤器并不是servlet,他们并不实际创建一个请求。他们是请求到达一个servlet前的预处理程序,响应离开servlet后的后处理程序。
Servlet过滤器API包含3个简单的接口,即Filter、FilterChain和FilterConfig,它们位于javax.servlet包中。从编程的角度看,过滤器类将实现Filter接口,然后使用这个过滤器类中的FilterChain和FilterConfig接口。该过滤器类的一个引用将传递给FilterChain对象,以允许过滤器将控制权传递给过滤器链中的下一个过滤器或者资源。FilterConfig对象将由容器提供给过滤器,以允许访问该过滤器的初始化数据。过滤器应用控制流程如图2-2所示。
图2-2 过滤器应用控制流程
2.2.3 Servlet监听器开发技术
Servlet监听器主要有三种,在ServletContext(上下文对象)、Session(会话)和request(请求)这三对象上进行监听,可以监听对象的创建、销毁、添加属性、删除属性、属性值的改变等。ServletContext对象的作用域在整个WEB应用程序,类似于Static属性;Session的作用域在一个会话,一个会话可以理解为一个从一个浏览器发出请求到服务器开始,一直到浏览器关闭(但通常我们可以设置会话的生命期,防止那些获得连接后却长时间没有再向服务器发出请求的情况),相当于类的成员变量;request的作用域仅在一次请求,即浏览器发送一次请求到服务器处理该请求并发回响应就结束了,相当于局部变量。
Servlet事件监听器与Java的GUI事件监听器类似,一般情况下按监听的对象划分,Servlet事件监听器可以分为:
1.用于监听应用程序环境对象(ServletContext)的事件监听器;
2.用于监听用户会话对象(HttpSession)的事件监听器;
3.用于监听请求消息对象(ServletRequest)的事件监听器。
按监听的事件类项划分,Servlet事件监听器可以分为:
1.用于监听域对象自身的创建和销毁的事件监听器;
2.用于监听域对象中的属性的增加和删除的事件监听器;
3.用于监听绑定到HttpSession域中的某个对象的状态的事件监听器。
2.3 JavaBean技术简介
JAVABEAN是基于JAVA的组建模型,有点类似于MICROSOFT的COM组建。JavaBean 就是JAVA的可重用组件技术。ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或复杂计算分离出来成为独立可重复利用的模块。JSP通过JavaBean实现了同样的功能扩充。JSP 对于在Web 应用中集成JavaBean 组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为JSP 应用带来了更多的可伸缩性。JavaBean 组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。
在JAVA平台中,可以无限扩充JAVA程序的功能,通过JAVABEAN的组合可以快速生产新的应用程序。JAVABEAN 通过JAVA虚拟机(JAVA VIRTUAL MACHINE)执行,运行JAVABEAN最小的需求是JDK1.5或者以上的版本。
对于程序员来说,最好的一点就是JAVABEAN可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。在实际的JSP开发过程中,读者将会发现,和传统的ASP或PHP页面相比,JSP页面将会是非常简洁的,由于JavaBeans开发起来简单,又可以利用Java语言的强大功能,许多动态页面处理过程实际上被封装到了JavaBeans中。
JAVABEAN传统的应用在于可视化的领域,如AWT下的应用。自从JSP诞生后,JAVABEAN更多的应用在了非可视化领域,在服务器端应用方面表现出了越来越强的生命力。
2.4 Struts技术简介
Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Servlet,JSP和custom tag library构建Web应用的一项非常有用的技术。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速。它使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
视图:视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和象XHTML、XML/XSL,WML等一些标识语言和Web services. 如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
模型:模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器:控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器(例如:servlet)本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。
现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并
上一篇:
基于Android系统的车载视频机器人设计-毕业设计(论文)任务指导书
下一篇:
试论APP广告在手机中的应用