Java Web程序开发与分析课件:JSP编程(二)_第1页
Java Web程序开发与分析课件:JSP编程(二)_第2页
Java Web程序开发与分析课件:JSP编程(二)_第3页
Java Web程序开发与分析课件:JSP编程(二)_第4页
Java Web程序开发与分析课件:JSP编程(二)_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

JavaWeb程序设计

——JSP编程(2)2主要内容JSP基本语法JSP脚本元素JSP指令元素JSP动作元素3JSP指令元素

JSP指令元素描述了JSP页面转换成Servlet类文件的控制信息,如JSP页面所使用的语言、网页的编码方式和指定错误处理页面等。

JSP指令元素独立于JSP页面接受的任何请求,且不产生任何页面输出信息。其语法格式为:

<%@指令名属性1=“值1”

属性2=“值2”…%>

JSP中包括:page、include、taglib指令

4(1)page指令page指令用来定义JSP页面中的全局属性,如:页面语言和编码方式等,它描述了与页面相关的一些信息。如:

<%@pagelanguage="java"contentType="text/html;charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>page指令的位置一般放在JSP页面的开头,放在其他位置也是可行的,在一个JSP页面中可以有多个page指令。5page指令中的常用属性:(1)laguage=“java”JSP中定义了一个language属性,其属性值仅为“Java”,表示脚本的语法必须符合Java语法规范,所以可以不指定该属性。(2)import=“{package.class|package.*},…”import属性用来导入JSP页面中将要使用的Java类,可以导入多个类,中间用“,”隔开,如:

<%@pageimport=“java.util.Vector,java.util.Calendar”%>

6(3)contentType的参数值是一个MIME格式的字符串,通常格式为:contentType=“text/plain|text/html…[charset=characterSet]”

该属性指定返回浏览器的内容类型,如:text/html(纯文本的HTML页面)、application/msword(Word文件);charset用来指定所使用的字符集。pageEncoding指出页面的编码方式,这和contentType中的属性值charset等价,默认为ISO-8859-1。7(4)buffer和autoFlushbuffer和autoFlush属性指定服务器对输出对象out的缓冲区大小(默认为8kb),及缓冲区是否自动清空。在JSP输出HTML页面的过程中,数据在服务器中会先进行缓存,之后再统一发送至浏览器。当buffer设置为none时,将不使用缓冲区,这样的I/O效率会很差。8(5)errorPage=“relativeURL”

设置处理异常的JSP文件,采用相对路径。(6)isErrorPage=“true|false”

设置该JSP页面是否为错误处理页面,默认值为:false。9<%@pagelanguage="java"contentType="text/html;charset=gb2312"pageEncoding="gb2312"%><%@pageimport="java.util.*,java.lang.*"%><%@pageerrorPage="error.jsp"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd">Page指令pageError.jsp文件10<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>Inserttitlehere</title></head><body>Testforusing'Page'.<%inti=0;%><%=10/i%></body></html>JSP代码,代码中有异常错误。11<%@pagelanguage="java"contentType="text/html;charset=gb2312"

isErrorPage="true"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>出错</title></head><body><fontcolor=red>

出错:<br>Message:<%=exception.getMessage()%><br></font></body></html>page指令JSP代码:获取异常信息error.jsp文件12运行结果:注意:在运行时需要将浏览器中Internet设置中的”显示友好Http错误信息”取消。13(2)include指令include指令用来包含一个静态的文件,在解析当前JSP页面时,这个文件中的代码会被复制到当前页面中。其语法格式为:

<%@includefile=“relativeURL”%>

其中,包含的文件可以是:JSP文件、HTML文件、文本文件或者一段Java代码。如果包含的是JSP文件,则该JSP文件内容将会被主JSP文件一起编译执行。14(2)include指令include指令会在JSP编译时插入一个文件,而这个包含过程是静态的,要求file属性的值不能是一个变量,如下例是不合法的:

<%Stringurl=“header.html”;%><%@includefile=“<%=url>”%>

也不能在file中出现参数,如:

<%@includefile=“query.jsp?name=browser”%>15

<%@pagelanguage="java"contentType="text/html;charset=gb2312"pageEncoding="gb2312"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>Include指令</title></head><body>插入JSP代码:<%@includefile="includecode.cod"%></body></html>Include指令Page指令include.jsp文件:16<%@pagecontentType="text/html;charset=gb2312"%><%Strings="这是插入执行代码的内容";out.print(s);%>“includecode.cod”文件:(文本方式保存)17运行结果:18

除了JSP核心中定义的动作元素标签,JSP页面中也可以使用用户自定义的标签。taglib指令用来定义一个标签库及其自定义的标签的前缀。其语法格式为:

<%@tagliburi=“tagURL”prefix=“tagPrefix”%>

其中,属性uri用来唯一地确定标签库的路径,属性prefix用来指示使用此标签库的前缀。定义标签时,不能使用:jsp,jspx,java,javax,servlet,sun等作为前缀。(3)taglib指令19主要内容JSP基本语法JSP脚本元素JSP指令元素JSP动作元素20

JSP动作元素(ActionElements),是在客户端请求时动态执行的,以实现控制Servlet引擎的行为,如:动态插入文件、重用JavaBean组件、重定向到另外的页面等。

JSP动作元素是一种特殊标签,以jsp为前缀,JSP动作元素可分为三类:

JavaBean(一种Java类,可重复使用)XML(JSP2.0新增)一般元素JSP动作元素21JSP中预设的ActionElement标签:①

JavaBean:<jsp:useBean>,<jsp:setProperty><jsp:getProperty>,<jsp:param>②

一般元素:<jsp:plugin>,<jsp:forward>,<jsp:include>③

XML:<jsp:attribute>,<jsp:body>,<jsp:element>22

动作元素分为三种:标准动作,JSTL动作,以及自定义动作。如前所见到的<jsp:include>,<jsp:useBean>等都是标准动作标签;<c:out>是JSP标准标签库JSTL内的标签;<t:testtagout>则是自定义的标签。23<jsp:include>动作元素可以用来包含其他静态和动态页面。该包含为运行时包含,即指被包含的文件在运行时被编译和执行。其语法格式为:

<jsp:includepage=“relativeURL”

flush=“true|false”/>

其中,relativeURL为包含文件的相对路径,flush为true,表示实时输出缓冲区。(1)<jsp:include>动作元素24<jsp:includepage=“relativeURL”

flush=“true|false”><jsp:paramname=“attributeName”value=“attributeValue”/>

……</jsp:include>

一个<jsp:include>动作元素可以包含一个或者多个<jsp:param>元素,用于在包含文件时传递一些参数。

25例:(jspinclude.jsp文件中动态包含action.jsp)

<%@pagelanguage="java"contentType="text/html;charset=gb2312"

pageEncoding="gb2312"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">

<title>Inserttitlehere</title>

</head>jspinclude.jsp文件26<body>

<%@includefile="static.html"%>

<!--动态包含文件并传递参数-->

<jsp:includepage="action.jsp"flush="true">

<jsp:paramname="a1"value="<%=request.getParameter("name")%>"/>

<jsp:paramname="a2"value="<%=request.getParameter("password")%>"/>

</jsp:include>

</body>

</html>include指令<jsp:include>动作元素27<formmethod=postaction="jspinclude.jsp">

<table>

<tr>

<td>pleaseinputyourname:</td>

<td><inputtype=textname=name></td>

</tr>

<tr>

<td>inputyoupassword:</td>

<td><inputtype=passwordname=password></td>

</tr>

<tr>

<td></td>

<td><inputtype=submitvalue=login></td>

</tr>

</table>

</form>static.htm文件28<body>

<%

out.println("runfromaction.jsp");

%>

<br>

a1=

<%=request.getParameter("a1")%>

<br>

a2=

<%=request.getParameter("a2")%>

<br>

</body>获取参数值action.jsp文件29运行结果:30运行结果:31JSP中include指令与include动作元素的区别:(1)include指令(编译时包含)

include指令是指把其他页面的Java源码加进来,和本页的代码合并在一起,然后再编译。(2)<jsp:include>动作元素(运行时包含)该动作元素是指运行时编译执行被包含的页面代码,然后再将被包含页面的运行结果加入到当前页面中。32<jsp:forward>用于在服务器端结束当前页面的执行,并从当前页面跳转到其他页面,转向的页面可是HTML页面、JSP页面。其语法格式为:<jsp:forwardpage=“relativeURL”><jsp:paramname=“attributeName”

value=“attributeValue”/>

……</jsp:forward>(2)<jsp:forward>动作元素33<jsp:forward>可以带参数,也可以不带参数。该动作元素的典型应用是用户登录,如:进行权限验证的页面,如果验证通过,可以把页面跳转到登录成功的页面,如果失败,则跳转到登录页面。34<jsp:param>元素主要用来传递参数给JSP程序,其语法格式为:

<jsp:paramname=“attributeName”value=“vlaue”>

其中,name属性表示传递参数的名称,value表示该参数的值。(3)<jsp:param>动作元素35

使用<jsp:param>元素传递参数,JSP程序中如何获取该参数的值?可以通过request对象的getParameter()方法来获得:

request.getParameter(“attributeName”)

<jsp:param>元素的使用需要与<jsp:include>、<jsp:forward>等元素配合使用。36(4)<jsp:plugin>动作元素<jsp:plugin>的功能在于在JSP网页中加载JavaApplet或JavaBean程序。其语法格式为:

<jsp:plugintype=“bean|applet”code=“classfilename”codebase=“fileDirectoryName”width=“”height=“”

……>37

<jsp:params>

<jsp:paramname=“”value=“”/>

……

</jsp:parmas>

</jsp:plugin>

其中,若要传递参数给程序,则需要加入</jsp:params>来进行设置。38例:在JSP页面中加入一个JavaApplet程序importjava.awt.*;importjava.applet.*;publicclassHelloAppletextendsApplet{publicvoidpaint(Graphicsg){g.drawString("HelloWorld!",50,50);}}39<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>Inserttitlehere</title></head><body><jsp:plugintype="applet"code="HelloApplet.class"height="200"width="250"></jsp:plugin></body></html>40JavaBean是一种可重用组件模型,本质是一个Java类。在Web应用,采用JavaBean对业务处理逻辑和数据访问进行封装,可以使程序代码的逻辑清晰,可重用性良好。(5)JavaBean动作元素411、<jsp:useBean>用来在JSP页面中加载JavaBean,其语法格式为:

<jsp:useBeanid=“beanInstanceName”type=“beanType”scope=“page|request|session|application”class=“packageclass”beanName=“name”></useBean>

(5)JavaBean动作元素422、<jsp:setProperty>用来设置已经实例化的Bean对象的属性值,有两种用法:

1)可以在<jsp:useBean>元素的后面使用:

<jsp:useBeanid=“name1”….>

…<jsp:setPropertyname=“name1”property=“”value

温馨提示

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

评论

0/150

提交评论