1、项目二项目二 JSPJSP基本语法基本语法 2.1 理解理解JSP页面的构成页面的构成 2.2 掌握掌握JSP的基本语法的基本语法 2.3 拓展实训拓展实训2022年8月8日星期一22.1 理解理解JSP页面的构成页面的构成JSPJSP页面遵循页面遵循JavaJava的语法规则,是超文本标记语言(的语法规则,是超文本标记语言(HTMLHTML)与与JavaJava语言两者的融合。简言之,在静态页面中按照语法嵌语言两者的融合。简言之,在静态页面中按照语法嵌入动态代码,就构成了入动态代码,就构成了JSPJSP动态页面。一个完整的动态页面。一个完整的JSPJSP页面构页面构成如图所示。成如图所示。2
2、022年8月8日星期一32.2 理解理解JSP页面的构成页面的构成本任务要求熟练掌握本任务要求熟练掌握JSPJSP的基本语法,并能够运用的基本语法,并能够运用脚本标记、指令标记、动作标记等脚本标记、指令标记、动作标记等JSPJSP元素。元素。1.2.1 JSP1.2.1 JSP脚本标记脚本标记1.2.2 JSP1.2.2 JSP指令标记指令标记1.2.3 JSP1.2.3 JSP动作标记动作标记2022年8月8日星期一42.2.1 JSPJSP脚本标记脚本标记1.1.JSPJSP脚本段语法脚本段语法JSPJSP脚本段(脚本段(SciptletSciptlet)是指一个有效的程序段,在这)是指一
3、个有效的程序段,在这个程序段中可以声明要用到的变量和方法、编写个程序段中可以声明要用到的变量和方法、编写JavaJava语句,语句,以及使用任何隐含的对象等。以及使用任何隐含的对象等。JSPJSP脚本段的基本语法为脚本段的基本语法为%Java%,例如:,例如:%int sum=0;int sum=0;for(int i=0;i=10;i+)for(int i=0;i=10;i+)sum+=I;sum+=I;out.println(“sum=”+sum+”);out.println(“sum=”+sum+”);%2.2.1 JSPJSP脚本标记脚本标记 JSP脚本段中只能出现脚本段中只能出现Ja
4、va代码,不能出现其他模板元素。代码,不能出现其他模板元素。JSP脚本段中脚本段中Java必须严格遵循必须严格遵循Java语法语法。在一个在一个JSP页面中可以有多个脚本段,在两个或多个脚本段间可以页面中可以有多个脚本段,在两个或多个脚本段间可以嵌入文本、嵌入文本、HTML标记和其他标记和其他JSP元素。元素。多个脚本段中的代码可以相互访问,单个脚本段中的多个脚本段中的代码可以相互访问,单个脚本段中的Java语句可以语句可以是不完整的,但多个脚本段代码组合后的结果必须是完整的。是不完整的,但多个脚本段代码组合后的结果必须是完整的。提示提示:2022年8月8日星期一62.2.1 JSPJSP脚本
5、标记脚本标记【例【例1 1】多个脚本段的相互访问。】多个脚本段的相互访问。在项目中创建在项目中创建scriplet.jspscriplet.jsp,代码如下:,代码如下:2022年8月8日星期一72.2.1 JSPJSP脚本标记脚本标记在该页面中在该页面中forfor循环被拆分到两个脚本段,中间插入一段循环被拆分到两个脚本段,中间插入一段htmlhtml语句,这语句,这两个脚本段相互访问,构成完整的循环,效果如图所示。两个脚本段相互访问,构成完整的循环,效果如图所示。2022年8月8日星期一82.2.1 JSPJSP脚本标记脚本标记2 2JSPJSP声明语法声明语法在在JSPJSP页面中,可以
6、声明合法的变量的和方法,变量类型可以是页面中,可以声明合法的变量的和方法,变量类型可以是JavaJava语语言允许的任何数据类型。这种声明是全局变量。言允许的任何数据类型。这种声明是全局变量。JSPJSP声明(声明(DeclarationDeclaration)的基本语法为)的基本语法为%!%,声明的本质就是将声明的变量和方法作为,声明的本质就是将声明的变量和方法作为ServletServlet类的变量和方法,下类的变量和方法,下面我们用一个例子来解释如何声明变量和方法。面我们用一个例子来解释如何声明变量和方法。【例【例2 2】声明变量和方法。】声明变量和方法。本例在本例在declaratio
7、n.jspdeclaration.jsp中声明一个整型变量和一个方法,并在后面的中声明一个整型变量和一个方法,并在后面的代码段中加以调用,代码如下:代码段中加以调用,代码如下:2022年8月8日星期一92.2.1 JSPJSP脚本标记脚本标记2022年8月8日星期一102.2.1 JSPJSP脚本标记脚本标记declaration.jspdeclaration.jsp运行后的效果如图所示运行后的效果如图所示:每次刷新后,每次刷新后,countcount变量都会自加变量都会自加1 1,效果如图所示:,效果如图所示:2.2.1 JSPJSP脚本标记脚本标记 声明必须以分号(;)结尾。声明必须以分号
8、(;)结尾。可以直接使用在可以直接使用在中已经声明的变量和方法,不需要中已经声明的变量和方法,不需要对它们重新进行声明。对它们重新进行声明。一个声明仅在一个页面中生效。如果要在多个页面中用到,则可一个声明仅在一个页面中生效。如果要在多个页面中用到,则可将它们写成一个单独的文件,然后用将它们写成一个单独的文件,然后用和和包含进来。包含进来。提示提示:2022年8月8日星期一122.2.1 JSPJSP脚本标记脚本标记3 3JSPJSP表达式语法表达式语法在在JSPJSP页面中,可以用表达式(页面中,可以用表达式(ExpressionExpression)将程序数据输出到客户端,)将程序数据输出到
9、客户端,其等价于其等价于“out.print”“out.print”。表达式元素表示的是一个在脚本语言中被定义的。表达式元素表示的是一个在脚本语言中被定义的表达式,在运行后被自动转换为字符串,然后插入到这个表达式在表达式,在运行后被自动转换为字符串,然后插入到这个表达式在JSPJSP页面页面中的位置并显示。中的位置并显示。JSPJSP表达式的基本语法为表达式的基本语法为%=%,表达式的本质就是在将,表达式的本质就是在将JSPJSP页面转化为页面转化为ServletServlet后,使用后,使用out.print()out.print()将表达式的值输出,下面我们将表达式的值输出,下面我们用一个
10、例子来理解表达式的妙用。用一个例子来理解表达式的妙用。2022年8月8日星期一132.2.1 JSPJSP脚本标记脚本标记【例【例3 3】表达式实例】表达式实例 本例在本例在expression.jspexpression.jsp中定义了字符串变量中定义了字符串变量urlurl,并利用表达式指定了,并利用表达式指定了超级链接的页面以及处理表单信息的页面,代码如下:超级链接的页面以及处理表单信息的页面,代码如下:2022年8月8日星期一142.2.1 JSPJSP脚本标记脚本标记 创建创建expressionHref.jspexpressionHref.jsp,代码如下:,代码如下:页面页面ex
11、pression.jspexpression.jsp的运行效果如图所示的运行效果如图所示:2022年8月8日星期一152.2.1 JSPJSP脚本标记脚本标记 点击超级链接点击超级链接“点击跳转点击跳转”或单击按钮或单击按钮“点击跳转点击跳转”,都会定向到,都会定向到expressionHref.jspexpressionHref.jsp,如图所示。,如图所示。提示:提示:声明必须以分号(;)结尾。声明必须以分号(;)结尾。2022年8月8日星期一162.2.1 JSPJSP脚本标记脚本标记4 4JSPJSP注释语法注释语法在在JSPJSP页面中,注释分为两大类:静态注释和动态注释。静态注释是
12、直页面中,注释分为两大类:静态注释和动态注释。静态注释是直接使用接使用HTMLHTML风格的注释,这类注释在浏览器中查看源文件时是可以看到注释风格的注释,这类注释在浏览器中查看源文件时是可以看到注释内容的;动态注释包括内容的;动态注释包括JavaJava注释和注释和JSPJSP注释两种,这类注释在浏览器中查看注释两种,这类注释在浏览器中查看源文件时是看不到注释内容的。源文件时是看不到注释内容的。注释的语法为:注释的语法为:静态注释静态注释:JavaJava注释注释:/单行注释/*多行注释*/JSPJSP注释注释:2022年8月8日星期一172.2.2 JSPJSP指令指令标记标记JSPJSP指
13、令标记(指令标记(Directive ElementsDirective Elements)为)为JSPJSP引擎引擎设计的,该类标记并不直接产生任何可见的输出,而设计的,该类标记并不直接产生任何可见的输出,而是告诉是告诉JSPJSP引擎如何处理引擎如何处理JSPJSP页面的其余部分。例如:页面的其余部分。例如:可以指定一个专门的错误处理网页,当可以指定一个专门的错误处理网页,当JSPJSP页面出现错页面出现错误时,可以由误时,可以由JSPJSP引擎自动地调用错误处理网页。引擎自动地调用错误处理网页。常用的常用的JSPJSP指令标记包括:指令标记包括:pagepage页面指令,页面指令,inc
14、ludeinclude静态指令,还有静态指令,还有taglibtaglib指令。指令。2022年8月8日星期一182.2.2 JSPJSP指令指令标记标记1 1pagepage页指令标记页指令标记 Page Page指令用于定义域整个指令用于定义域整个JSPJSP页面相关的各种属性。其基本语法为:页面相关的各种属性。其基本语法为:%page n”%pagepage指令常用的的属性和默认值如表所示。指令常用的的属性和默认值如表所示。2022年8月8日星期一192.2.2 JSPJSP指令指令标记标记例如:在某个例如:在某个JSPJSP页面中,如果需要导入页面中,如果需要导入JavaJava的的s
15、qlsql包,并设置错误处理页面,包,并设置错误处理页面,则:则:%page import=”java.sql.”%提示:提示:无论无论page指令出现在指令出现在JSP页面中的什么地方,它作用的都是整个页面中的什么地方,它作用的都是整个JSP页面(包括静页面(包括静态的包含文件,但不能作用于动态的包含文件),为了保持程序的可读性和遵循态的包含文件,但不能作用于动态的包含文件),为了保持程序的可读性和遵循良好的变成习惯,良好的变成习惯,page指令最好是放在整个指令最好是放在整个JSP页面的起始位置。页面的起始位置。在一个在一个JSP页面中可以使用多个页面中可以使用多个指令,但其中的属性只能用
16、一次,指令,但其中的属性只能用一次,不过不过import属性例外,它可以多次出现,引入多个类和包,这和属性例外,它可以多次出现,引入多个类和包,这和Java中的中的import语句差不多。语句差不多。2022年8月8日星期一202.2.2 JSPJSP指令指令标记标记1 1includeinclude静态包含指令标记静态包含指令标记 include include指令用于引入其他指令用于引入其他JSPJSP页面,引入后,页面,引入后,JSPJSP引擎会将这两个引擎会将这两个JSPJSP页面翻译成一个页面翻译成一个servletservlet。因此。因此includeinclude指令通常也别称
17、为静态引入。其基本指令通常也别称为静态引入。其基本语法为:语法为:%include file=”URL”%所谓静态,是指所谓静态,是指filefile属性的值不能是一个变量,也不可以在属性的值不能是一个变量,也不可以在filefile所指定所指定的文件后添加任何参数。的文件后添加任何参数。2022年8月8日星期一212.2.2 JSPJSP指令指令标记标记【例【例4 4】includeinclude指令标记使用实例指令标记使用实例 用用includeinclude指令引入相同文件夹下的指令引入相同文件夹下的head.jsphead.jsp页面,页面,代码如下:代码如下:2022年8月8日星期一
18、222.2.2 JSPJSP指令指令标记标记创建创建head.jsphead.jsp,代码如下:,代码如下:运行运行include.jspinclude.jsp的效果如图所示。的效果如图所示。2.2.2 JSPJSP指令指令标记标记 被引入的文件必须遵循被引入的文件必须遵循JSP语法。语法。被引入的文件可以使用任意的扩展名,但都会被被引入的文件可以使用任意的扩展名,但都会被JSP引擎按照引擎按照JSP页面的处理方式去处理,为了见名知意,建议使用页面的处理方式去处理,为了见名知意,建议使用“.jspf”(JSP fragment,即,即JSP片段)作为静态引入文件的扩展名。片段)作为静态引入文件
19、的扩展名。被引入的文件中不要包含被引入的文件中不要包含、等标记,等标记,因为这样会影响引入文件中同样的标记。因为这样会影响引入文件中同样的标记。引入和被引入文件中的指令不能冲突(引入和被引入文件中的指令不能冲突(page指令中的指令中的pageEncoding和和import属性除外)。属性除外)。提示提示:2022年8月8日星期一242.2.3 JSPJSP动作动作标记标记与指令标记不同,与指令标记不同,JSPJSP动作标记(动作标记(Action ElementAction Element)是在客户端请求时动态执行的。是在客户端请求时动态执行的。JSP JSP动作标记是一种动作标记是一种特
20、殊标签,并且以前缀特殊标签,并且以前缀jspjsp和其他的和其他的HTMLHTML标签相区别,标签相区别,利用利用JSPJSP动作标记可以实现很多功能,包括动态地插入动作标记可以实现很多功能,包括动态地插入文件、重用文件、重用JavaBeanJavaBean组件、把用户重定向到另外的页组件、把用户重定向到另外的页面、为面、为JavaJava插件生成插件生成HTMLHTML代码等。代码等。2022年8月8日星期一252.2.3 JSPJSP动作动作标记标记1 1动作标记可以用来包含其他静态或动态文件。其基本语动作标记可以用来包含其他静态或动态文件。其基本语法为:法为:不带参数不带参数jsp:in
21、clude page=”URL”flush=”true|false”/带参数带参数jsp:include page=”URL”flush=”true|false”jsp:param name=”/jsp:paramjsp:param 其中,属性其中,属性pagepage指向的是被包含文件的相对路径;当属性指向的是被包含文件的相对路径;当属性flushflush为为truetrue时,表示实时输出缓冲区,它的默认值是时,表示实时输出缓冲区,它的默认值是falsefalse。子句能传递一子句能传递一个或多个参数给动态文件,也可以在一个页面中使用多个个或多个参数给动态文件,也可以在一个页面中使用多个
22、来传来传递多个参数给动态文件。递多个参数给动态文件。2022年8月8日星期一262.2.3 JSPJSP动作动作标记标记【例【例5 5】带参数的带参数的inlcudeinlcude动作标记动作标记 本例在本例在incluldeJsp.jspincluldeJsp.jsp中,通过动作标记中,通过动作标记引入引入date.jspdate.jsp,并利用并利用向被引入的页面传递参数,此处要通过向被引入的页面传递参数,此处要通过requestrequest内置对象内置对象的的setCharacterEncoding(“setCharacterEncoding(“编码格式编码格式”)”)来设定编码格式,
23、以避免传递中文来设定编码格式,以避免传递中文时乱码。时乱码。includeJsp.jspincludeJsp.jsp的代码如下:的代码如下:2022年8月8日星期一272.2.3 JSPJSP动作动作标记标记创建创建date.jspdate.jsp,代码如下:,代码如下:2022年8月8日星期一282.2.3 JSPJSP动作动作标记标记运行运行includeJsp.jspincludeJsp.jsp的效果如图所示。的效果如图所示。提示:提示:被引入的文件必须遵循被引入的文件必须遵循JSP语法。语法。被引入的文件可以使用任意的扩展名,但都会被被引入的文件可以使用任意的扩展名,但都会被JSP引擎
24、按照引擎按照JSP页面的页面的处理方式去处理,为了见名知意,建议使用处理方式去处理,为了见名知意,建议使用“.jspf”(JSP fragment,即,即JSP片段)作为静态引入文件的扩展名。片段)作为静态引入文件的扩展名。2022年8月8日星期一292.2.3 JSPJSP动作动作标记标记2 2动作标记用于在服务器端终止当前页面的运行,并重定动作标记用于在服务器端终止当前页面的运行,并重定向到其他指定页面。重定向的目标可以是静态的向到其他指定页面。重定向的目标可以是静态的HTMLHTML页面、页面、JSPJSP页面,或者页面,或者是一个程序段。其基本语法为:是一个程序段。其基本语法为:不带参
25、数不带参数jsp:forward page=”URL”带参数带参数jsp:forward page=”URL”jsp:param name=”/jsp:param jsp:param其中,属性其中,属性pagepage指向的是重定向的页面路径。指向的是重定向的页面路径。2022年8月8日星期一302.2.3 JSPJSP动作动作标记标记【例【例6 6】带参数的带参数的forwardforward动作标记动作标记 本例在本例在forward.jspforward.jsp中,通过中,通过动作标签将页面重定向到动作标签将页面重定向到forwardTo.jspforwardTo.jsp,并利用,并利用
26、传递参数。在传递参数。在forwardTo.jspforwardTo.jsp中,利用中,利用requestrequest内置对象中的内置对象中的getParameter(“getParameter(“变量名变量名”)”)来接受传递过来的参数。来接受传递过来的参数。创建创建forward.jspforward.jsp,代码如下:,代码如下:2022年8月8日星期一312.2.3 JSPJSP动作动作标记标记创建创建forwardTo.jspforwardTo.jsp,代码如下:,代码如下:forward.jspforward.jsp的运行效果如图的运行效果如图2-92-9所示。所示。2022年8
27、月8日星期一322.2.3 JSPJSP动作动作标记标记提示:提示:forward.jsp执行到执行到标记出现处时停止当前页面的执行,并标记出现处时停止当前页面的执行,并重定向到新的页面,也就是说,重定向到新的页面,也就是说,forward.jsp中中标记后的部标记后的部分不执行,如图分不执行,如图2-9所示,并没有输出表达式所示,并没有输出表达式。动作标记执行的是服务器端的跳转,浏览器地址不变,如动作标记执行的是服务器端的跳转,浏览器地址不变,如图图2-9标红方框所示,地址仍为标红方框所示,地址仍为/forward.jsp。2022年8月8日星期一332.2.3 JSPJSP动作动作标记标记
28、3 3动作标记用来传递参数给动作标记用来传递参数给JSPJSP页面。其基本语法为:页面。其基本语法为:jsp:param name=”jsp:param name=”参数名参数名”value=”value=”参数值参数值|%=|”/%”/其中,属性其中,属性namename表示传递的参数名称,并属性表示传递的参数名称,并属性valuevalue设置属性的值。设置属性的值。提示:提示:JSP标记不同于标记不同于HTML标记,属性值必须加上双引号,否则执行时会报错。标记,属性值必须加上双引号,否则执行时会报错。使用使用动作标记用来传递参数,在动作标记用来传递参数,在JSP页面中通过页面中通过req
29、uest.getParameter(“属性名属性名”)来获取参数的值。来获取参数的值。动作标记必须配合动作标记必须配合、或或等标记使用,在加载外部程序或是网页转换的时候,传递参等标记使用,在加载外部程序或是网页转换的时候,传递参数给另一个数给另一个JSP页面,单独使用没有意义。页面,单独使用没有意义。2022年8月8日星期一342.2.3 JSPJSP动作动作标记标记4 4动作标记用于在动作标记用于在JSPJSP网页中加载网页中加载Java AppletJava Applet或或JavaBeanJavaBean程程序组件,与序组件,与HTMLHTML的的与与标签有着类似的功能。这个元素有许标签
30、有着类似的功能。这个元素有许多属性设置,如表所示。多属性设置,如表所示。2022年8月8日星期一352.2.3 JSPJSP动作动作标记标记5 5、和和动作标记动作标记5.1 5.1 动作标记动作标记动作标记用来加载动作标记用来加载JSP页面中使用的页面中使用的JavaBean,其语法格,其语法格式如下:式如下:其中,其中,id指定该指定该JavaBean实例变量的名称,实例变量的名称,scope指定该指定该Bean变量的有变量的有效范围:效范围:page指只在当前指只在当前JSP页面有效;页面有效;request指在任何执行相同请求的指在任何执行相同请求的JSP页面中使用该页面中使用该Bea
31、n,直到页面执行完毕;,直到页面执行完毕;session指从创建该指从创建该Bean开始,开始,在相同在相同session下的下的JSP页面中可以使用该页面中可以使用该Bean;application指从创建该指从创建该Bean开始,在相同开始,在相同application下的下的JSP页面可以使用该页面可以使用该Bean。例如:例如:2022年8月8日星期一362.2.3 JSPJSP动作动作标记标记5 5、和和动作标记动作标记5.2 5.2 动作标记动作标记动作标记用于设置已经实例化的动作标记用于设置已经实例化的Bean对象的属性,其对象的属性,其基本语法格式为:基本语法格式为:jsp:s
32、etPropety name=”JavaBean实例名称实例名称”property=”*”|property=”属性名属性名”param=”参数参数”|property=”属性名属性名”value=”String|”/提示:提示:中中name值必须和值必须和中的中的id值相同,且大值相同,且大小写敏感小写敏感2022年8月8日星期一372.2.3 JSPJSP动作动作标记标记5 5、和和动作标记动作标记5.3 5.3 动作标记动作标记动作标记可获取动作标记可获取Bean的属性值,用于在页面中显示。的属性值,用于在页面中显示。其基本语法格式为:其基本语法格式为:2022年8月8日星期一382.3
33、 拓展实训拓展实训任务要求任务要求完成一个主题网站,进一步掌握完成一个主题网站,进一步掌握JSPJSP的基本语法。的基本语法。任务描述任务描述2.3.1 2.3.1 主题网站的运行效果主题网站的运行效果当我们在浏览主题网站时,经常会发现,这些网站的不当我们在浏览主题网站时,经常会发现,这些网站的不同频道都是用相同的同频道都是用相同的LogoLogo和频道导航做题头。本任务就是要和频道导航做题头。本任务就是要完成一个主题网站,如下面完成一个主题网站,如下面3 3张图所示。如果在每个页面的题张图所示。如果在每个页面的题头部分都放置网站的头部分都放置网站的LogoLogo频道导航,则会导致的问题是,
34、当频道导航,则会导致的问题是,当网站网站LogoLogo或频道需要更换时,就需要对每一个频道的网页重或频道需要更换时,就需要对每一个频道的网页重新设计,这样的维护既费时又费力。因此,为了便于实现快新设计,这样的维护既费时又费力。因此,为了便于实现快速维护,我们将两个相对独立的网页拼接成第一张图所示的速维护,我们将两个相对独立的网页拼接成第一张图所示的页面,更改页面,更改LogoLogo图时,我们只需要对图时,我们只需要对top.htmltop.html进行调整即可。进行调整即可。2022年8月8日星期一392.3.1 拓展实训拓展实训2022年8月8日星期一402.3.1 拓展实训拓展实训20
35、22年8月8日星期一412.3.1 拓展实训拓展实训2022年8月8日星期一422.3.2 功能设计功能设计1.1.创建工程创建工程启动启动IntelliJ IDEAIntelliJ IDEA,创建,创建webweb应用应用chapter2chapter2,在,在webweb文件夹下创建文件夹下创建imagesimages文文件夹,并将件夹,并将top.jpgtop.jpg导入到导入到imagesimages文件夹中。在文件夹中。在webweb文件夹下创建文件夹下创建JSPJSP类型文类型文件件welcome.jspwelcome.jsp、index.jspindex.jsp、feature.
36、jspfeature.jsp、contact.jspcontact.jsp和和HTMLHTML类型文件类型文件top.htmltop.html、welcome.htmlwelcome.html、feature.htmlfeature.html、contact.htmlcontact.html。2.2.将已有资源添加到当前工程将已有资源添加到当前工程展开展开chapter2chapter2工程,可以看到工程,可以看到chapter2chapter2工程下的工程下的webweb子文件。选中子文件。选中webweb子文件子文件夹,单击鼠标右键,在弹出的快捷菜单中选择夹,单击鼠标右键,在弹出的快捷菜单
37、中选择NewDirectoryNewDirectory命令,创建命令,创建imagesimages文件夹,将制作好的图片文件文件夹,将制作好的图片文件top.jpgtop.jpg复制到该文件夹。复制到该文件夹。3.HTML3.HTML页面设计页面设计首先创建首先创建top.htmltop.html、welcome.htmlwelcome.html、feature.htmlfeature.html和和contact.htmlcontact.html页面,如页面,如下下3 3张图张图所示。所示。2022年8月8日星期一432.3.2 拓展实训拓展实训2022年8月8日星期一442.3.2 拓展实训
38、拓展实训2022年8月8日星期一452.3.2 拓展实训拓展实训2022年8月8日星期一462.3.2 拓展实训拓展实训top.htmltop.html代码如下:代码如下:2022年8月8日星期一472.3.2 拓展实训拓展实训welcome.htmlwelcome.html代码如下:代码如下:2022年8月8日星期一482.3.2 拓展实训拓展实训feature.htmlfeature.html代码如下:代码如下:2022年8月8日星期一492.3.2 拓展实训拓展实训contact.htmlcontact.html代码如下:代码如下:2022年8月8日星期一502.3.2 拓展实训拓展实训
39、4.JSP4.JSP页面功能设计页面功能设计(1 1)welcome.jspwelcome.jsp功能设计功能设计在在chapter2chapter2工程中,创建工程中,创建welcome.jspwelcome.jsp页面,其功能是将页面,其功能是将top.htmltop.html和和welcome.htmlwelcome.html拼接成一个网页显示。代码如下:拼接成一个网页显示。代码如下:2022年8月8日星期一512.3.2 拓展实训拓展实训(2 2)feature.jspfeature.jsp功能设计功能设计在在chapter2chapter2工程中,创建工程中,创建feature.js
40、pfeature.jsp页面,其功能是将页面,其功能是将top.htmltop.html和和feature.htmlfeature.html拼接成一个网页显示。代码如下:拼接成一个网页显示。代码如下:2022年8月8日星期一522.3.2 拓展实训拓展实训(3 3)contact.jspcontact.jsp功能设计功能设计在在chapter2chapter2工程中,创建工程中,创建contact.jspcontact.jsp页面,其功能是将页面,其功能是将top.htmltop.html和和contact.htmlcontact.html拼接成一个网页显示。代码如下:拼接成一个网页显示。代码
41、如下:2022年8月8日星期一532.3.2 拓展实训拓展实训(4 4)index.jspindex.jsp功能设计功能设计在在top.htmltop.html中,中,“学院首页学院首页”指向的链接为指向的链接为index.jsp?choice=1index.jsp?choice=1,其,其中,中,index.jspindex.jsp表示要链接到的页面;链接地址后的表示要链接到的页面;链接地址后的?,表示后面部分为,表示后面部分为所传递的参数;所传递的参数;choicechoice表示的传递的参数名;表示的传递的参数名;1 1表示的是传递参数的参表示的是传递参数的参数值。如传递多个参数,则用数
42、值。如传递多个参数,则用&进行连接。相应的,进行连接。相应的,“学院特色学院特色”指向的指向的链接为链接为index.jsp?choice=2index.jsp?choice=2;“联络方式联络方式”指向链接指向链接index.jsp?choice=3index.jsp?choice=3。index.jspindex.jsp通过通过request.getParameter(“choice”)request.getParameter(“choice”)获取参数值,并将相应的页面嵌获取参数值,并将相应的页面嵌入到入到index.jspindex.jsp的当前位置。代码如下:的当前位置。代码如下:2022年8月8日星期一542.3.2 拓展实训拓展实训2022年8月8日星期一55课后习题课后习题1 1请简述请简述JSPJSP页面的构成。页面的构成。2 2请简述请简述JSPJSP静态注释和动态注释的区别及用法。静态注释和动态注释的区别及用法。3 3请简述指令标签请简述指令标签includeinclude和动作标签和动作标签includeinclude的区的区别。别。谢谢 谢谢!