JavaServerPages(JSP)网页编成设计.ppt
《JavaServerPages(JSP)网页编成设计.ppt》由会员分享,可在线阅读,更多相关《JavaServerPages(JSP)网页编成设计.ppt(196页珍藏版)》请在三一办公上搜索。
1、JavaServer Pages(JSP)网页编成设计,2,第三讲 JSP语法及内置对象,3.1 Java基础知识3.2 JSP语法3.3 JSP内置对象3.4 HTML表单 3.5 JSP与客户机的交互3.6 实践:练习JSP编程,3,3.2 JSP语法,概述基本语法,4,复习JSP的概念,Java Server PageServlet简化设计,逻辑与界面设计分开,开发更方便;HTML语法的 java 扩展,加入新的标签(,);强大的组件(Java Bean)支持功能;,5,JSP文件结构及主要标签,.其他 HTML 语言 其他 HTML 语言,6,JSP示例(Hello.jsp),你好,你
2、好 你好,7,JSP执行过程,*.jsp,*.java,*.class,servlet,servlet 分析器,8,JSP,执行过程,9,JSP示例(Hello_Date.jsp),你好,今天是 号,星期,import java.util.*;response.setContentType(text/html;charset=gb2312);out=pageContext.getOut();out.write(“rnrnrn rn你好,今天是rn);Date today=new Date();out.print(today.getDate();out.write(号,星期);out.print
3、(today.getDay();out.write(rn rnrn);,JSP文件,servlet文件,10,JSP示例(浏览结果),11,JSP语法概述,JSP原始代码中包含了JSP元素和Template(模板)data两类 Template data指的是JSP引擎不处理的部分,即标记以外的部分,例如代码中的HTML的内容等,这些数据会直接传送到客户端的浏览器JSP元素则是指将由JSP引擎直接处理的部分,这一部分必须符合JSP语法,否则会导致编译错误。,12,jsp例子(hi.jsp),Hi-JSP实验,Template data,JSP元素,13,JSP语法,JSP语法分为三种不同的类型
4、,编译器指令(DIRECTIVE)例如:,脚本语法(SCRIPTING),动作语法(ACTION)例如:,,14,脚本语法,脚本语法包括“HTML注释”:“隐藏注释”:“声明”“表达式”“脚本段”,15,编译器指令,编译器指令包括“包含指令”,“页指令”和“taglib指令”它们包含在“”卷标里。两个主要的指令是page与include。,16,动作语法,动作语法包括,和。,17,HTML注释,JSP 语法格式如下:-或-这种注释发送到客户端,但不直接显示,在源代码中可以查看到。,18,HTML注释(),HTML注释 未显示上一行的注释。,19,HTML注释,20,HTML注释(peixun2
5、.2.jsp),要多加练习-在源文件中包括当前时间。,21,HTML注释,22,IE中的源程序有注释,23,隐藏注释,JSP 语法格式如下:不发送到客户端。,24,隐藏注释(peixun2.3.jsp),A Comment Test A Test of Comments,25,隐藏注释,26,在IE中查看源代码,27,声明,JSP 语法格式如下:或,28,声明(test2.4.jsp),test2.4.jsp,29,表达式,用于在页面上输出信息,语法格式如下:或,30,表达式(peixun2.4.jsp),test,31,表达式,a=b=c=,32,执行结果,33,脚本段,JSP 语法格式如下
6、:或,34,脚本段(peixun2.5.jsp),test,35,);break;case 1:out.println(You must select condition 1!+);,36,break;case 2:out.println(You must select condition 2!+);break;default:out.println(Your select not in 0,1,2,select again!+);%转义符:双引号“,单引号,反斜杠,回车r,换行n,制表符t,退格b,37,脚本段执行结果,38,包含指令,include指令:向当前页中插入一个静态文件的内容。J
7、SP 语法格式如下:或,39,包含指令(peixun2.6.jsp),test The current date and time are,40,“peixun2.6.1.jsp”,41,包含指令,42,Page指令,“Page”指令用于定义JSP文件中的全局属性。JSP 语法格式如下:%page language=java extends=package.class import=package.class|package.*,.session=true|false buffer=none|8kb|sizekb,43,Page指令,autoFlush=true|false isThreadS
8、afe=true|false info=text errorPage=relativeURL contentType=mimeType;charset=characterSet|text/html;charset=ISO-8859-1 isErrorPage=true|false%,44,Page指令,属性:1language=java 声明脚本语言的种类,目前只能用java。2.import=package.class|package.*,.需要导入的Java包的列表,这些包作用于程序段,表达式,以及声明。下面的包在JSP编译时已经导入了,所以就不需要再指明了:java.lang.*java
9、x.servlet.*.*.*,45,3errorPage=relativeURL 设置处理异常事件的JSP文件。4isErrorPage=true|false 设置此页是否为出错页,如果被设置为true,你就能使用exception对象,46,page指令详说,“”指令作用于整个JSP页面,同样包括静态的包含文件。但是“”指令不能作用于动态的包含文件,比如“”。可以在一个页面中用上多个“”指令,但是其中的属性只能用一次,不过也有例外,那就是import属性。因为import属性和Java中的import语句类似(参照Java Language,import语句引入得是Java语言中的类),所
10、以此属性就能多用几次。无论把“”指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性,以及好的编程习惯,最好还是把它放在JSP文件的顶部。,47,page指令(peixun2.7.jsp),test3Test for using Page.,48,page指令例子运行结果,49,taglib指令,JSP语法 用于引入定制标签库,50,taglib指令,属性1uri=URIToTagLibrary Uniform Resource Identifier(URI)根据标签的前缀对自定义的标签进行唯一的命名,URI可以是以下的内容:Uniform Resour
11、ce Locator(URL),由 RFC 2396 定义,可以从以下位置查看(http:/jkorpela/rfc/2396/full.html)。Uniform Resource Name(URN),由 RFC 2396定义 一个相对或绝对的路径 可以是标签库描述文件,51,2prefix=tagPrefix 表示标签在JSP中的名称。在自定义标签之前的前缀,比如,在中的public,如果这里不写public,那么这就是不合法的。请不要用jsp,jspx,java,javax,servlet,sun,和sunw做为你的前缀,这些已被Sun公司声明保留。,52,Tablib指令(peixun
12、2.8.jsp),test,53,JSP 语法格式如下:1/2/(“”指可以有多个“”标记。),54,属性:,1、page=relativeURL|这里是一个表达式或是一个字符串用于说明你将要定向的文件或URL。这个文件可以是JSP,程序段,或者其它能够处理request对象的文件(如asp,cgi,php)。,55,2/向一个动态文件发送一个或多个参数,这个文件必须是动态文件。如果想传递多个参数,可以在一个JSP文件中使用多个“”;“name”指定参数名,“value”指定参数值。,56,注意,“”标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象。“”标签以后的代码,
13、将不能执行。,57,例子(peixun2.9.jsp),test,58,forwardTo.jsp,59,运行结果(TOMCAT),60,包含一个静态或动态文件.JSP 语法格式如下:1 flush=true/2 flush=true/(“”指可以有多个“”标记。),61,的属性,1page=relativeURL|参数为一相对路径,或者是代表相对路径的表达式。2flush=true 这里必须使用flush=true,不能使用false值。而缺省值为false。,62,3/“”用来传递一个或多个参数到指定的动态文件,能在一个页面中使用多个“”来传递多个参数,,63,例子(),peixun.2.
14、10.jsp,64,);%,65,运行结果(TOMCAT),66,使用“”插入一个applet或Bean,必要的话还要下载一个Java插件用于执行它。JSP 语法格式如下:jsp:plugin type=bean|applet code=classFileName codebase=classFileDirectoryName,67,name=instanceName archive=URIToArchive,.align=bottom|top|middle|left|right height=displayPixels width=displayPixels hspace=leftRight
15、Pixels vspace=topBottomPixels jreversion=JREVersionNumber|1.1 nspluginurl=URLToPlugin iepluginurl=URLToPlugin,68,/+text message for user,69,属性,1type=bean|applet 将被执行的插件对象的类型,你必须得指定这个是Bean还是applet,因为这个属性没有缺省值。2code=classFileName 将会被Java插件执行的Java Class的名字,必须以.class结尾。这个文件必须存在于codebase属性指定的目录中。,70,3cod
16、ebase=classFileDirectoryName 将会被执行的Java Class文件的目录(或者是路径),如果你没有提供此属性,那么使用的jsp文件的目录将会被使用。4name=instanceName 这个Bean或applet实例的名字,它将会在Jsp其它的地方调用。,71,例子,Unable to load applet,72,创建一个Bean实例并指定它的名字和作用范围。JSP 语法格式如下:jsp:useBean id=beanInstanceName scope=page|request|session|application class=package.class|,7
17、3,type=package.class|class=package.class type=package.class|beanName=package.class|type=package.class/|other elements,74,属性以及用法,1id=beanInstanceName在所定义的范围中确认Bean的变量,使之能在后面的程序中使用此变量名来分辨不同的Bean,这个变量名对大小写敏感,必须符合所使用的脚本语言的规定,这个规定在Java Language 规范已经写明。如果Bean已经在别的“”标记中创建,则当使用这个已经创建过Bean时,id的值必须与原来的那个id值一致
18、;否则则意味着创建了同一个类的两个不同的对象。,75,2scope=page|request|session|application Bean存在的范围以及id变量名的有效范围。缺省值是page,以下是详细说明:page-能在包含“”元素的JSP文件以及此文件中的所有静态包含文件中使用这个Bean,直到页面执行完毕向客户端发回响应或转到另一个文件为止。,76,request-在任何执行相同请求的Jsp文件中使用这个Bean,直到页面执行完毕向客户端发回响应或转到另一个文件为止。能够使用Request对象访问这个Bean,比如request.getAttribute(beanInstanceNa
19、me)。session-从创建Bean开始,就能在任何使用相同session的jsp文件中使用这个Bean。这个Bean存在于整个Session生存周期内,任何在分享此Session的Jsp文件都能使用同一Bean。注意在创建这个Bean的Jsp文件中“”指令中必须指定“session=true”。,77,application-从创建Bean开始,就能在任何使用相同application的Jsp文件中使用Bean。这个Bean存在于整个application生存周期内,任何在分享此application的Jsp文件都能使用同一Bean.,78,3class=package.class 使用n
20、ew关键字以及class构造器从一个class中实例化一个bean。这个class不能是抽象的,必须有一个公用的,没有参数的构造器。这个package的名字区别大小写。4type=package.class 如果这个Bean已经在指定的范围中存在,那么赋予这个Bean一个的数据开库类型。如果使用type属性的同时没有使用class或beanName,Bean将不会被实例化。注意package和class的名称区分大小写。,79,5beanName=package.class|type=package.class 使用方法来从一个class或串行化的模板中实例化一个Bean,同时指定Bean的类
21、型。Beans.instantiate方法将检查此名称是否表示一个类或一个串行化模板。如果这个Bean是被串行化的,那么Beans.instantiate方法将通过使用一个类装载器读取串行化格式(类似)。,80,beanName可以是package和class,也可以是表达式,它的值会传给Beans.instantiate方法。type的值可以和Bean相同,也可以是它的基类,或者是它所实现的接口。package和 class 名字区分大小写。,81,JSP 语法格式如下:属性:1name=beanInstanceName bean的名字,由指定。2property=propertyName
22、所指定的Bean的属性名。,82,例子,/声明引用的beantest Calendar of,83,设置Bean的属性值.JSP 语法格式如下:/,84,属性,1name=beanInstanceName 表示已经在“”中创建的Bean实例的名字。2property=*储存用户在jsp输入的所有值,用于匹配Bean中的属性。,85,3property=propertyName param=parameterName 用一个参数值来指定Bean中的一个属性值,一般情况下是从request对象中获得的。其中property指定Bean的属性名,param指定request中的参数名。,86,4pr
23、operty=propertyName value=string|使用指定的值来设定Bean属性。这个值可以是字符串,也可以是表达式。如果这个字符串,那么它就会被转换成Bean属性的类型(转换方法见表4.1)。如果是一个表达式,那么它的类型就必须和将要设定的属性值的类型一致。如果参数值为空值,那么对应的属性值也不会被设定。此外,不能在同一个“”中同时使用param和value参数。,87,package rmg;public class student private long classNo;private String name;private int age;private boolea
24、n sexy;public student()/构造函数 classNo=970431;name=ZZZl;age=34;sexy=true;,例:/建立类rmg.student,88,public long getClassNo()return classNo;public void setClassNo(long no)this.classNo=no;public String getName()return name;public void setName(String name)this.name=name;,89,public int getAge()return age;publi
25、c void setAge(int age)this.age=age;public boolean getSexy()return sexy;public void setSexy(boolean sexy)this.sexy=sexy;,90,91,92,第一次运行结果,93,以后运行结果,第一行发生变化,94,测试session作用域,95,96,运行结果,97,小结与习题,本局面集中介绍了JSP的各种语法,掌握这些语法使读者进行JSP开发的基本要求,于一般的网页开发不同,JSP对大小写是敏感的,这一点要注意,尤其是对曾使用过其他开发语言的读者。与Bean相关的几种语法的使用将在“Bean
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaServerPages JSP 网页 编成 设计
链接地址:https://www.31ppt.com/p-5435998.html