[精选]JSP网页编程技术.pptx
《[精选]JSP网页编程技术.pptx》由会员分享,可在线阅读,更多相关《[精选]JSP网页编程技术.pptx(192页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JavaServer PagesJSP网页程序设计网页程序设计 1第三讲JSP语法及内置对象n n3.1 3.1 Java基础知识n n3.2JSP语法n n3.3JSP内置对象n n3.4HTML表单n n3.5JSP与客户机的交互n n3.6 3.6 实践:练习实践:练习JSPJSP编程编程23.2JSP语法n n概述n n基本语法3复习JSP的概念nJavaServerPagenServlet简化设计,逻辑与界面设计分开,开发更方便;nHTML语法的java扩展,参加新的标签,;n强大的组件JavaBean支持功能;4JSP文件结构及主要标签.其他 HTML 语言 其他 HTML 语言
2、5JSP例如Hello.jsp%for int i=0;i 你好 你好 你好 6JSP执行过程n*.jsp*.java*.classrequestresponse执行jsp parserJSDKservletservlet分析器7JSPn执行过程8JSP例如Hello_Date.jsp 你好,今天是 号,星期 import java.util.*;response.setContentTypetext/html;charset=gb2312;out=pageContext.getOut;out.write“rnrnrn rn你好,今天是rn;Date today=new Date;out.pr
3、inttoday.getDate;out.write号,星期;out.printtoday.getDay;out.write rn rnrn;JSP文件servlet文件9JSP例如浏览结果10JSP语法概述nJSP原始代码中包含了JSP元素和Template模板data两类nTemplatedata指的是JSP引擎不处理的局部,即标记以外的局部,例如代码中的HTML的内容等,这些数据会直接传送到客户端的浏览器nJSP元素则是指将由JSP引擎直接处理的局部,这一局部必须符合JSP语法,否则会导致编译错误。11jsp例子hi.jspnHi-JSP实验Template dataJSP元素12JSP
4、语法nJSP语法分为三种不同的类型编译器指令DIRECTIVE 例如:脚本语法SCRIPTING动作语法ACTION 例如:,13脚本语法n脚本语法包括n“HTML注释:n“隐藏注释:n“声明n“表达式n“脚本段14编译器指令n编译器指令包括“包含指令,“页指令和“taglib指令n它们包含在“卷标里。n两个主要的指令是page与include。15动作语法n动作语法包括,和。16HTML注释nJSP语法格式如下:n!-ment-或n!-注释-n这种注释发送到客户端,但不直接显示,在源代码中可以查看到。17HTML注释peixun2.1.jspHTML注释未显示上一行的注释。18HTML注释1
5、9HTML注释peixun2.2.jsp要多加练习!-Thispagewasloadedon-在源文件中包括当前时间。20HTML注释21IE中的源程序有注释22隐藏注释nJSP语法格式如下:n不发送到客户端。23隐藏注释peixun2.3.jspAmentTestATestofments24隐藏注释25在IE中查看源代码26声明nJSP语法格式如下:n或n27声明test2.4.jsptest2.4.jsp28表达式n用于在页面上输出信息,语法格式如下:n或n29表达式peixun2.4.jsptest30表达式a=b=c=31peixun2.4.jsp执行结果32脚本段nJSP语法格式如下
6、:n或n33脚本段peixun2.5.jsptest34%condition=1;switchconditioncase0:out.printlnYoumustselectcondition0!+;break;case1:out.printlnYoumustselectcondition1!+;35break;case2:out.printlnYoumustselectcondition2!+;break;default:out.printlnYourselectnotin0,1,2,selectagain!+;%转义符:双引号“,单引号,反斜杠,回车r,换行n,制表符t,退格b36脚本段执行
7、结果37 包含指令ninclude指令:向当前页中插入一个静态文件的内容。nJSP 语法格式如下:n 或n38包含指令peixun2.6.jsp test The current date and time are 39“peixun2.6.1.jsp 40包含指令41Page指令n“Page指令用于定义JSP文件中的全局属性。JSP 语法格式如下:43Page指令n属性:1language=java 声明脚本语言的种类,目前只能用java。2.import=package.class|package.*,.需要导入的Java包的列表,这些包作用于程序段,表达式,以及声明。下面的包在JSP编译
8、时已经导入了,所以就不需要再指明了:java.lang.*javax.servlet.*javax.servlet.jsp.*javax.servlet.*443errorPage=relativeURL 设置处理异常事件的JSP文件。4isErrorPage=true|false 设置此页是否为出错页,如果被设置为true,你就能使用exception对象45page指令详说n“指令作用于整个JSP页面,同样包括静态的包含文件。但是“指令不能作用于动态的包含文件,比方“。n可以在一个页面中用上多个“指令,但是其中的属性只能用一次,不过也有例外,那就是import属性。因为import属性和J
9、ava中的import语句类似参照Java Language,import语句引入得是Java语言中的类,所以此属性就能多用几次。n无论把“指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性,以及好的编程习惯,最好还是把它放在JSP文件的顶部。46page指令peixun2.7.jsp test3Test for using Page.47page指令例子运行结果48taglib指令nJSP语法 n用于引入定制标签库49taglib指令50n2prefix=tagPrefix n表示标签在JSP中的名称。n在 自 定 义 标 签 之 前 的 前 缀,比
10、 方,在中的public,如果这里不写public,那么这就是不合法的。请不要用jsp,jspx,java,javax,servlet,sun,和sunw做为你的前缀,这些已被Sun公司声明保存。51Tablib指令peixun2.8.jsp52 nJSP 语法格式如下:1jsp:forward page=relativeURL|/2jsp:forward page=relativeURL|jsp:param name=parameterName value=parameterValue|/“指可以有多个“标记。53属性:n1、page=relativeURL|n这里是一个表达式或是一个字符串
11、用于说明你将要定向的文件或URL。这个文件可以是JSP,程序段,或者其它能够处理request对象的文件如asp,cgi,php。54n2jsp:param name=parameterName value=parameterValue|/n向一个动态文件发送一个或多个参数,这个文件必须是动态文件。如果想传递多个参数,可以在一个JSP文件中使用多个“;“name指定参数名,“value指定参数值。55注意n“标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象。“标签以后的代码,将不能执行。56例子peixun2.9.jsptest57forwardTo.jsp58运行结果
12、TOMCAT59n包含一个静态或动态文件.nJSP 语法格式如下:1jsp:include page=relativeURL|flush=true/2jsp:include page=relativeURL|flush=true jsp:param name=parameterName value=parameterValue|/“指可以有多个“标记。60的属性1page=relativeURL|参数为一相对路径,或者是代表相对路径的表达式。2flush=true 这里必须使用flush=true,不能使用false值。而缺省值为false。613 jsp:param name=paramet
13、erName value=parameterValue|/“用来传递一个或多个参数到指定的动态文件,能在一个页面中使用多个“来传递多个参数,62例子peixun2.10.jsppeixun.2.10.jsp 63peixun2.10.1.jsp%String username;username=request.getParameterUser;out.printlnUsername is+username+;%64运行结果TOMCAT65n使用“插入一个applet或Bean,必要的话还要下载一个Java插件用于执行它。nnJSP 语法格式如下:67 jsp:param name=parame
14、terName value=parameterValue|/+text message for user 68属性1type=bean|applet 将被执行的插件对象的类型,你必须得指定这个是Bean还是applet,因为这个属性没有缺省值。2code=classFileName 将会被Java插件执行的Java Class的名字,必须以.class结尾。这个文件必须存在于codebase属性指定的目录中。69n3codebase=classFileDirectoryName n将会被执行的Java Class文件的目录或者是路径,如果你没有提供此属性,那么使用的jsp文件的目录将会被使用。
15、nn4name=instanceName n这个Bean或applet实例的名字,它将会在Jsp其它的地方调用。70例子 Unable to load applet 71n创立一个Bean实例并指定它的名字和作用范围。nJSP 语法格式如下:jsp:useBean id=beanInstanceName scope=page|request|session|application class=package.class|72type=package.class|class=package.class type=package.class|beanName=package.class|type=
16、package.class /|other elements 73属性以及用法n1id=beanInstanceNamen在所定义的范围中确认Bean的变量,使之能在后面的程序中使用此变量名来分辨不同的Bean,这个变量名对大小写敏感,必须符合所使用的 脚 本 语 言 的 规 定,这 个 规 定 在 Java Language 标准已经写明。如果Bean已经在别的“标记中创立,则当使用这个已经创立过Bean时,id的值必须与原来的那个id值一致;否则则意味着创立了同一个类的两个不同的对象。74n2scope=page|request|session|application nBean存在的范围
17、以及id变量名的有效范围。缺省值是page,以下是详细说明:npage-能在包含“元素的JSP文件以及此文件中的所有静态包含文件中使用这个Bean,直到页面执行完毕向客户端发回响应或转到另一个文件为止。75nrequest-在任何执行相同请求的Jsp文件中使用这个Bean,直到页面执行完毕向客户端发回响应或转到另一个文件为止。能够使用Request对 象 访 问 这 个 Bean,比 方request.getAttributebeanInstanceName。nsession-从创立Bean开始,就能在任何使用相同session的jsp文件中使用这个Bean。这个Bean存在于整个Sessio
18、n生存周期内,任何在分享此Session的Jsp文件都能使用同一Bean。注意在创立这个Bean的Jsp文件中“指令中必须指定“session=true。76napplication-从创立Bean开始,就能在任何使用相同application的Jsp文件中 使 用 Bean。这 个 Bean存 在 于 整 个application生存周期内,任何在分享此application的 Jsp文 件 都 能 使 用 同 一Bean.77n3class=package.class n使用new关键字以及class构造器从一个class中实例化一个bean。这个class不能是抽象的,必须有一个公用的,
19、没有参数的构造器。这个package的名字区别大小写。n4type=package.class n如果这个Bean已经在指定的范围中存在,那么赋予这个Bean一个的数据开库类型。如果使用type属性的同时没有使用class或beanName,Bean将不会被实例化。注意package和class的名称区分大小写。78n5 beanName=package.class|type=package.class n使用java.beans.Beans.instantiate方法来从一个class或串行化的模板中实例化一个Bean,同时指定Bean的类型。Beans.instantiate方法将检查此名
20、称是否表示一个类或一个串行化模板。如果这个Bean是被串行化的,那么Beans.instantiate方法将通过使用一个类装载器读取串行化格式类似package.class.ser。79nbeanName可以是package和class,也可以 是 表 达 式,它 的 值 会 传 给Beans.instantiate方法。type的值可以和Bean相同,也可以是它的基类,或者是它所实现的接口。package和 class 名字区分大小写。80nJSP 语法格式如下:属性:1name=beanInstanceName bean的名字,由指定。2property=propertyName 所指定的
21、Bean的属性名。81 例子/声明引用的声明引用的beanbeanjsp:useBean class=employee.Calendar/test Calendar of 82n设置Bean的属性值.nJSP 语法格式如下:jsp:setProperty name=beanInstanceName property=*|property=propertyName param=parameterName|property=propertyName value=string|/83属性n1name=beanInstanceName n表示已经在“中创立的Bean实例的名字。n2property=*
22、n储存用户在jsp输入的所有值,用于匹配Bean中的属性。84n3property=propertyName param=parameterName n用一个参数值来指定Bean中的一个属性值,一般情况下是从request对象中获得的。其中property指定Bean的属性名,param指定request中的参数名。85n4property=propertyName value=string|n使用指定的值来设定Bean属性。这个值可以是字符串,也可以是表达式。如果这个字符串,那么它就会被转换成Bean属性的类型转换方法见表4.1。如果是一个表达式,那么它的类型就必须和将要设定的属性值的类型一
23、致。n如果参数值为空值,那么对应的属性值也不会被设定。此外,不能在同一个“中同时使用param和value参数。86packagermg;publicclassstudentprivatelongclassNo;privateStringname;privateintage;privatebooleansexy;publicstudent/构造函数classNo=970431;name=ZZZl;age=34;sexy=true;例:/建立类rmg.student87publiclonggetClassNoreturnclassNo;publicvoidsetClassNolongnothis
24、.classNo=no;publicStringgetNamereturnname;publicvoidsetNameStringnamethis.name=name;88publicintgetAgereturnage;publicvoidsetAgeintagethis.age=age;publicbooleangetSexyreturnsexy;publicvoidsetSexybooleansexythis.sexy=sexy;89 9091第一次运行结果92以后运行结果第一行发生变化93测试session作用域9495运行结果96小结与习题n本局面集中介绍了JSP的各种语法,掌握这些
25、语法使读者进行JSP开发的基本要求,于一般的网页开发不同,JSP对大小写是敏感的,这一点要注意,尤其是对曾使用过其他开发语言的读者。n与Bean相关的几种语法的使用将在“Bean的使用一章中专门进行讲解,因此可对照学习。熟练使用这些语法是必须的,因此读者应该多加练习,观察不同用法所产生的效果上的差异。对于给出的例子最好是自己敲入文件并观察执行结果。n随后的几章将各有重点的讲述与语法相关的一些问题。97习题n1举例说明HTML注释与隐藏注释有何异同。n2试写一个JSP文件,包含所有JSP语法元素n3Scriptlet中应遵循什么样的语法规则?n4元素包含静态文件与包含动态文件处理上有何不同?n5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精选 JSP 网页 编程 技术
限制150内