response.setContentType("text/html;charset=gbk")和request.setCharacterEncoding("gbk")两句。
6.session对象
session对象所属的类型是javax.servlet.http.HttpSession。它是在发生HTTP请求时被创建的,它的创建代表这一个会话对象的产生。在该平台开发的过程中,用的最多的方法是setMaxInactiveInterval( int interval),它用于设置最大的session不活动的时间,若超过这个时间则会话将会失效,时间单位为秒。在平台中,若用户长时间未进行任何操作且没有注销登录,则通过该方法设置的时间就被作为自动注销的时间依据。除了上述方法外,平台开发过程中主要还使用方法getAttribute(String name) 来获取指定名字的属性和方法removeAttribute(String name)来删除指定名字的属性,也通过使用方法setAttribute(String name, Java.lang.Object object)来进行指定名字属性值设置,并存储在该对象中。
7.pageContext对象
pageContext对象在平台过程中使用的不多,主要是用于对JSP页面内所有的对象及名字空间的访问,因为它可以访问到本页所在的SESSION,同时也可以取本页面所在的application的某一属性值,相当于页面中所有功能的集大成者,虽然使用起来较为直接,但是因其所集合的方法太多导致使用起来不甚方便。
2.1.2 JSP页面
该平台的所有前端交互均为JSP页面,目前用于前端交互的开发方式用很多种,而该平台之所以采用JSP主要是出于如下考虑:
1、JSP将内容的生成和显示进行分离,使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识JavaBeans 组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。
2、绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
3、JSP采用了标识简化页面开发,Web页面开发人员不会都是熟悉脚本语言的编程人员。而JSP技术则封装了许多的功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言"一次编写,各处运行"的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,开发人员可以使用自己所选择的服务器和工具,而更改工具或服务器却不影响当前的应用。
2.2 Ajax技术
Ajax(Asynchronous JavaScript XML)技术的核心是JavaScript对象XmlHttpRequest。它是一种支持异步请求的技术, 通过XmlHttpRequest可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。如平台注册功能中的检查用户名是否已经存在、用户登录后马上注销时对主界面的刷新等均使用到了该技术,使用Ajax能够让用户在这些功能结果反馈之前可以继续执行其他的操作,而不是处于等待状态。使用Ajax主要有三大步骤,具体操作如下所述:
1、创建XmlHttp对象,因为不同内核的浏览器对Ajax的支持不同,所以在创建之前必须先通过浏览器的window属性的来判断其内核是IE还是火狐,若是前者创建对象为ActiveXObject("Microsoft.XMLHTTP"),后者则创建为XMLHttpRequest()。
2、发送请求函数,首先调用XmlHttp对象中的open("GET",url,true)设置发送请求的方式,然后调用onreadystatechange属性指定响应函数,最后调用send(null)进行请求的发送。
3、判断返回状态并进行处理,调用XmlHttp对象的readyState属性和status属性来判断异步请求是否成功,如readyState=4、status=200则请求成功,然后调用responseText属性对返回的内容进行处理。
2.3 jQuery和Json
该平台在开发中采用了jQuery框架,它是一个优秀的JS(Javascript)框架,使用它最直接的效果就是能够做到写更少的代码却做更多的事情。在平台的开发过程中,主要使用了它的选择器和内置函数。选择器以简单少量的代码实现对结点、标签等的快速获取,如选择器$("ID")能选择该ID对应的结点、$("TagName")能选择该标签元素进行操。而内置函数则是为了更容易的完成动画效果,如show()和hide()函数,能实现立即显示或者以特定的速度显示,fadeIn()和fadeOut(),或者slideDown()和slideUp()显示和隐藏元素等。通过使用这些选择器、内置方法以及配合Ajax技术,给平台的开发减少了不小的工作量。
Json可以将JS对象中表示的一组数据转换为字符串形式,然后就可以在函数之间轻松地传递这个字符串。如在该平台中使用Ajax实现异步操作时,将字符串从平台客户端传递给服务器端程序、从服务器端回响给前端数据等均是使用该方式进行传递的。组成Json的字符串格式如{"name":"value"},它是以键值对方式存在的。尽管这种格式看起来十分怪异,但是与以XML方式进行数据传递相比,不仅大大提高了可读性,而且减少了数据组成结构的复杂性。
2.4 SSH技术简介
本平台开发采用的是SSH整合技术。SSH指的是Struts、Spring、Hibernate三大框架的整合,在开发过程中Struts 的MVC设计模式可以使我们的逻辑变得很清晰,Spring 的IOC和AOP可以使我们的平台在最大限度上解藕,而Hibernate则是实体对象的持久化,SSH框架直观如图2.1所示。
典型的JAVAEE三层结构分为表现层、中间层(业务逻辑层)和数据服务层,三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层则是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。
图2.1 SSH框架直观图
表现层则是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。中间层采用的是流行的Spring+Hibernate,为
上一篇:
基于NET的论文管理系统
下一篇:
A印刷营销团队管理中的问题及对策