第3章 JSP语法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第三章JSP语法本章结构:了解JSP的基本构成JSP的指令标识JSP的脚本标识JSP的注释动作标识23.1了解JSP的基本构成JSP中的指令标识HTML标记语言嵌入的Java代码片段JSP表达式3!--JSP中的指令标识--%@pagelanguage=javacontentType=text/html;charset=gb2312%%@pageimport=java.util.Date%!--HTML标记语言--htmlheadtitleJSP页面的基本构成/title/headbodycenter!--嵌入的Java代码--%Stringtoday=newDate().toLocaleString();%!--JSP表达式--今天是:%=today%!--HTML标记语言--/center/body/html43.1.1JSP中的指令标识利用JSP指令可以使服务器按照指令的设置来执行动作和设置在整个JSP页面范围内有效的属性。3.1.2HTML标记语言%@pagelanguage=javacontentType=text/html;charset=gb2312%指定了在该页面中编写JSP脚本使用的语言为Java,并且还指定了页面响应的MIME类型和JSP字符的编码。HTML标记在JSP页面中作为静态的内容,主要负责页面的布局、设计和美观,可以说是网页的框架。53.1.3嵌入的Java代码片段嵌入到JSP页面中的Java代码,在客户端浏览器中是不可见的。它们需要被服务器执行,然后由服务器将执行结果与HTML标记语言一同发送给客户端进行显示。通过向JSP页面中嵌入Java代码,可以使该页面生成动态的内容。3.1.4JSP表达式JSP表达式主要用于数据的输出。它可以向页面输出内容以显示给用户,还可以用来动态地指定HTML标记中属性的值。63.2JSP的指令标识使用page指令使用include指令使用taglib指令指令标识在客户端是不可见的,它是被服务器解释并被执行的。通过指令标识可以使服务器按照指令的设置来执行动作和设置在整个JSP页面范围内有效的属性。在一个指令中可以设置多个属性,这些属性的设置可以影响到整个页面。%@指令名称属性1=属性值属性2=属性值…%73.2.1使用page指令page指令即页面指令,可以定义在整个JSP页面范围内有效的属性和相关功能。%@pageattribute1=value1attribute2=value2…%Page指令中除import属性外,其他属性只能在指令中出现一次。注意:Page指令对整个JSP页面起作用,也包含静态的包含文件。但是不能作用于动态的被包含文件。8%@page[language=java][contentType=mimeType;charset=CHARSET][import={package.class|pageage.*},…][extends=package.class][session=true|false][buffer=none|8kb|sizekb][autoFlush=true|false][isThreadSafe=true|false][info=text][errorPage=relativeURL][isErrorPage=true|false][isELIgnored=true|false][pageEncoding=CHARSET]%9language属性:设置当前页面中编写JSP脚本使用的语言,默认值为java,目前只能设置为Java。%@pagelanguage=java%contentType属性:设置页面响应的MIME类型,通常被设置为text/html。%@pagecontentType=text/html%在该属性中还可以设置JSP字符的编码。默认的编码为ISO-8859-1。%@pagecontentType=text/html;charset=gb2312%10import属性:类似于Java中的import语句,用来向JSP文件中导入需要用到的包。在Page指令中可多次使用该属性来导入多个包。%@pageimport=java.util.*%%@pageimport=java.text.*%或者通过逗号间隔,来导入多个包。%@pageimport=java.util.*,java.text.*%在JSP中已经默认导入了以下包:java.lang.*javax.servlet.*javax.servlet.jsp.*javax.servlet.http.*11若要在页面中使用编写的JavaBean,也可通过import属性来导入。还可以通过jsp:useBean动作标识来创建一个JavaBean实例进行调用。extends属性:用于指定将一个JSP页面转换为Servlet后继承的类。在JSP中通常不会设置该属性。session属性:该属性默认值为true,表示当前页面支持session,设为false表示不支持session。12buffer属性:该属性用来设置out对象(JspWriter类对象)是否使用缓冲区。若设置为none,表示不使用缓存,而直接通过PrintWriter对象进行输出;如果将该属性指定为数值,则输出缓冲区的大小不应小于该值,默认值为8KB(因不同的服务器而不同,但大多数情况下都为8KB)。autoFlush属性:该属性默认值为true,表示当缓冲区已满时,自动将其中的内容输出到客户端。如果设为false,则当缓冲区中的内容超出其设置的大小时,会产生“JSPBufferoverflow”溢出异常。注意:若buffer属性设为none,则autoFlush不能设为false。13isThreadSafe属性:默认值为true,表示当前JSP页面被转换为Servlet后,会以多线程的方式来处理来自多个用户的请求;如果设为false,则转换后的Servlet会实现SigleThreadModel接口,该Servlet将以单线程的方式来处理用户请求,即其他请求必须等待直到前一个请求处理结束。info属性:可设置为任意字符串,如当前页面的作者或其他有关的页面信息。可通过Servlet.getServletInfo()方法来获取设置的字符串。%@pageinfo=Thisisindex.jsp!%%=this.getServletInfo()%14errorPage属性:用来指定一个当前页面出现异常时所要调用的页面。如果属性值是以“/”开头的路径,则将在当前应用程序的根目录下查找文件;否则,将在当前页面的目录下查找文件。isErrorPage属性:将该属性值设为true,此时在当前页面中可以使用exception异常对象。若在其他页面中通过errorPage属性指定了该页面,则当前者出现异常时,会跳转到该页面,并可在该页面中通过exception对象输出错误信息。相反,如果将该属性设置为false,则在当前页面中不能使用exception对象。该属性默认值为false。【例3-1】errorPage属性及isErrorPage属性的应用15isELIgnored属性:通过该属性的设置,可以使JSP容器忽略表达式语言“${}”。其值只能为true或false。设为true,则忽略表达式语言。pageEncoding属性:该属性用来设置JSP页面字符的编码。默认值为ISO-8859-1。3.2.2使用include指令该指令用于在当前的JSP页面中,在当前使用该指令的位置嵌入其他的文件,如果被包含的文件中有可执行的代码,则显示代码执行后的结果。%@includefile=文件的绝对路径或相对路径%16file属性:指定被包含的文件,该属性不支持任何表达式,也不允许通过如下的方式来传递参数。%@includefile=welcome.jsp?name=yxq%如果该属性值以“/”开头,那么指定的是一个绝对路径,将在当前应用的根目录下查找文件;如果是以文件名称或文件夹名开头,那么指定的是一个相对路径,将在当前页面的目录下查找文件。17例如:LOGO图片区:top.jsp侧栏:left.jsp内容显示区:main.jsp页尾:end.jsp%@pagecontentType=text/html;charset=gb2312%tabletrtdcolspan=2%@includefile=top.jsp%/td/trtrtd%@includefile=“left.jsp%/tdtd在这里对内容显示区进行编码/td/trtrtdcolspan=2%@includefile=end.jsp%/td/tr/table183.2.3使用taglib指令taglib指令用于指示这个JSP页面所使用的标签库。%@tagliburi=tagURIprefix=tagPrefix%uri属性:指定了标签描述符,该描述符是一个对标签描述文件(*.tld)的映射。在tld标签描述文件中定义了该标签库中的各个标签名称,并为每个标签指定一个标签处理类。prefix属性:指定一个在页面中使用由uri属性指定的标签库的前缀。前缀不能命名为jsp、jspx、java、javax、sun、servlet和sunw。开发者可通过前缀来引用标签库中的标签。193.3JSP的脚本标识JSP表达式(Expression)声明标识(Declaration)脚本程序(Scriptlet)3.3.1JSP表达式(Expression)表达式用于向页面中输出信息,其使用格式为:%=变量或可以返回值的方法或Java表达式%特别注意:“%”与“=”之间不要有空格,结束没有分号。20JSP表达式可以应用到以下几种情况:(1)向页面输出内容,例如下面的代码:%Stringname=用户名:%=name%运行该段代码将显示:用户名:(2)生成动态的链接地址,例如下面的代码:%Stringpath=welcome.jsp;%ahref=%=path%链接到welcom.jsp/a运行该段代码将生成下面的HTML代码:ahref=welcome.jsp链接到welcome.jsp/a21(3)动态指定Form表单处理页面,例如下面的代码:%Stringname=logon.jsp;%formaction=%=name%/form运行该段代码将生成下面的HTML代码:formaction=logon.jsp/form(4)为通过循环语句生成的元素命名,例如下面的代码:%for(inti=1;i3;i++){%file%=i%:inputtype=textname=%=file+i%br%}%运行该段代码将生成下面的HTML代码:file1:inputtype=textname=file1brfile2:inputtype=textname=file2br223.3.2声明标识(Declaration)在JSP页面中可以声明变量或方法,其声明格式为:%!声明变量或方法的代码%特别注意:在“%”与“!”之间不要有空格,要以;结尾。在页面中通过声明标识声明的变量和方法,在整个页面内都有效,它们将成为JSP页面被转换为Java类后类中的属性和方法。它们会被多个线程即多个用户共享。它们的生命周期从创建到服务器关闭后结束。在声明元素中声明的变量和方法将在JSP页面初始化时初始化。23【例3-2】一个简单的网站计数器。3.3.3脚本程序(Scriptlet)脚本程序是在JSP页面中

1 / 66
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功