JSP运行机制与基本语法_第1页
JSP运行机制与基本语法_第2页
JSP运行机制与基本语法_第3页
JSP运行机制与基本语法_第4页
JSP运行机制与基本语法_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章JSP运行机制与基本语法第三篇JSPWeb数据库应用开发1

JSPJSP的基本语法与使用方法;JSP内置对象,熟练掌握JDBC接口技术,熟练掌握数据库连接技术,熟练掌握

JSP数据库信息发布技术,熟练掌握

JSP应用知识点与技术要求:主要知识点及要求:2Web应用程序目录结构

Web应用程序HTML文件图像ServletJSP页面JavaBeanJar文件Applet标签文件标签库描述符文件部署描述器.war文件文档根目录Web应用程序目录结构index.html,login.jsp,contactus.jspViewBooks.jsp,logo.jpgbook1.jpgAddBook.class,DeleteBook.class

mbase.jar,msqlserver.jar,msutil.jarDisplayBook.tag

web.xml,books.tld

文档根目录静态文件(html,images……)WEB-INFJSP类库标签.tld,web.xml3Web应用程序目录结构4Web服务器常用的Web服务器ApacheIISTomcatResinIBMWebSpareBEAWebLogicTomcat安装与配置Tomcat的目录介绍MyEclipse中Tomcat的配置5JSP概述JSP(JavaServerPage)JSP是由Sun公司倡导、许多别的公司参与一起建立的一种新动态网页技术标准,类似其他技术标准,如ASP、PHP等等。JSP技术是一个纯Java平台的技术,它主要用来产生动态网页内容,包括:HTML、DHTML、XHTML和XML在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,构成了JSP网页(*.jsp)6JSP程序示例<%@pagecontentType="text/html;charset=GBK"%><html><head><title>第一个JSP页面</title></head><bodybgcolor="#ffffff"><%

java.util.Datenow=newjava.util.Date();

out.println("当前时间是:"+now);%><h1>你好,这就是一个JSP页面,简单不?</h1></body></html>演示示例17JSP页面组成元素JSP页面的元素静态内容指令表达式ScriptletJSP页面<%Java代码%><%=Java表达式%>HTML静态文本以“<%@”开始,以“%>”结束。比如:<%@includefile="

Filename"%>声明动作<%!函数或方法%>以“<jsp:动作名”开始,以“</jsp:动作名>”结束比如:<jsp:includepage="Filename"/>注释<!--这是注释,但客户端可以查看到--><%--这也是注释,但客户端不能查看到--%>8JSP页面组成元素<%@pagecontentType="text/html;charset=GBK"language="java"import="java.util.Calendar"%><%!StringgetHello(Stringname){return"Hi,"+name+"!";}%><%Calendarnow=Calendar.getInstance();%>JSP声明JSPScriptletJSP指令9JSP页面组成元素<html><head><title>JSP页面构成</title></head><!--这是注释,但客户端可以察看到--><%--这也是注释,但客户端不能察看到--%><body><h1align="center">JSP页面构成</h1><%=getHello("朋友")%><%if(now.get(Calendar.AM_PM)==Calendar.AM){%>早上好!<%}else{%>下午好!<%}%><br><br><jsp:includeflush="false"page="welcome.jsp"><jsp:paramname="str"value="参数"/></jsp:include></body></html>静态内容JSP表达式JSP注释演示示例2JSP动作10JSP程序执行过程客户端发出请求(request)JSPContainer将JSP转译成Servlet

的源代码将产生的Servlet

的源代码经过编译后生成.class文件,并加载到内存执行把结果响应(response)至客户端11JSP程序执行过程在执行JSP网页时,通常可分为两个时期:转译时期(TranslationTime)和请求时期(RequestTime)。转译时期:JSP网页转译成Servlet

类。请求时期:Servlet

类执行后,响应结果至客户端。补充:转译期间主要做了两件事情:将JSP网页转译为Servlet

源代码(.java),此段称为转译时期(Translationtime);将Servlet

源代码(.java)编译成Servlet

类(.class),此段称为编译时期(Compilationtime)。12JSP技术的优点WriteOnce,RunAnywhere特性作为Java平台的一部分,JSP技术拥有Java语言“一次编写,各处执行”的特点。搭配可重复使用的组件JSP技术可依赖于重复使用跨平台的组件(如:JavaBean或EnterpriseJavaBean组件)来执行更复杂的运算、数据处理。开发人员能够共享开发完成的组件,或者能够加强这些组件的功能,让更多用户或是客户团体使用。基于善加利用组件的方法,可以加快整体开发过程,也大大降低公司的开发成本和人力。JSP页面1静态内容动态内容JSP页面2静态内容动态内容JSP页面3静态内容动态内容JavaBean多个JSP页面使用相同的JavaBean13使用MyEclise开发Web应用MyEclispse介绍MyEclipse是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate,Spring等技术。MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。安装MyEclipse配置MyEclipse使用MyEclipse开发JSP应用示例14Web应用程序的部署为什么要部署Web应用程序?Web应用程序不能独立运行,必须放在WebServer环境中,由WebServer来管理和运行在Tomcat中部署Web应用文件夹方式部署WAR文件方式部署利用MyEclipse进行部署自定义虚拟目录,示例如下:<Contextpath="/exam"docBase="D:\Workspace\exam\WebRoot"reloadable="true"/>15JSPJSP页面结构

JSP文件由两部分组成:(1)<%……%>标记以外的部分(2)在<%……%>标记内的代码,标记内的代码即为JSP代码。JSP代码由JSP引擎处理。

16JSPJSP基本语法

JSP页面组成

JSP常用的语句主要有以下五种类型:(1)注释:<%--注释内容--%>(2)声明:<%!预定义内容%>(3)表达式:<%=表达式%>(4)脚本段Scriptlet:<%代码%>(5)指令:<%@指令%>(6)动作:<jsp:动作>17JSP注释

JSP中的注释分为两种:(1)发送到客户端,在客户端可见的注释,称为HTML注释;(2)发送到服务器端,在客户端不可见的注释,称为隐藏注释。

18JSP2.HTML注释

JSP引擎对HTML注释不作任何解释,直接送交客户端浏览器,用户可以在客户端浏览器中,查看到HTML注释。HTML注释的语法规则如下:<!—注释<%=表达式%>-->

例如,<!--<%=str%>-->,<!--HTML注释-->等如果在注释中应用了表达式,所有嵌入的JSP代码仍在服务器端编译执行,并将执行结果返回客户端的源代码中。例如,

注释语句:<!--页面访问时间:<%=(newjava.util.Date()).toLocaleString()%>-->在客户端见到的源代码是:<!--页面访问时间:2004-8-1921:21:35-->19JSP3.JSP注释

JSP注释在客户端见不到,也称隐藏注释。隐藏注释写在JSP代码中,不发送到客户端,在客户端的源文件中见不到隐藏注释。隐藏注释的语法规则如下:<%--注释--%>

JSP引擎编译时忽略“<%--”和“--%>”之间的语句。隐藏注释是给编程人员看的,属于内部资料,他们即不在客户端浏览器中显示,也不能在客户端的“查看源文件”中看到。例如注释语句:<%--服务器端注释--%>在客户端的源文件中被空白行代替。20JSP声明在“<%”和“%>”标记之间声明变量和方法,在整个JSP页面有效,内存空间在服务器关闭后才被释放。多个用户请求同一个JSP页面时,JSP引擎为每个用户启动一个线程,这些线程由JSP引擎管理。这些用户共享JSP页面的成员变量。利用用户共享成员变量的特点,可以制作计数器等功能。1.声明的语法规则<%!声明;[声明;]……%>例如:<%!inti=6;%><%!int

a,b,c;doubled;%><%!Circlea=newCircle(6.0);%>等。21JSP2.使用注意事项

•可以一次声明多个变量和方法,以“;”号结尾•一个声明只在一个页面有效。对于每个页面都要用到一些声明,最好把这些声明写成一个单独的文件,然后用<%include%>或<jsp:include>指令包含进来;•可以直接使用在<%@page%>中被包含进来、已经声明了的变量和方法,不需要重新声明。

22JSP3.应用示例例:声明1个int类型的变量num,用来统计访客人数,2个String变量,和一个时间对象。因为JSP声明不产生任何输出,所以需要和JSP表达式及JSP脚本结合起来使用,把他们输出到页面上。当有多个用户访问该页面时,所有用户共享变量num。23JSP表达式表达式将JSP生成的数值嵌入HTML页面,直接输出Java代码值.1.语法规则“<%=”和“%>”之间插入JSP表达式。语法:<%=

表达式%>例如:<%=“<fontsize=4color=red>字体由小变大显示</font>”%>

24JSP2.应用注意事项

不能用“;”号做表达式的结束标志,但是同样的表达式在scriptlet中需要用分号作为结束符;“<%=”是一个完整的标记,中间不能有空格;

表达式元素包括任何在JavaLanguageSpecification(即Java语言规范)中有效的表达式;

有时表达式也可以成为其他JSP元素的属性值。一个表达式可以由一个或多个表达式组成,按从左到右的顺序求值。例:<%=str1%><%=num%><%=str2%><%=MyDate.toLocaleString()%>25JSPJSP脚本段1.JSP脚本元素语法规则

(1)脚本段是一个代码片段,界定在“<%”和“%>”之间,在服务器处理请求过程中被执行。

(2)JSP脚本段可以包含任意行合法脚本语句,在服务器端被脚本引擎编译执行,执行结果嵌入HTML后一起发送到浏览器端。

(3)一个JSP页面可以有多个脚本段,被JSP引擎顺序执行。

(4)在一个脚本段中声明的变量是JSP页面的局部变量,在JSP页面的所有脚本段和表达式部分有效。当脚本段被调用时,局部变量被分配内存空间;调用结束后,局部变量占有的内存空间被释放。在多个用户请求同一个页面时,JSP引擎为每个用户启动一个线程,为不同用户的局部变量分配不同的内存空间,所以某个用户对局部变量的操作,不会影响另一个用户的局部变量。语法:<%代码%>26JSP例如:<% //控制文字大小的循环语句

for(inti=4;i>1;i--)

out.println("<h"+i+">Web技术应用教程</h"+i+">");%>27JSP2.脚本元素的功能

和页面的静态元素(例如HTML或XML)组合在一起生成动态页面。一个Scriptle能够包含多个JSP语句、方法、变量和表达式。

声明将要用到的方法和变量;

编写JSP表达式;

编写JSP语句;

使用任何隐含对象和用<jsp:useBean>声明过对象;

填写任何文本和HTML标记。

显示内容被存放在out对象中。例如:out.println("<h"+i+">Web技术应用基础</h"+i+">")把文字输出到页面上。28JSPJSP基本语法应用案例例7.4:浏览器根据Web服务器系统的时间,向用户显示不同时间段的问候。

29JSPJSP指令JSP指令功能

(1)通知JSP引擎如何处理JSP页面,不直接产生任何可见输出。

(2)“<%@”开始,“%>”结束,<%@pagelanguage=“java”%>。

(3)两个主要的指令是:include和page。其它如:import、errorPage和session也是JSP常用指令。<%@includefile=〝filename.jsp〞%>,指出被包含的文件。<%@pageimport=〝java.util.Date〞%>,指定在哪里找到支持的Java类。<%@pageerrorPage=〝errorPage.jsp〞%>,指出如果发生Java错误事件,将信息发送到哪个错误页面。<%@pagesession=〝true〞%>,指示是否需要为使用者管理会话期的信息。30JSPinclude指令1.include指令应用的语法规则<%@includefile=〝相对位置〞%>或<%@includefile=〝relativeURL〞%>2.include指令功能

加载需要插入的文本或代码,它把文件插入当前位置后合并成一个新的JSP页面,再由JSP引擎转译成Java文件。被插入的文件可以是JSP文件、HTML文件或其他文本文件。31JSP3.include指令应用案例

例5:ex7-05.jsp文件插入ex7-05_1.jsp文件

32JSPpage指令1.page指令功能定义整个JSP文件要使用的属性和属性值,在JSP程序编译时将这些属性传递给JSP引擎。page指令可以用来指定所用所使用的脚本语言、JSP代表的Servlet实现的接口,导入指定的类及软件包等。33JSP2.page指令的语法规则<%@page属性1=〝属性值1〞属性2=〝属性值2〞……%>或<%@page[language="java"][import="{package.class|package.*},…"][extends="package.class"][session="true|false"][buffer="none|8kb|sizekb"][autoFlush="true|false"][isThreadSafe="true|false"][info="text"][errorPage="relativeURL"][contentType="mimeType[;charset=characterSet]"|"text/html;charset=ISO-8859-1"][isErrorPage="true|false"]%>34JSP例:<%@pagelanguage="java"%>//使用的脚本语言是Java<%@pageimport="java.util.*"%>//导入java.util包<%@pagesession="true"%><%@pagecontentType="text/html;charset=gb2312"%><%@pagebuffer="15kb"autoFlash="false"%>//缓冲区15k,溢出时抛出异常<%@pageerrorPage="error.jsp“//定义当前未扑获的异常处理页面35JSPtaglib指令1.功能

定义一个标记库以及标记的前缀。

语法规则<%@taglib

uri="URIToTagLibrary"prefix="tagPrefix"%>(1)声明使用自定义标记,引用标记库,指定库中标记的前缀。例:定义前缀public,前缀public将一个标记库引入到这个页面,并使其值生效。假设该标记库包括一个在本页面使用的loop元素。注意,不能为两个不同的标记库定义同样的前缀。<%@taglib

uri="http:///tags"prefix="public"%><public:loop>……</public:loop>36JSP属性说明:

uri="URIToTagLibrary"UniformResourceIdentifier(URI)根据标记前缀对自定义标记进行唯一的命名,URI可以是以下内容:

UniformResourceLocator(URL)UniformResourceName(URN)

一个相对或绝对路径

prefix=“tagPrefix”自定义标记前的前缀,例如<public:loop>中的public。如果不写public是不合法的。不能使用jsp、jspx、java、javax、servlet、sun和sunw做前缀,这些前缀已经被sun公司声明保留。37JSPJSP指令应用案例例6:

page指令session应用方法,在页面上输出一个sessionID。38JSPJSP动作JSP动作功能

控制JSP引擎的行为,执行标准常用的JSP页面的动作,动态插入文件、重用JavaBeans控件、导向另一个页面、或为Java插件(Plugin)生成HTML代码等。JSP动作使用XML语法格式,例如:<jsp:includepage="bottom.jsp">。动作有:jsp:include:在页面得到请求时包含一个文件;jsp:forward:引导请求者进入新的页面;jsp:plugin:插入一个applet或Bean。39JSPjsp:include动作1.jsp:include动作功能

在即将生成的页面上动态地插入文件,是页面运行时才将文件插入,对被插入文件进行处理。jsp:include动作与include指令的区别:jsp:include动作是动态的,include指令是静态的。jsp:include动作插入文件时,JSP引擎不把插入文件和原JSP文件合并成一个新的JSP文件,在运行时把被插入文件包含进来。

include指令是静态的,把被插入文件插到当前位置后再进行编译。

40JSP2.jsp:include动作语法规则<jsp:includepage="文件名"flush="true"/>或<jsp:includepage="文件名"flush="true"><jsp:paramname="参数名1"value="参数值1"/><jsp:paramname="参数名2"value="参数值2"/>……</jsp:include>(1)page="文件名"

需要插入文件的URL,是相对路径或代表相对路径的表达式。(2)flush=“true”,默认值是false。(3)<jsp:param><jsp:param>子句把一个或多个参数传送到要插入的文件中去,一个页面可以使用多个<jsp:param>传递多个参数。传递参数时,被插入文件用以下语句获取传入的参数:request.getParameter("参数名")41JSP3.应用举例(1)例7:网上书店的新书展示栏目,为每一本新书制作一个文件,每个文件是一本新书介绍,在

代码中插入了4个文件。如果新书书目改变,只需要改变这4个文件中的相关内容就可以了。42JSP(2)例8:

应用<jsp:include>动作插入求阶乘的文件,并把求阶乘所需要的参数传递给原文件。43JSPjsp:forward

动作1.jsp:forward动作功能

停止当前页面的执行,转向到另一个HTML或JSP页面。在执行中JSP引擎不再处理当前页面剩下的内容,缓冲区被清空。使得用户在客户端看到的是A页面的地址,而实际显示的是B页面的内容。forward动作在控制型的JSP页面中经常使用。44JSP3.应用举例(1)例9:将页面从新导向到另一个页面。第一个文件

中的两行文字没有在浏览器中显示,浏览器地址栏目中显示的是第一个文件的URL,而页面显示的是第二个文件的内容。45JSP(2)例7.10:

在用户输入图书信息后,可以有两个选择,如果选择“详细信息”单选钮,单击“确定”按钮后页面导向详细信息页面;如果选择“图书购买”单选钮,则定向到图书购买页面。它由四个程序组成:ex7-10.html:读者登录时在界面中可以选择重新定向的不同页面;ex7-10_1.jsp:判断读者选择的页面,根据读者的选择确定目标页面;ex7-10_2.jsp和ex7-10_3.jsp:目标页面。46JSPjsp:plugin动作1.jsp:plugin动作功能动态下载服务器端的Java小应用程序(Applet)或JavaBean组件到浏览器端去执行,相当于在客户端浏览器插入Java插件。

jsp:plugin动作指定对象是applet还是Bean,同时也会指定字节码文件(.class)的名称与位置。47JSP2.jsp:plugin动作的语法规则<jsp:plugin type="bean|applet" code="保存类的文件名"

codebase="类路径" [name="对象名"] [archive="相关文件路径"] [align="bottom|top|middle|left|right"]//对齐方式

[height="displayPixels"]//高度

[width="displayPixels"]//宽度

[hspace="leftRightPixels"]//水平间距

[vspace="topBottomPixels"]//垂直间距

[jreversion="Java环境版本"] [nspluginurl="供NC使用的plugin加载位置"] [iepluginurl="供IE使用的plugin加载位置"]>

48JSP<jsp:params>

<jsp:paramname="参数名1"

value="参数值1"/><jsp:paramname="参数名2"

value="参数值2"/>……

</jsp:params>[<jsp:fallback>错误信息</jsp:fallback>]</jsp:plugin>49JSP属性:(1)type="bean|applet"

指定\插件对象的类型是Bean还是Applet。(2)code="保存类的文件名"指定要执行的字节码(JavaClass)文件名字。(3)codebase="类路径"JavaClass文件的目录(或是路径),如果没有提供该项属性,那么默认为:使用<jsp:plugin>动作的JSP文件的路径。(4)name="对象名"bean或applet实例的名字,可在JSP其他地方调用。50JSP(5)archive="相关文件路径"

逗号分开的路径名,预装将要使用的class。(6)Align="bottom|top|middle|left|right"图形、对象和Applet的位置:bottom:位于底部;top:位于顶部;middle:位于中间;left:位于左边;right:位于右边。(7)height="displayPixels"width="displayPixels"Applet或Bean的长与宽,以像素为单位。(8)hspace="leftrightPixels"

vspace="topbottomPixels"Applet或Bean在屏幕左、右、上、下需要留下空间,像素为单位。(9)jreversion="Java环境版本"运行Applet或Bean所需要的JaveRuntimeEnvironment(JRE)的版本,默认值是1.1。

51JSP(10)iepluginurl="供IE使用的plugin加载位置"IE用户能够使用的JRE的下载地址,是一个标准的URL。例如,http://www.asp.cm/jsp。(11)<jsp:params> 需要向applet

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论