开发的。从JSP1.2版本以来,JSP处于JavaCommunityProcess开发模式下。
JSR-53规定了JSP1.2和Servlet2.4的规范,JSR-152规定了JSP2.0的规范。2006年5月,JSP2.1的规范作为JavaEE5的一部份,在JSR-245中发布。
综上所述其实JSP就是服务器端的一种基于Java语言的网页技术,所有
程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关。在传统的网页中加入Java代码和JSP标签之后放在服务器端运行,再将运行的结果向用户发布,用户通过浏览器就能够看到精彩纷呈的网页了。也可以简单的理解为:HTML+Java程序片段+JSP标记=JSP网页。容器在遇到JSP网页的请求时,首先执行其中的Java代码,通过这些Java代码可以操作数据库、发送Email、传输数据信息以及转到另外的网页等。然后服务器
-2-
邵阳毕业设计(论文)
将执行完代码后所产生的结果封装到原HTML网页中,以HTML的格式返回给用户,这就是JSP网页的运行原理
[13]
。
通过JSP的运行原理,我们可以得到如下的JSP执行过程:查找对应的JSP文件
是否存在Y
N
是否是修改或创建后第一次调用
N
Y
调用JspParser将其编译成Servlet程序
调用JSDK将其对应的servlet程序编译成Servlet字节码
执行(若未载入请载入)已有的对应的Java字节码
输出到客服端
图1.1JSP执行原理图
JSP技术的优势:
-3-
邵阳毕业设计(论文)
(1)一次编写,到处运行。在这一点上Java比
PHP更出色,除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以
免费得到,并且其中许多已经可以顺利的运行于多种平台之下[6]。
JSP转译成Servlet有以下几个方法:
(1)jspInit()—在JSP页面初始化时被调用。可以覆盖该方法,以提供任何的初始化
工作;(2)jspDestroy()—在JSP页面被销毁时调用。可以覆盖该方法,以提供任何的JSP清楚工作;(3)jspService()—由容器自动定义,不应当提供该方法的实现。
JSP的页面内容包括:
(1)静态内容—HTML静态文本;(2)指令—<%@开始,以%>;(3)表达式—<%@=Java表达式%>;(4)Scriptlet—<%Java代码%>;(5)声明—<%!函数或方法%>;(6)动作—以“
xml:namespace prefix = jsp />
”;(7)注释—,<%--这也是注释,但客户端不能查看到--%>[16]。1.3.2脚本语言的简介
(1)HTML语言超文本置标语言(英文:HyperTextMarkupLanguage,简称为HTML)是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种置标语言。HTML被用来结构化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档
-4-
邵阳毕业设计(论文)
的外观和语义。由蒂姆·伯纳斯-李给出原始定义,由IETF用简化的SGML(标准通用置标语言)语法进行进一步发展的HTML,后来成为国际标准,由万维网联盟(W3C)维护。包含HTML内容的文件最常用的扩展名是.html,但是像DOS这样的旧操作系统限制扩展名为最多三个字符,所以.htm扩展名也被使用。虽然现在使用的比较少一些了,但是.htm扩展名仍旧普遍被支持。编者可以用任何文本编辑器或所见即所得的HTML编辑器来编辑HTML文件。以有助于不熟悉网络出版的人采用。早期的HTML语法被定义成较松散的规则,网页浏览器接受了这个现实,并且可以显示语法不严格的网页。随着时间的流逝,官方标准渐渐趋于严格的语法,但是浏览器继续显示一些远称不上合乎标准的HTML。使用XML的严格规则的XHTML(可扩展超文本置标语言)是W3C计划中的