Java Web编程技术:JSP语法基础_第1页
Java Web编程技术:JSP语法基础_第2页
Java Web编程技术:JSP语法基础_第3页
Java Web编程技术:JSP语法基础_第4页
Java Web编程技术:JSP语法基础_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

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

文档简介

JSP语法基础【知识目标】理解Web服务器对JSP源文件的处理流程和JSP源代码的构成要素。掌握JSP的三种注释方法。掌握JSP三类脚本元素的语法格式及使用。掌握page、include指令的语法格式及使用。掌握useBean、setProperty、getProperty、include、forward和param动作的语法格式及使用。【能力目标】能阅读JSP源代码,并选择恰当的注释方式对JSP源代码进行注释。能灵活运用JSP脚本元素编写JSP源代码。能灵活使用JSP指令编写JSP源代码。能灵活使用JSP动作编写JSP源代码。JSP语法基础4.1JSP源代码的构成4.2注释4.3脚本元素4.4指令元素4.5动作元素4.1JSP源代码的构成<%--JSP注释--%><%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html>

<head><title>JSP页面的基本构成</title></head>

<body>

<jsp:includepage="index.jsp"></jsp:include>

<%!intn=5;%>

<%

intmul=1; for(inti=1;i<=n;i++) mul=mul*i; out.print(n+"!=");%>

<%=mul%>

</body></html>静态部分动态部分JSP注释:是在JSP源文件中用来向读者解释说明的部分。JSP脚本:指的是在JSP文件中插入的Java代码,主要用来进行业务逻辑处理,通过<%%>来定义。JSP脚本在服务器端按从上到下的顺序执行。4.1JSP源代码的构成<%!

intn=5;%><%

intmul=1;for(inti=1;i<=n;i++) mul=mul*i;out.print(n+"!=");%><%=mul%>

<%--JSP注释--%>JSP指令:为JSP服务器设计的,用来设置与整个JSP页面相关属性的命令。JSP指令在整个页面范围内有效,且不在客户端产生任何可见输出。JSP动作:是为了简化JSP中的业务逻辑而简化的一组操作,实际上就是已封装好的Java脚本,使用它们可以动态的引用文件、使用JavaBean组件、传递参数、请求转发等。4.1JSP源代码的构成<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><jsp:includepage="index.jsp"></jsp:include>JSP指令:为JSP服务器设计的,用来设置与整个JSP页面相关属性的命令。JSP指令在整个页面范围内有效,且不在客户端产生任何可见输出。JSP动作:是为了简化JSP中的业务逻辑而简化的一组操作,实际上就是已封装好的Java脚本,使用它们可以动态的引用文件、使用JavaBean组件、传递参数、请求转发等。4.1JSP源代码的构成<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><jsp:includepage="index.jsp"></jsp:include>JSP指令:为JSP服务器设计的,用来设置与整个JSP页面相关属性的命令。JSP指令在整个页面范围内有效,且不在客户端产生任何可见输出。JSP动作:是为了简化JSP中的业务逻辑而简化的一组操作,实际上就是已封装好的Java脚本,使用它们可以动态的引用文件、使用JavaBean组件、传递参数、请求转发等。4.1JSP源代码的构成<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><jsp:includepage="index.jsp"></jsp:include>JSP的注释:在JSP源文件中出现的、用来解释说明JSP源代码的部分。注释的目的:帮助读者快速了解这段程序的功能。要求:书写清楚易懂。类型:HTML注释JSP注释Java注释4.2注释4.2.1HTML注释4.2.2JSP注释4.2.3Java代码注释4.2注释功能:注释JSP页面中Java脚本之外的部分。当客户端通过浏览器请求某JSP页面时,该类型的注释会和HTML代码一起从服务器端发送到客户端,虽然注释的内容并不会显示在浏览器中,但能在源代码中看到这部分注释。语法格式:4.2.1HTML注释<!--HTML注释-->【例4-2-1】:一个包含HTML注释的JSP源文件<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><!--以下内容将发送到客户端--><html><head><title>HTML注释演示</title></head><body>本页面包含HTML注释<br>可在源代码中看到。</body></html>HTML注释未显示在客户端网页中HTML注释显示在了客户端源代码文件中功能:用于注释Java脚本之外的部分。这种类型的注释仅对当前JSP源文件有意义,在JSP源文件转译成后缀为.java的Servlet文件时会被忽略,既不会保留在Servlet文件中,也不会发送到客户端。语法格式:4.2.2JSP注释<%--JSP注释--%>【例4-2-2】:一个包含JSP注释的JSP源文件<%--当前文件是使用Java脚本语言的网页文件,使用gb2312字符集--%><%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html>

<head>

<title>JSP注释演示</title>

</head>

<body>JSP注释不会发送到客户端

</body></html>JSP注释未显示在客户端网页中JSP注释未显示在客户端源代码文件中JSP注释未显示在Servlet文件中功能:用于注释Java脚本中的内容。Java代码注释位于Java脚本中,分为单行注释和多行注释。这种类型的注释在JSP源文件转译成Servlet时会保留在Servlet中,但不会发送到客户端。语法格式:4.2.3Java代码注释①//单行注释②/*

多行注释*/

【例4-2-3】:一个包含Java注释的JSP源文件<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html><head><title>Java注释演示</title></head>

<body>

<%

/*在服务器端循环计算n的阶乘*/

intmul=1,n=5;for(inti=1;i<=n;i++)mul=mul*i; out.print(n+"!="+mul);//将结果输出到客户端

%>

</body></html>Java注释未显示在客户端源代码文件中Java注释显示在Servlet文件中Java注释未显示在客户端网页中JSP脚本是指在JSP文件中插入的Java代码,在服务器端运行。JSP脚本元素可以分为三类:JSP脚本段:用于处理JSP页面所涉及功能的业务逻辑JSP表达式:用于在JSP页面中输出表达式的值JSP声明:用于在JSP页面中定义变量和方法4.3脚本元素4.3.1JSP脚本段4.3.2JSP表达式4.3.3JSP声明4.3脚本元素JSP脚本段是一段在客户端请求时需要先被Web服务器执行的Java代码,它可以是一段流程控制语句,也可以产生输出,并把输出合并在已有的静态代码中一起发送到客户。语法格式:4.3.1JSP脚本段<%合法的java代码

%>【例4-3-1】:使用一段JSP脚本段输出一个多行表格<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html>

<head><title>JSP的脚本段</title></head>

<body>

<tableborder="1"style="width:100;text-align:center;">

<% Stringcolor; for(inti=1;i<=4;i++){ if(i%2==0)color="#FF9600"; elsecolor="#00EE00"; out.println("<trbgcolor=\""+color+"\"><td>"+i+"</td></tr>"); }

%>

</table></body></html>在一个JSP页面中我们可以编写任意数量的脚本段,这些代码片段可以根据需要,夹插在HTML标签或其他的JSP元素中,当某一JSP源文件收到到客户端请求时,脚本段就会在服务器端按顺序从上到下依次自动执行。4.3.1JSP脚本段【例4-3-2】:使用多段JSP脚本段输出一个多行表格<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html>

<head><title>JSP的脚本段</title></head>

<body>

<tableborder="1"style="width:100;text-align:center;">

<% Stringcolor; for(inti=1;i<=4;i++){ if(i%2==0)color="#FF9600"; elsecolor="#00EE00";%>

<trbgcolor="<%out.print(color);%>">

<td><%out.print(i);%></td>

</tr>

<% }%>

</table>

</body></html>注意:JSP脚本段中只能使用out.print()系列方法来向客户端输出信息,如果使用System.out.print()系列方法,则输出的信息只能显示在服务器端的控制台窗口中。JSP脚本段中只能是Java语句的集合,不能包含完整的方法或类。4.3.1JSP脚本段功能:是将该表达式的值作为一个字符串输出到客户端。语法格式:注意:由于JSP表达式不是完整的java语句,所以JSP表达式中不能包含语句结束符“;”,更不能在一个JSP表达式中包含多条Java语句。4.3.2JSP表达式<%=Java表达式%><%out.print(Java表达式);

%>【例4-3-3】:使用JSP表达式输出动态信息<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html>

<head><title>JSP的脚本段</title></head>

<body>

<tableborder="1"style="width:100;text-align:center;">

<% Stringcolor; for(inti=1;i<=4;i++){ if(i%2==0)color="#FF9600"; elsecolor="#00EE00";

%>

<trbgcolor="<%=color%>"><td><%=i%></td></tr>

<% }%>

</table>

</body></html>功能:用来定义程序中使用的实体,这些实体可以是变量、方法和类。语法格式:示例:4.3.3JSP声明<%!

变量/方法/类的声明

%><%!Stringstr="欢迎";%><%!

public

intadd(intx,inty){ returnx+y;}%><%!

public

class

Student{

Stringname;

Student(Stringname){

this.name=name;

}}%>当JSP源文件被翻译成Servlet时,JSP声明中的变量、方法和类将成为Servlet类的内部成员,特别是JSP声明中的变量和方法相当于此页面文件中的全局变量和方法,因此在所有运行于该JSP程序的线程中这些声明的变量和方法都有效,在服务器被关闭时才会释放。注意:JSP声明中因为不能使用内置对象,因此,无论是声明方法还是类都不能使用out对象调用print()系列方法做输出操作。4.3.3JSP声明【例4-3-4】:在JSP声明中声明变量和在JSP脚本段中声明变量<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html><head><title>全局变量和局部变量</title></head><body><%!intn=0;%><%intm=0;n++;m++;out.print("第"+n+"次加载页面!");%><br><br>m=<%=m%></body></html>全局变量局部变量功能:在JSP文件中设置页面的属性,不产生输出,在整个页面范围内有效。语法格式:注意:<%@与%>都是完整标记,中间不能添加空格指令名和属性名大小写是敏感的4.4指令元素<%@指令名

属性1="值1"……属性n="值n"%>4.4.1page指令4.4.2include指令4.4.3taglib指令4.4指令元素功能:用于定义整个JSP页面的相关属性,这些属性在JSP文件被Web服务器转译成Servlet文件时会转换为相应的Java程序代码。语法格式:示例:4.4.1page指令<%@page属性1="值1"……属性n="值n"%><%@pagelanguage="java"contentType="text/html;charset=gb2312"%>常用属性4.4.1page指令属性功能属性功能language指定JSP使用的脚本语言info定义JSP页面的描述信息errorPage指定当前页面运行异常时调用的页面isErrorPage说明当前页面是否为其他页面的异常处理页面。import导入使用的Java包isELIgnored指定是否忽略EL表达式session指定在当前页中是否允许session操作buffer指定处理页面输出内容时的缓冲区大小contentType设置返回浏览器网页的内容类型和字符编码格式autoFlush指定当缓冲区满时是否自动清空pageEncoding指定JSP页面的字符编码isThreadSafe指定是否线程安全说明:使用page指令时,并非一定要设置所有属性的值,而是根据需要,选择设置其中一个或多个属性的值,对于没有显式设置值的属性,其值自动设置为系统默认值。一个JSP页面可以只包含一条page指令,在这条page指令中包含所有要设置的属性及其值,也可以将这些属性及其值分散在多条page指令中。示例:4.4.1page指令<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><%@pagelanguage="java"%><%@pagecontentType="text/html;charset=gb2312"%>作用:用于设置JSP脚本会用到的包和类的路径。JSP文件会默认载入javax.servlet.jsp.*、javax.servlet.http.*、javax.servlet.*、java.lang.*这4个包,如果JSP脚本用到的类不在这4个包中,则必须在import属性中设置它们的访问路径,否则会导致语法错误。4.4.1page指令

1、import属性语法错误,当前页面找不到Date类【例4-4-1】:在JSP文件中导入指定类<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%><%@pageimport="java.util.Date"%><html><head><title>显示服务器当前时间</title></head><body>现在时间是:<%=newDate().toLocaleString()%></body></html>导入Date类说明:import属性是page指令中唯一可以多次出现的属性,其他属性若多次出现则会编译错误。4.4.1page指令

1、import属性<%@pageimport="java.text.*,java.util.Date"%><%@pageimport="java.util.Date"import="java.text.*"%><%@pageimport="java.util.Date"%><%@pageimport="java.text.*"%>作用:用于定义JSP源文件中代码的编码格式,默认值为"ISO-8859-1"。支持中文的编码格式有"gb2312"、"GBK"、"UTF-8"等。示例:4.4.1page指令

2、pageEncoding属性<%@pagepageEncoding="gb2312"%>功能:用于指定JSP页面的MIME类型及字符编码,浏览器将根据此属性值解析发送到客户端的信息。语法格式:

MIME类型:text/html(默认)、image/gif等字符编码:ISO-8859-1(默认)、UTF-8等示例:4.4.1page指令

3、contentType属性<%@pagecontentType="MIME类型;charset=字符编码"%><%@pagecontentType="text/html;charset=gb2312"%>注意:contentType属性与pageEncoding属性虽然都涉及到字符编码集的设置,但这两个属性作用的阶段不同,pageEncoding属性作用于JSP源文件转译为Servlet文件阶段,而contentType属性作用于服务器端将JSP文件处理结果发送到客户端这一阶段。实际上,这两个属性值只要任意设置了其中一个的字符编码集,另一个即会与此保持一致。4.4.1page指令

3、contentType属性作用:用于指定当前页面出现异常时要跳转的页面,其值为异常处理页面的URL。示例:4.4.1page指令

4、errorPage属性<%@pagecontentType="text/html;charset=UTF-8"errorPage="error.jsp"%>作用:设置当前JSP文件是否为另一个JSP文件的错误处理页,其值为布尔类型,默认值为false,表示当前JSP文件不是其他JSP文件的错误处理页。说明:该属性是否设置为true不影响当前错误处理页面的执行,但设置为true后,服务器会根据原页面错误类型将相应http状态码返回到客户端,否则将返回执行正常的状态码。4.4.1page指令

5、isErrorPage属性【例4-4-2】:为JSP文件设置异常处理页<%@pagecontentType="text/html;charset=UTF-8"errorPage="error.jsp"%><html><head><title>page指令:errorPage属性</title></head><body><%!

int[]a={1,2,3};%>

第3个数组元素:<%=a[3]%></body></html>PDErrorPage.jsp<%@pagecontentType="text/html;charset=UTF-8"isErrorPage="true"%><html><head><title>异常信息显示</title></head><body>页面运行出错!</body></html>error.jsp地址栏仍显示原页面地址而非错误处理页地址错误处理页内容注意:如果使用IE浏览器访问JSP文件发生异常,有时会显示上图所示的IE默认错误界面而非自定义的错误处理页面,此时,只需要在如右图所示的Internet属性窗口(通过命令“Internet选项”→“高级”打开)中将“显示友好HTTP错误消息”选项设置为不选中即可解决。4.4.1page指令

5、isErrorPage属性作用:用于指定JSP页面的脚本语言,默认值为java。说明:目前JSP支持的脚本语言只有java,因此若将该属性的值设置为其他语言,编译时会出现异常。4.4.1page指令

6、language属性作用:用来向当前JSP文件指定位置插入另一个文件,被插入的文件可以是一个HTML的静态文件,也可以是一个JSP文件。语法格式:4.4.2include指令<%@includefile="被包含文件的URL"%>【例4-4-3】:在JSP文件中使用include指令插入其它文件<%@pagecontentType="text/html;charset=UTF-8"%><html><head><title>include指令示例</title></head><body><%@includefile="head.jsp"%><h1>这是主体内容</h1><%@includefile="foot.jsp"%></body></html>content.jsp<%@pagecontentType="text/html;charset=UTF-8"%><%out.print("<h2>这是头部</h2>");%>head.jsp<%@pagecontentType="text/html;charset=UTF-8"%><%out.print("<h2>这是尾部</h2>");%>foot.jsp【例4-4-3】中content.jsp的等价形式content.jsp<%@pagecontentType="text/html;charset=UTF-8"%><html><head><title>include指令示例</title></head><body><%@pagecontentType="text/html;charset=UTF-8"%><%out.print("<h2>这是头部</h2>");%><h1>这是主体内容</h1><%@pagecontentType="text/html;charset=UTF-8"%><%out.print("<h2>这是尾部</h2>");%></body></html>head.jsp的代码foot.jsp的代码说明:include指令在编译时将对于文件包含到本页面,等价于代码复制。include指令的缺点:在编写主体文件和插入文件时需要彼此兼顾,否则会发生相互干扰甚至是语法冲突。4.4.2include指令注意:使用include指令时,属性file的值必须是字符串常量而不能采用变量的形式。4.4.2include指令<%Stringurl="head.jsp";%><%@includefile="<%=url%>"%><%--语法错误--%>功能:在JSP文件中使用JSP标准标签库时,用来导入需要使用的标签库并定义该标签库的前缀。语法格式:4.4.3taglib指令<%@tagliburi="标签库的URI"prefix="标签前缀"%>JSTL推荐前缀URI范例核心标签库chttp///jsp/jstl/core<c:out>I18N标签库fmthttp///jsp/jstl/<fmt:formatDate>SQL标签库sqlhttp///jsp/jstl/sql<sql:query>XML标签库xhttp///jsp/jstl/xml<x:forBach>函数标签库fnhttp///jsp/jstl/function<fn:split>【例4-4-4】:在JSP文件中使用JSTL输出信息<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%><%--导入JSP的核心标签库,并为其起别名c--%><%@tagliburi="/jsp/jstl/core"prefix="c"%><html><head><title>taglib指令示例</title></head><body><c:outvalue="taglib指令示例"/><%--使用JSTL核心标签库out标签输出指定信息--%></body></html>注意:使用JSTL必须在项目文件夹\WEB-INF\lib中放入standard.jar和jstl.jar文件,否则会因无法识别标签库和JSTL中的标签而导致语法错误。4.4.3taglib指令JSP的动作相当于预定义的Java脚本,主要为请求处理阶段提供信息,能够影响输出流和对象的创建、使用、修改等,它按照XML语法进行书写,利用标签来控制Servlet引擎的行为。优点:简化常用操作,以提高代码的可重用性。语法格式:4.5动作元素<jsp:动作名

属性1="值1"

…属性n=

"值n"

/><jsp:动作名属性1="值1"

…>子标签/子内容

</jsp:动作名>JSP2.0中的标准动作4.5动作元素类型动作名与存取JavaBean有关的动作<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>基本动作<jsp:include>、<jsp:forward>、<jsp:param>、<jsp:plugin>、<jsp:params>、<jsp:fallback>与JSPDocument有关的动作<jsp:root>、<jsp:declaration>、<jsp:scriptlet>、<jsp:expression>、<jsp:text>、<jsp:output>动态生成XML元素标签值的动作<jsp:attribute>、<jsp:body>、<jsp:element>用于TagFile的动作<jsp:invoke>、<jsp:dobody>4.5.1JavaBean的编写4.5.2useBean动作4.5.3setProperty动作4.5.4getProperty动作4.5.5include动作4.5.6forward动作4.5.7param动作4.5动作元素JavaBean就是一种Java的组件技术,它将Java代码与HTML代码分离,单独封装成一个处理某种业务逻辑的类,然后在JSP页面中调用此类。JavaBean的作用:降低HTML代码与Java代码的耦合度,简化JSP页面,提高Java代码的重用性和灵活性。在JavaBean中,可以将控制逻辑、值、数据库访问和其他对象进行封装,并且其可以被其他应用来调用。4.5.1JavaBean的编写JavaBean包括两种类型:广义的JavaBean(工具JavaBean):指普通的Java类,通常用于封装业务逻辑、数据操作等。狭义的JavaBean(值JavaBean):指严格按照JavaBean规范编写的Java类,通常用于封装表单数据,作为信息的容器。4.5.1JavaBean的编写public

classTools{publicStringchange(Stringstr){str=str.replace("<","<");str=str.replace(">",">");return

str;}}值JavaBean的编写一般要满足以下要求:必须是公共类。类中必须包含一个公共的无参构造方法,可显式写在类体中,也可由系统默认生成。类的所有属性都是私有的。必须定义一组公共的存取方法,get开头的方法完成对属性的读,而set开头的方法完成对属性的写。4.5.1JavaBean的编写【例4-5-1】:一个用于存放用户信息的值JavaBeanpackagebean;publicclassUser{

privateStringname;

privateStringpassword;

publicStringgetName(){ returnname;}publicvoidsetName(Stringname){ this.name=name;}publicStringgetPassword(){ returnpassword;}publicvoidsetPassword(Stringpassword){

this.password=password;}}公共类私有属性一组读/写属性的getter/setter公有方法系统自动生成默认的无参构造方法注意:get/set方法的命名必须规范,get/set之后应跟上要读写的属性名,且属性名首字母必须大写。若属性类型为boolean,则读属性时要将get方法改为is方法。4.5.1JavaBean的编写publicclassUser{ private

boolean

vip;privateStringname;publicStringgetName(){returnname;}public

boolean

isVip(){return

vip;}……}step1:右键单击项目名称,在快捷菜单中选择“New”→“Class”,打开“创建Java类”窗口。在Eclipse中创建Java源文件的过程右击项目名称step2:在“创建Java类”窗口中输入此JavaBean文件所在包的名称和JavaBean类的名称,保持界面中其他信息不变,点击【Finish】按钮。在Eclipse中创建Java源文件的过程输入包名,

JavaBean必须放在非默认包中输入JavaBean类名功能:创建一个JavaBean实例。语法格式:示例:4.5.2useBean动作<jsp:useBeanid="对象名"class="类名"scope="范围类型"type="对象类型"/><jsp:useBeanid="user"class="bean.User"scope="page"type="bean.User"/><jsp:useBeanid="user"class="bean.User"/>功能:为JavaBean对象的属性赋值。语法格式:4.5.3setProperty动作<jsp:setPropertyname="对象名"property="属性名"value="属性值"/><jsp:setPropertyname="对象名"property="属性名"param="参数名"/><jsp:setPropertyname="对象名"property="属性名"/><jsp:setPropertyname="对象名"property="*"/>【例4-5-2】:使用JSP动作创建对象并使用setProperty动作的第一种格式实现赋值处理<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%><html><head><title>注册处理</title></head><body><%--创建User类对象user--%><jsp:useBeanid="user"class="bean.User"/>

<%--设置user对象的name属性值为字符串”Lily”--%><jsp:setPropertyname="user"property="name"value="Lily"/><%--设置user对象的password属性值为字符串”123”--%><jsp:setPropertyname="user"property="password"value="123"/>

用户名:<%=user.getName()%><br>密码:<%=user.getPassword()%></body></html>registerHandle1.jsp【例4-5-3】:使用setProperty动作的第二种格式提取请求参数并实现赋值处理<html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>用户注册</title></head><body>

<formmethod="post"action="registerHandle2.jsp">

名称:<inputtype="text"name="name"><br>

密码:<inputtype="password"name="password"><br>

<inputtype="submit"value="提交">

<inputtype="reset"value="重置">

</form></body></html>register.html【例4-5-3】:使用setProperty动作的第二种格式提取请求参数并实现赋值处理<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%><html><head><title>注册处理</title></head><body><jsp:useBeanid="user"class="bean.User"/>

<%--用传入的请求参数name的值为user对象的name属性赋值--%><jsp:setPropertyname="user"property="name"param="name"/><%--用传入的请求参数password的值为user对象的password属性赋值--%><jsp:setPropertyname="user"property="password"param="password"/>

用户名:<%=user.getName()%><br>密码:<%=user.getPassword()%></body></html>registerHandle2.jsp【例4-5-4】:使用setProperty动作的第三种格式提取请求参数并实现赋值处理<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%><html><head><title>注册处理</title></head><body><jsp:useBeanid="user"class="bean.User"/>

<%--用传入的请求参数name的值为user对象的name属性赋值--%><jsp:setPropertyname="user"property="name"/><%--用传入的请求参数password的值为user对象的password属性赋值--%><jsp:setPropertyname="user"property="password"/>

用户名:<%=user.getName()%><br>密码:<%=user.getPassword()%></body></html>registerHandle3.jsp【例4-5-5】:使用setProperty动作的第四种格式提取请求参数并实现赋值处理<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%><html><head><title>注册处理</title></head><body><jsp:useBeanid="user"class="bean.User"/>

<%--用传入的请求参数的值为user对象的所有同名属性赋值--%><jsp:setPropertyname="user"property="*"/>

用户名:<%=user.getName()%><br>密码:<%=user.getPassword()%></body></html>registerHandle4.jsp功能:读取JavaBean对象的指定属性并输出到客户端。语法格式:4.5.4getProperty动作<jsp:getPropertyname="对象名"property="属性名"/>【例4-5-6】:使用getProperty动作读取并输出JavaBean对象属性的值<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%><html><head><title>注册处理</title></head><body><jsp:useBeanid="user"class="bean.User"/><jsp:setPropertyname="user"property="*"/>

<%--读取并输出user对象name属性的值--%>用户名:<jsp:getPropertyname="user"property="name"/><br><%--读取并输出user对象password属性的值--%>密码:<jsp:getPropertyname="user"property="password"/></body></html>registerHandle5.jsp功能:在JSP文件中动态地包含其他文件。语法格式:示例:4.5.5include动作<jsp:includepage="资源文件的URL"flush="true|false"/><jsp:includepage="资源文件的URL"flush="true|false">……</jsp:include><jsp:includepage="head.jsp"flush="false"/><jsp:includepage="head.jsp"/>【例4-5-7】:在JSP文件中使用include动作插入其它文件<%@pagecontentType="text/html;charset=UTF-8"%><html><head><title>include动作示例</title></head><body><jsp:includepage="head.jsp"/><h1>这是主体内容</h1><jsp:includepage="foot.jsp"/></body></html>includeAction.jsp<%@pagecontentType="text/html;charset=UTF-8"%><%out.print("<h2>这是头部</h2>");%>head.jsp<%@pagecontentType="text/html;charset=UTF-8"%><%out.print("<h2>这是尾部</h2>");%>foot.jsp区别include指令include动作包含时间主页面编译时主页面运行时包含内容资源文件的实际内容资源文件的执行结果编译的Servlet主页与资源文件编译成1个Servlet主页与资源文件分别编译成各自独立的多个Servlet编译时间较慢,每次编译当前页面,资源文件都需被编译较快,每次编译当前页面,资源文件无需再次编译执行时间较快,每次运行当前页面,资源文件无需再次解析较慢,每次运行当前页面,资源文件都需被解析是否可影响主页可以不可以资源文件更改时是否需要更改主页需要不需要灵活性资源文件名称固定资源文件名称可以动态指定4.5.5include动作结论1:当我们希望在被包含文件中编写的代码对主文件产生直接影响时,需要选择include指令。4.5.5include动作结论2:如果被包含文件URL在代码编写阶段不能确定,而必须在主文件运行时才能确定,则需要选择include动作。结论3:当两种方式都能达到同样效果时,最好选择维护代价更小的include动作。4.5.5include动作功能:将客户请求转发到新文件,即停止执行当前的JSP文件,转而执行动作指定的新文件,并最后将新文件的执行结果返回客户端。语法格式:4.5.6forward动作<jsp:forwardpage="跳转页的URL"/><jsp:forwardpage="跳转页的URL">……</jsp:forward>【例4-5-8】:在JSP文件中使用forward动作进行页面跳转login.html<html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>登录</title></head><body>

<formmethod="post"action="loginHandle.jsp">

名称:<inputtype="text"name="name"><br>

密码:<inputtype="password"name="password"><br>

<inputtype="submit"value="确定

温馨提示

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

评论

0/150

提交评论