刘 婷
(武警工程大学信息工程学院,陕西 西安 710086)
近年来,JSP 研究取得了不错的成绩, 在国内,JSP目前主要用于政府方面的大型系统开发中, 或一些大型企业类似于移动、网易、曾经的人人网。 各大公司对JSP 专业开发人才的需求量也是越来越大[1]。
JSP, 全 称Java Server Pages, 是Sun 公 司 提 倡 的 一门应用于前端开发的动态网页开发技术, 最基本的JSP 界面由HTML 标签与少量的Java 代码组成,除此之外,指令标签、注释、JSP 动作标签及九大内置对象都是JSP 的组成成分,标签通常以<%开头以%>结束。JSP 的本质是servlet,其主要用途是在Java web 应用程序中编写客户端界面[2]。
JSP 是基于Java 的动态网页开发技术,并很好的继承了Java 语言的一些特性[3]。
1.2.1 跨平台
JSP 是基于Java 的,那么Java API 对于JSP 而言就不是问题, 所以JSP 也是跨平台的。 良好的跨平台特性, 让JSP 开发的Web 项目完美的应用到任何平台上。
1.2.2 业务代码分离
基于JSP 开发的Web 项目, 开发人员可以将业务处理代码全部放到JavaBean 中, 从而实现业务与View层分离。JSP 负责动态显示数据,改变业务代码却不会对JSP 造成任何影响。
1.2.3 组件重用
JSP 推荐使用JavaBean 编写业务组件,这个封装的JavaBean 在整个项目的JSP 页面中都可以复用。
1.2.4 继承Java Servlet 功能
JSP 算是Servlet 的升级版本。 在JSP 出现之后,编写和访问过程被简化了, 不过JSP 最终仍要编译成Servlet 来处理用户请求,因此JSP 具有Servlet 的所有特性和功能。
1.2.5 预编译
用户第一次使用浏览器访问JSP 界面时, 服务器将对JSP 页面代码仅执行一次编译并保存, 在用户下一次访问时, 直接执行编译好的代码。 这样不仅节约了服务器的CPU 资源,还大大提升了客户端的访问速度。
客户端首先发送访问JSP 页面的request 请求,在接收到请求之后JSP Container 会把访问的.JSP 文件转译成Servlet(.java 文件),然后产生的源代码经过编译,生成.class 文件,并加载到内存执行,执行完成后就会把响应传给客户端,生成动态的HTML 文件,即浏览器所能看到的界面。
JavaBean 只是一个普通的Java 类,但是使用它能够带来封装、重用、可读的好处,定义一个JavaBean 便能够在整个JSP 乃至整个项目中重复使用这个类,JSP 技术提供了关于JavaBean 组件的三个动作元素, 即JSP行为(标签):
(1) 在JSP 页 面 中 查 找javaBean 对 象 或 实 例 化javaBean 对象,
(2)设置javaBean 的属性,
(3)获取javaBean 的属性,
通过使用三个标签, 即能查找到在指定的域内的指定名称的JavaBean 对象,并获取到相对应的属性,简化了我们在没有学习三个标签之前冗长的代码量,不仅提高了代码简介度,更是为开发提供了便利。
如果需要编写一套体系完整的Web 项目, 必然关联到数据库信息的管理,Java 中连接数据库的技术是JDBC,JavaEE 项目中最常用的就是通过JDBC 驱动程序连接到数据库,执行查询、操作数据等。 Java 程序能访问诸如Oracle、Sybase、MS SQL Server 和MS Access 等数据库。
现阶段市面上存在各式各样的前端语言, 尽管如此,相较于php、asp、Node.js、React 等众多的开发语言,JSP 仍然具有强大的生命力, 它的通用性让其成为企业软件的开发中颇为不错的选择。
在访问HTML 静态页面时, 客户端使用Web 浏览器经过网络向服务器发出请求,Web 服务器根据用户的请求返回相应的信息, 浏览器端会对收到的信息进行渲染解析, 得到显示效果, 同时也可以运用js/ajax技术使页面更加美观, 由于这些特效都是借助于浏览器完成的,所以服务器上的内容不会受到影响。
但HTML 也有缺点,静态页面无法连接数据库,并且由于大量使用js,导致浏览器打开页面时,首先要加载大量的js 文件,占用大量的内存,相当于把服务器端的压力转移到了客户端, 无形中降低了用户的体验度。
JSP 基于HTML 界面,支持所有HTML 标签,是一种动态界面,在动态Web 中,程序依然使用客户端和服务端, 客户端依然使用浏览器, 通过网络连接到服务器上,现在的所有请求都先经过一个WEB Server 来处理。
作为一门完全免费的开源语言,PHP(Hypertext Preprocessor)是一种嵌入在HTML 页面中,以C 语言为主、Perl 为辅、 结合自身特性实现的一门脚本语言,可以满足开发人员快速编写动态页面的需求。
在构建中小型网站的过程中,PHP 和MYSQL 一起使用, 具有很大的优势, 所以国外大多数主机系统都配有免费的APACHE +PHP +MYSQL。
虽然开源语言具有简单的语法和丰富的函数对开发颇为有利,但天生的结构缺陷导致了PHP 不适于编写比中小型业余网站更大的网站[4]。
从整体来说,PHP 更倾向于中小软件的开发,如果硬套在大型的项目上, 后期维护的过程中命名的问题将是一大软肋, 而JSP 更适用于大型系统。 其次PHP对数据库接口的提供并不统一, 如果将来要进行数据移植那么统一数据库接口就是一大难题。 而JSP 没有这种缺陷, 通过 EJB/CORBA 以及众多厂商的Application Server 获得结构支持。
如果说PHP 是未来编程的福音, 简化了编程的难度,那么JSP 将会是救世之星,只有具有较好的前瞻性和拓展性, 整体布局和协同能力强, 才能在未来的发展中不断进步,走向最终的成功。
ASP(Active Server Pages)是Windows 系统自带的脚本语言。
ASP +COM +SQLServer 是Windows 平 台 开 发 中 不 错的选择, 而且是Windows 系统和SQLServer 都有图形界面,易于观察,相对APACHE 和MYSQL 开发友好度更高, 对于不重视知识产权的国家来说也算是一种福音。
不过,ASP 的简单也意味着单一性,在逐渐繁琐的需求中开发人员发现单纯使用ASP 已经很难完成需求,和PHP 一样,ASP 简单易维护,是小型web 应用程序的理想选择。
但是,由于基于ActiveX 控件技术,ASP 只能作用于微软的操作系统之上,虽然经过改良,ASP 可以通过第三方提供的组件和服务来实现跨平台开发, 但是ActiveX 对象必须事先放置于所选择的平台中。 这种不支持跨平台系统开发的致命缺点使ASP 很难开发和维护大型项目。
从总体上说,JSP 和ASP 从技术角度来讲有很多异曲同工之妙。 首先,两者都是基于Web 的应用程序的技术环境支持, 以实现动态交互式网页创建, 其次两者都可以为程序开发人员提供一种逻辑上将应用程序的编制与自带组件设计网页分离的技术。 但是虽然JSP 技术和ASP 在许多方面都很相似, 但两者之间的本质区别仍然非常明显: 两者是来源于不同的技术规范组织, 其实现的基础Web 服务器平台要求也不相同。
最终, 基于Java 的JSP 因其能够广泛支持不同提供商提供的工具的优点而略胜一筹,对所有Web 服务器和应用程序的服务的友好兼容, 让其成为开发人员在开发中的选择最佳。
JSP 的各种优点不仅提高了开发人员的工作效率,也会使网站的网页具有更好的安全性和可移植性。 所以JSP 具有非常良好的发展前景,JSP 的开发人员、所设计的网站也会越来越多。