资源预览内容
第1页 / 共34页
第2页 / 共34页
第3页 / 共34页
第4页 / 共34页
第5页 / 共34页
第6页 / 共34页
第7页 / 共34页
第8页 / 共34页
第9页 / 共34页
第10页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
JSP的页面元素的页面元素vJSP页面主要包含三种页面主要包含三种JSP元素:元素:JSP代码:代码:嵌入在嵌入在JSP页面中的页面中的Java代码代码JSP指令:指令:告诉告诉JSP引擎如何处理代码引擎如何处理代码JSP动作:动作:控制控制JSP引擎的动作引擎的动作5.1 JSP代码代码vJSPJSP代码分为两种代码分为两种1.变量和方法的声明变量和方法的声明 示例:书上示例:书上P70P70页页语法:语法:% % 或或 %! % 注意:在注意:在JSPJSP页面中声明的变量和方法可以理页面中声明的变量和方法可以理解为一个普通解为一个普通javajava类中的类的属性和方法。类中的类的属性和方法。让我们回到让我们回到P52P52页的页的echo2.htmecho2.htm和和echo22.jspecho22.jsp,请查看请查看echo22.jspecho22.jsp编译后编译后echo22_jsp.java !echo22_jsp.java !2. 用用包含的包含的Java代码代码例如:例如:% out.println(“test”);%5.1 JSP代码代码5.2.1 page指令指令vpagepage指令指令定义定义JSPJSP文件的全局属性。由文件的全局属性。由%构成。构成。vpagepage命令的参数包括:命令的参数包括:language extends import language extends import errorPageerrorPageisErrorPage contentType isThreadSafeisErrorPage contentType isThreadSafesessionsession 注意:这些参数的名称是区别大小写的。注意:这些参数的名称是区别大小写的。中间不能有空格中间不能有空格language= =“Script languageScript language”指定指定JSPJSP使用使用的脚本语言,目前基本上是的脚本语言,目前基本上是JavaJava语言。语言。% page language=%extends = = “classnameclassname”指明转换后指明转换后ServletServlet的父类,但必须是的父类,但必须是javaxjavax. .servletservlet. .jspjsp. .HttpJspHttpJspBaseBase的子类,一般不需要设置。的子类,一般不需要设置。% page extends =%当前当前JSPJSP页面继承页面继承mypackagemypackage包的包的myclassmyclass类。类。5.2.1 page指令指令vimport属性属性用来说明在后面代码中将会用到用来说明在后面代码中将会用到的类和接口。如果需要载入多个包,需用的类和接口。如果需要载入多个包,需用importimport分别指明,之间用逗号隔开。分别指明,之间用逗号隔开。% page import=%也可用两行分别说明也可用两行分别说明: :% page import=% page import=%5.2.1 page指令指令v注意:有些类是默认被载入当前注意:有些类是默认被载入当前JSP页面,页面,这些类列举如下:这些类列举如下:java.lang.*;javax.servlet.*;javax.servlet.jsp.*;javax.servlet.http.*;5.2.1 page指令指令verrorPage属性指定当本页面发生异常时转属性指定当本页面发生异常时转去指定的去指定的JSP文件来处理。文件来处理。% page %visErrorPage= =“true|falsetrue|false” isErrorPageisErrorPage属性指明该页面是否为异常处属性指明该页面是否为异常处理页面,默认为理页面,默认为falsefalse(不是)。如果设置为不是)。如果设置为truetrue就可以用就可以用exceptionexception对象。对象。案例:案例: 书上书上P72P72页,使用页,使用errorPageerrorPage属性处理异常。属性处理异常。5.2.1 page指令指令vcontentType属性用来设定传回网页的文件属性用来设定传回网页的文件格式和编码方式,注意大小写,默认值如下:格式和编码方式,注意大小写,默认值如下:% page 8859-1%当提交的信息中有中文时,接收后要进行编码转换,当提交的信息中有中文时,接收后要进行编码转换,所以还要加上:所以还要加上:% request.);%才能完全解决中文问题。才能完全解决中文问题。5.2.1 page指令指令visThreadSafe= =“true|falsetrue|false” 指定指定JSPJSP页面是页面是否能多线程使用。默认为否能多线程使用。默认为truetrue,JSPJSP页面能同页面能同时处理多个用户的请求;如果设置为时处理多个用户的请求;如果设置为falsefalse,一个一个JSPJSP只能一次处理一个请求。只能一次处理一个请求。vsession = =“true|falsetrue|false” 指定当前页面是指定当前页面是否允许否允许sessionsession操作。默认为操作。默认为truetrue( (允许允许) )。5.2.1 page指令指令vinclude指令指令向当前页面插入一个静态文件,向当前页面插入一个静态文件,这个静态文件可以是这个静态文件可以是htmlhtml文件,文件,jspjsp文件,也文件,也可以是其它文本文件。语法如下:可以是其它文本文件。语法如下: % include file= %这里的这里的URLURL就是存放文件的相对路径。就是存放文件的相对路径。注意:注意:对于有些版本,对于有些版本,如果插入的静态文件的如果插入的静态文件的内容内容被被修改,该修改,该JSPJSP页面页面要被重新编译要被重新编译,否则否则运行该运行该JSPJSP页面的结果不会改变。页面的结果不会改变。具体与你的具体与你的配置有关。配置有关。5.2.2 include指令指令v案例:书上案例:书上P77P77页页 使用使用include指令指令实现页面导航。实现页面导航。 public.htm include.jsp说明:由于网站的主导航栏往往是统一的,说明:由于网站的主导航栏往往是统一的,所以主导航栏一般单独写成一张网页,然后插所以主导航栏一般单独写成一张网页,然后插入到其它页面,或者结合框架结构与其它网页入到其它页面,或者结合框架结构与其它网页组合。组合。5.2.2 include指令指令5.3 JSP动作动作 动动 作作功功 能能 说说 明明加载加载JSP或或HTML页面页面网页重新定向网页重新定向设置发送参数设置发送参数使用使用JavaBean设置设置JavaBean的属性值的属性值取得取得JavaBean的属性值的属性值加载加载Applet或或Javabean5.3.1 jsp:include动作动作 vjsp:include动作用于在当前的动作用于在当前的JSP页面加入页面加入静态和动态的文件。静态和动态的文件。v比较两个概念:比较两个概念:静态包含:静态包含:包含时仅仅把包含的文件内容加到包含时仅仅把包含的文件内容加到 JSP页面。页面。动态包含:动态包含:包含文件会被包含文件会被JSP编译器执行,还编译器执行,还 可以用可以用传递参数。传递参数。5.3.1 jsp:include动作动作 v比较比较include指令指令静态包含文件静态包含文件include动作动作静态或动态包含文件静态或动态包含文件inclue指令指令语法:语法: include动作动作语法:语法: 或者或者include动作还可以传递参数:动作还可以传递参数:v程序示例:程序示例: include动作传递参数动作传递参数 include_param.jsp param.jsp bg.htm5.3.1 jsp:include动作动作 include动作传递参数动作传递参数vjsp:forward 动作是把当前动作是把当前JSP页面重导到另页面重导到另一个页面上,用户看到的地址是当前页面的地一个页面上,用户看到的地址是当前页面的地址,而内容却是另一个页面的。语法如下:址,而内容却是另一个页面的。语法如下:或者或者5.3.2 jsp:forward动作动作 v程序示例:书上程序示例:书上P79-82页页 1. 使用使用forward指令实现页面间的跳转指令实现页面间的跳转 disp.htm forward.jsp 2. forward动作传递参数动作传递参数5.3.2 jsp:forward动作动作 forward_param.jsp param.jsp bg.htm3. forward动态跳转到相应页面。动态跳转到相应页面。select.htm control.jsp j1.jsp j2.jsp5.3.3 jsp:param动作动作 vjsp:param动作用来传递参数给动作用来传递参数给JSP页面。页面。 v在在jsp页面中如下取得参数值页面中如下取得参数值 request.getParameter(“参数名称参数名称”);vjsp:param动作必须配合动作必须配合, 一起使用。一起使用。v案例:案例: param动作的使用动作的使用 forward-param.jsp forforward.jspvjsp:useBean动作在动作在JSP页面载入并使用一页面载入并使用一个个JavaBean,并设定它的并设定它的id和使用范围。和使用范围。v什么是什么是JavaBean? JavaBean的的实质是一个实质是一个Java类。简单地说,类。简单地说,它是通过一对它是通过一对set/get方法对外提供了对特定方法对外提供了对特定属性的读写接口的类。若只提供了属性的读写接口的类。若只提供了set方法,方法,则该属性为只写,若仅提供了则该属性为只写,若仅提供了get方法,则该方法,则该属性为只读。属性为只读。5.3.4 jsp:useBean动作动作 定义定义JavaBean的几点要求:的几点要求:1.该类必须是该类必须是 public类。类。2.set方法和方法和get方法的名称有要求:方法的名称有要求: 若属性名为若属性名为 addr,则相应的则相应的set方法名称为方法名称为setAddr,而而get方法的名称为方法的名称为getAddr.见见P84案例中的案例中的 Person.java.3.该类的第该类的第1行必须定义所在的包。行必须定义所在的包。要使用该要使用该Bean,编译后的编译后的.class文件必须放在指定文件必须放在指定目录下。目录下。动作的语法格式:动作的语法格式:理解:理解:JavaBean就相当于一个就相当于一个Java的类,的类,useBean动作就是创建或者声明一个该类的动作就是创建或者声明一个该类的对象。对象。注意:注意:把整个包放在把整个包放在WEB-INF/classes下。下。id:指明代表指明代表JavaBean对象的变量名。在后面程对象的变量名。在后面程序中可通过该变量名来分辨不同的序中可通过该变量名来分辨不同的JavaBean。注意:注意: 如果如果JavaBean已经在别的已经在别的标记中创建,当使用这个已经创建过的标记中创建,当使用这个已经创建过的Bean对对象时,象时,id的值必须和原来的的值必须和原来的id值一致值一致,否则意,否则意味着创建了一个类的两个不同对象。味着创建了一个类的两个不同对象。5.3.4 jsp:useBean动作动作 5.3.4 jsp:useBean动作动作 scope: 指定指定JavaBean的使用范围,缺省为的使用范围,缺省为page。取值:取值:page | request | session | applicationpage: Bean能在包含能在包含动作的动作的JSP文件及此文件所静态包含的所有文件中使用,文件及此文件所静态包含的所有文件中使用,若转到下个网页或是用户单击若转到下个网页或是用户单击“刷新刷新”按钮,则按钮,则结束。结束。也不能用在也不能用在或或所指所指明的页面中。明的页面中。request: 在任何执行相同请求的在任何执行相同请求的JSP文件中使用这文件中使用这个个Bean,直到页面执行完毕向客户端发回响直到页面执行完毕向客户端发回响应,或转到另一个文件为止。应,或转到另一个文件为止。即:即:对本页面的其余部分和通过对本页面的其余部分和通过或或行为服务于此行为服务于此请求的任意其它资源有效。请求的任意其它资源有效。例如例如: 在浏览器的地址栏中输入一个网址在浏览器的地址栏中输入一个网址, 就是就是向相应的服务器发出一个请求。向相应的服务器发出一个请求。5.3.4 jsp:useBean动作动作 session: 从创建从创建Bean开始,就能在任何使用相同开始,就能在任何使用相同session的的JSP文件中使用这个文件中使用这个Bean。Bean的有效期同的有效期同session(用户会话)的生存期。用户会话)的生存期。注意:注意:要在创建这个要在创建这个Bean的的JSP文件,把文件,把指令中的指令中的session设定为设定为true。5.3.4 jsp:useBean动作动作 application: 从创建从创建Bean开始,就能在同一个开始,就能在同一个WEB应用应用的所有的所有JSP页面中使用这个页面中使用这个Bean。Bean的有效期同的有效期同application的生存期,从服的生存期,从服务器启动务器启动服务器终止。服务器终止。5.3.4 jsp:useBean动作动作 3.“package.class” 指定指定Bean的包名和类名,该类不能是一个抽的包名和类名,该类不能是一个抽象类象类,且该类必须是且该类必须是public的。的。4.type 指定引用该指定引用该Bean对象的变量的类型对象的变量的类型,它必,它必须是须是Bean类的名字,超类的名字,该类所实现类的名字,超类的名字,该类所实现的接口之一。的接口之一。变量名是由变量名是由id指定的指定的。5. BeanName 指定指定Bean的名字的名字。如果提供了。如果提供了type属性和属性和BeanName属性,属性,class属性可以省略。属性可以省略。5.3.4 jsp:useBean动作动作 5.3.5 jsp:setProperty1.作用:作用:设置设置bean的属性值。的属性值。2.属性:属性:1)name:表示要设置的表示要设置的Bean对象名称。对象名称。(必须必须)2)property:表示要设置的表示要设置的Bean的属性。当的属性。当property=“*”,表示所有名字和表示所有名字和Bean属性名字属性名字匹配的请求参数都将被传递给相应属性的匹配的请求参数都将被传递给相应属性的set方方法。法。 (必须必须)5.3.5 jsp:setProperty2.属性:属性:3)value:可选,指定可选,指定Bean属性的值。属性的值。lvalue=“字符串字符串” ,那么它会通过标准的,那么它会通过标准的valueOf方法自动转换成方法自动转换成Bean属性的类型。属性的类型。lvalue值还可以是表达式:值还可以是表达式: value=“”注意:如果注意:如果value是个表达式,那么它的类型是个表达式,那么它的类型必须与必须与Bean中要设定的属性的类型一致。中要设定的属性的类型一致。5.3.5 jsp:setProperty2.属性:属性: 4) param:可选,指定使用哪个请求参数作为可选,指定使用哪个请求参数作为Bean属性的值。如果当前没有请求参数,则什属性的值。如果当前没有请求参数,则什么也不做,不会把么也不做,不会把null传给传给Bean属性的属性的set方方法。法。 param=“表单参数名称表单参数名称” 。注意:注意:value和和param不能同时使用,可以使不能同时使用,可以使用其中任何一个。用其中任何一个。3.描述描述 动作使用动作使用Bean给定的给定的set方法,在方法,在Bean中设置一个或多个属性值,中设置一个或多个属性值,在使用这个动作前要先使用在使用这个动作前要先使用,在在动作中的动作中的name值应当和值应当和中的中的id相同。相同。 能使用多种方法利用能使用多种方法利用来来设定属性值。设定属性值。5.3.5 jsp:setProperty1) 2) 3) 说明:说明:1)通过用户输入的所有值来匹配)通过用户输入的所有值来匹配Bean的属性。的属性。2)通过用户输入的值来匹配)通过用户输入的值来匹配Bean中指定的属性。中指定的属性。3)在运行时通过一个表达式来匹配)在运行时通过一个表达式来匹配Bean的属性。的属性。 value=5.3.5 jsp:setProperty 动作将获得动作将获得Bean的属的属性值,转换成字符串,并输出。在使用它以前性值,转换成字符串,并输出。在使用它以前必须先用必须先用来创建来创建Bean。1.属性属性1)name=“BeanName”,与与useBean中的中的id一致一致2) property=“ Bean的属性名的属性名”,表示要提取,表示要提取哪哪个属性的值。个属性的值。2. 程序示例:程序示例:5.3.6 jsp:getPropertyset_getProperty动作动作
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号