当前位置:首页 > MVC设计思想 毕业论文外文翻译
者Web管理人员想要调整页面显示,就不得不编辑并重新编译该Java Servlet,即使在逻辑上已经能够运行了。采用这种方法,生成带有动态内容的页面仍然需要应用程序的开发技巧。
很显然,目前所需要的是一个业界范围内的创建动态内容页面的解决方案。这个方案将解决当前方案所受到的限制。如下:
? 能够在任何Web或应用程序服务器上运行。 ? 将应用程序逻辑和页面显示分离。 ? 能够快速地开发和测试。
? 简化开发基于Web的交互式应用程序的过程。
JSP技术就是被设计用来满足这样的要求的。JSP规范是Web服务器、应用服务器、交易系统以及开发工具供应商间广泛合作的结果。Sun开发出这个规范来整合和平衡已经存在的对Java编程环境(例如,Java Servlet和JavaBeans)进行支持的技术和工具。其结果是产生了一种新的、开发基于Web应用程序的方法,给予使用基于组件应用逻辑的页面设计者以强大的功能。
JSP页整体语义
JSP页实施类定义一个_ jspService() 方法映射反应对象的请求。这些变革细节是具体用于脚本语言(参见Chapter JSP.9, “Scripting”)。多数细节不是具体语言,这些细节在这个章节里描述。
JSP页的内容主要致力于描述被写入反应的输出流的数据(JSP容器通常传送返回给客户的数据。)描述是根据JspWriter对象它通过隐含对象暴露。
值的变化:
首先, 定义一个JspWriter 对象,这个对象不同于response.getWriter()返回对象。并且为了实施中间转换,可以认为是插入到buffering。这是最初外在对象。JSP 页作者对于PrintWriter 或OutputStream 相关的ServletResponse被禁止写直接写入。
JSP容器不响应response.getWriter()直到第一部份内容送到客户。JSP对“glue”动作是一种语言,它是二进制。或于servlet相关, 或在引起内容之前改变反应类型内容。
在一些动作主体中,输出不同于JspWriter对象实例的再分配,这取决于动
作的细节。典型临时数据流添加到先前的输出流, 随后输出数据流再分配到先前数据流(嵌套)。Nested streams总被缓冲,并且明确要求缓冲嵌套数据流或被摈除的内容。
如果out JspWriter 对象数据缓冲区满, 则取决于autoFlush属性值,缓冲内容自动输入到ServletResponse output stream ,消除溢出;或抛出缓冲溢出的信号。如果JspWriter不溢出, 写入的内容将被直接送入ServletResponse输出流。
JSP页也能描述一些应该发生的具体事件。在JSP 2.1, 可被描述的唯一事件是初始化和页的损坏。在声明元素“well-known methodnames”中描述。
JavaScript是用于浏览器的第一种具有通用目的、动态的客户端脚本语言。Netscape于1995年首先提出了JavaScript,但当时将其称为LiveScript。后来Netscape迅速地将LiveScript改名为JavaScript,Java的开发商Sun与他们在同一年发表了一项声明。声明中指出Java和JavaScript将互相补充,但它们是截然不同的技术,这样才打消了很多人对这两项技术的错误理解。
JavaScript为创建用户界面控件提供了一种脚本语言。事实上,JavaScript在浏览器中插入了代码逻辑。它可以支持这样的效果:当光标在Web页的某个位置移动时验证用户输入或者变换图像。
Microsoft也编写出了自己的JavaScript版本并将其称为JScript。Microsoft和Netscape都支持一种围绕JavaScript和JScript的核心特性并由(European Computer Manufacturers Association,ECMA)标准组织控制的脚本语言标准。ECMA将其脚本语言命名为ECMAScript。
servlet和JSP经常包括一些组织中常见的信息,如logo、版本、商标或导航条。Web应用程序使用导入机制在任何所需的位置导入这些信息,因为这样可以很容易地在一个地方改变内容,然后维持在所有使用它的代码中。有些信息是静态的,永远不会或很少会改变,如组织的logo。在其他情况下,信息是动态的,经常在不可预见的时候改变,如必须针对每个用户的文本欢迎语。在这两种情况下,你可能都希望保证servlet或JSP可以独立于所导入的内容进行开发,servlet或JSP的实现在必要时正确地更新其导入的内容。
希望在JSP中导入不经常改变的资源。在导入JSP页面中使用include指令,
并给予被导入的JSP代码段.jsp扩展名。
希望在JSP每次接收请求时,而不是在JSP转换为servlet时导入内容。使用jsp:include标准动作。
希望在JSP中根据从配置文件取得的值,动态地导入文件。使用jsp:include标准动作。在外部特性文件中提供它的值,或作为部署描述文件中的配置参数来提供。
希望在JSP文档中导入一段XML文件,或导入XML语法的JSP页面。要在每次请求时进行导入,使用jsp:include标准动作。如果要在翻译阶段进行导入,使用jsp:directive。include元素。JSP的运行原理与优点
在本节中简单介绍JSP的运行原理与优点
在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个Servlet。而这个引擎本身也是一个Servlet。JSP的运行过程如下所示:
(1)JSP引擎先把该JSP文件转换成一个Java源文件(Servlet),在转换时如果发现JSP文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息。
(2)如果转换成功,JSP引擎用javac把该Java源文件编译成相应的class文件。
(3)创建一个该Servlet(JSP页面的转换结果)的实例,该Servlet的jspInit()方法被执行,jspInit()方法在Servlet的生命周期中只被执行一次。
(4)jspService()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但不过也应该注意多线程的编程限制,由于该Servlet始终驻于内存,所以响应是非常快的。
(5)如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的Servlet,并继续上述处理过程。
(6)虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延 迟。此外,在任何时候如果由于系统资源不足的原因,JSP引擎将以
某种不确定的方式将Servlet从内存中移去。当这种情况发生时jspDestroy()方法首先被调用。
(7)然后Servlet实例便被标记加入“垃圾收集”处理。可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在jspDestory()中释放相应的资源。
基于Java语言的JSP技术具有很多其他动态网页技术所没有的特点,具体表现在如下方面:
1.简便性和有效性
JSP动态网页的编写与一般的静态HTML的网页编写是十分相似的。只是在原来的HTML网页中加入一些JSP专有的标签,或是一些脚本程序(此项不是必需的)。这样,一个熟悉HTML网页编写的设计人员可以很容易进行JSP网页的开发。而且开发人员完全可以不自己编写脚本程序,而只是通过JSP独有的标签使用别人已写好的部件来实现动态网页的编写。这样,一个不熟悉脚本语言的网页开发者,完全可以利用JSP做出漂亮的动态网页。而这在其他的动态网页开发中是不可实现的。
2.程序的独立性
JSP是Java API家族的一部分,它拥有一般的Java程序的跨平台的特性。换句话说,就是拥有程序的对平台的独立性,即Write once,Run anywhere!。
3.程序的兼容性
JSP中的动态内容可以各种形式进行显示,所以它可以为各种客户提供服务,即从使用HTML/DHTML的浏览器,到使用WML的各种手提无线设备(例如,移动电话和个人数字设备PDA),再到使用XML的B2B应用,都可以使用JSP的动态页面。
4.程序的可重用性
在JSP页面中可以不直接将脚本程序嵌入,而只是将动态的交互部分作为一个部件加以引用。这样,一旦这样的一个部件写好,它可以为多个程序重复引用,实现了程序的可重用性。现在,大量的标准JavaBeans程序库就是一个很好的例证。
毕业设计是大学教育的一个重要环节,其所要做的工作也是繁多复杂,如毕业设计的题目的确定可以由指导老师拟定,也能由学生自己拟定,题目提交后必
共分享92篇相关文档