第6章 JSP语法基础
- 格式:pdf
- 大小:1.12 MB
- 文档页数:27
Jsp基本语法Jsp语法分为3类:脚本元素、指令元素、动作元素。
jsp的脚本元素有以下4个:1. 隐藏注释:<%--这是客户端不可见的隐藏注释--%>2. 声明(declarations):<%!这是声明%>3. 脚本段(scriptlets):<%这是脚本段%>4. 表达式(expression):<%=这是表达式%>jsp的指令元素有以下3个:指令主要用来提供整个JSP网页相关的信息,并且用来设定JSP页面的相关属性。
一、page指令功能:设定整个JSP网页的属性和相关功能。
语法:<%@ page attribute1="value1" attribute2="value2" %>标签元素:<jsp:directive.page attribute1="value1" attribute2="value2" />page指令元素的属性language="language" 指定JSP Container要用什么语言来编译JSP网页。
目前只可以使用Java语言,不过不排除增加其它语言。
默认值为Java。
extends="className" 定义此JSP页面产生的Servlet是继承自哪个父类。
必须为实现HttpJspPage接口的类。
JSP规范对不完全理解其隐意的情况下使用此属性提出警告。
import="importList" 定义此JSP页面可以使用哪些Java API。
用逗号分隔列出一个或多个全质类名。
此列表用于在生成的java servlet中创建相应的导入语句。
以下包是自动包含的,不必被指出:ng.*;java.servlet.*;java.servlet.jsp.*;java.servlet.htt.*session="true|false" 指明JSP页面是否需要一个HTTP会话,如果为true,那么产生的servlet 将包含创建一个HTTP会话(或访问一个HTTP会话)的代码,缺省为true。
JSP脚本JSP通用语法规则JSP通用语法规则包括:JSP的标记规则、JSP元素中的相对路径规则、JSP元素中的转义规则。
JSP的标记规则每一个JSP元素都有一个起始标记和一个结束标记。
起始标记为“<%”或“<jsp:”,结束标记为“%>”或“/>”。
比如:<jsp:include page=”/index.jsp”/><%if(sum>0) sum=sum+42;%>注起始标记和结束标记一定要在同一个JSP页面中,且成对出现JSP元素中的相对路径规则在JSP中可以使用相对路径,相对路径是以字符“/“开头的。
比如:/test/testChinese.jsp——说的实际路径是“C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\test\testChinese.jsp “JSP元素中的转义规则我们已经知道,“<%”和“%>”是JSP中的标记字符,那么如果我们想在程序中用到这两个字符,该怎么区分呢?这就要用到转移规则了。
这里的转义规则包括:“’”被转义为“\’”“””被转义为“\””“\”被转义为“\\”“<%”被转义为“<\%”“%>”被转义为“%\>”下面我们通过一个小例子来看看。
其显示结果如图2-2所示。
图2-2 JSP转义规则示例上面显示结果,可以看到,本来是JSP标记语言的字符,也都显示出来了,实现这样功能的程序代码是怎么样的呢?02-02.jsp文件源代码:<html><head><title>JSP转义规则的例子</title></head><%@page contentType="text/html;charset=gb2312" %><body><p><%out.print("测试要避免冲突的字符串1:\'");%><p><%out.print("测试要避免冲突的字符串2:\"");%><p><%out.print("测试要避免冲突的字符串3:\\");%><p><%out.print("测试要避免冲突的字符串4:%\>");%></p></body></html>JSP脚本元素语法讲了语法规则以后,我们来看看脚本元素,JSP中的脚本元素有四种:注释、声明、表达式和程序段。
jsp语法
JSP(Java Server Pages)是Java语言的服务器端脚本语言,是Sun Microsystems开发的基于Java平台的应用程序服务器的一个服务器端编程模型,其特点是可以将客户端的动作与服务器端的应用程序组合起来完成数据交换。
JSP本质上是一种来自一连串Java程序模型的服务器端编程模式,使网页开发者可以利用Java编程语言开发动态网页和web应用程序。
作为Java程序模型,JSP结合了HTML及Web标准,并不需要程序员编写大量的Java代码。
JSP简化了程序写作,使用标准的结构来让程序员更容易的接受和理解它的结构。
JSP的语法由标准的HTML结构以及JSP指令、动作元素和scriptlet构成,其中,JSP指令在标签中定义及声明其编译等参数;动作元素可以用来执行表达运算、使用Bean组件、输出内容、引入其他资源以及错误处理等等;scriptlet则可以用来包含一段由Java语言编写的程序片段,它也是JSP最重要的部分。
JSP提供了一种新的Web解决方案,可以降低开发Web应用程序的工作量,减少由Java程序员编写大量的程序代码的工作,更具可靠性和可维护性,但特别适用于开发大型Web应用程序和复杂的多种操作系统环境下的服务器端程序开发。
《JSP实用教程(第三版)》课后答案第1章 JSP简介1.安装Tomcat引擎的计算机需要事先安装JDK吗?答:需要。
2.怎样启动和关闭Tomcat服务器?答:bin目录下使用startup.bat启动Tomcat服务器。
bin目录下使用shutdown.bat 关闭Tomcat服务器。
3. Boy.jsp和boy.jsp是否是相同的JSP文件名字?答:不是4. 请在D:\下建立一个名字为water的目录,并将该目录设置成一个Web服务目录,然后编写一个简单JSP页面保存到该目录中,让用户使用虚拟目录fish 来访问该JSP页面。
答:设置方法:①建立D:\ water目录;②修改server.xml文件,在</host>上一行添加:<Context path="/fish" docBase="D:\ water" debug="0" reloadable="true"/>③使用http://localhost:8080/ fish /example1_1.jsp访问example1_1.jsp页面.5. 假设Dalian是一个Web服务目录,其虚拟目录为moon。
A.jsp保存在Dalian 的子目录sea中。
那么在Tomcat服务器(端口号8080)所在计算机的浏览器键入下列哪种方式是访问A.jsp的正确方式?A.http://127.0.0.1:8080/A.jsp B. http://127.0.0.1:8080/Dalian/A.jspC. http://127.0.0.1:8080/moon/A.jspD. http://127.0.0.1:8080/moon/sea/A.jsp 答:D6.如果想修改Tomcat服务器的端口号,应当修改哪个文件?能否将端口号修改为80?答:修改Tomcat服务器的conf目录下的主配置文件server.xml可以更改端口号.若Tomcat服务器上没有其它占有80端口号的程序,可以将其修改为80,否则不能。
JSP课后习题参考答案●JSP引擎调用Java虚拟机解释执行.class文件,并将运行结果返回给服务器。
●服务器将运行结果以HTML形式作为响应返回给客户端的浏览器。
由于一个JSP页面在第一次被访问时要经过翻译、编译和执行这几个步骤,所以客户端得到响应所需要的时间比较长。
当该页面再次被访问时,它对应的.class文件已经生成,不需要再次翻译和编译,JSP引擎可以直接执行.class文件,因此JSP页面的访问速度会大为提高。
2. 简述JSP两种体系结构。
答:JSP规范中分别称作JSP Model 1 和JSP Model 2,它们的本质区别在于处理批量请求的位置不同。
Model1,在Model1体系中,JSP页面独自响应请求并将处理结果返回客户。
这里仍然存在显示与内容的分离,因为所有的数据存取都是由JavaBean来完成的。
尽管Model1体系十分适合简单应用的需要,它却不能满足复杂的大型Web应用程序需要。
不加选择地随意运用Model 1,会导致JSP页内被嵌入大量的脚本片段或Java代码。
尽管这对于Java程序员来说可能不是什么大问题,但如果JSP页面是由网页设计人员开发并维护的这就确实是个问题了。
从根本上讲,将导致角色定义不清和职责分配不明,给项目管理带来不必要的麻烦。
Model2体系结构,是一种把JSP与Servlet联合使用来实现动态内容服务的方法。
它吸取了两种技术各自的优点,用JSP生成表示层的内容,让Servlet完成深层次的处理任务。
Servlet充当控制者的角色,负责管理对请求的处理,创建JSP页面需要使用的Bean和对象,同时根据用户的动作决定把哪个JSP页面传给请求者。
在JSP页面内没有处理逻辑,它仅负责检索原先由Servlet创建的对象或JavaBean,从Servlet中提取动态内容插入静态模板。
分离了显示和内容,明确了角色的定义以及实现了开发者与网页设计者的分开。
项目越复杂,使用Model 2体系结构的优势就越突出。
js基础语法
JavaScript是一种高级的、解释型的编程语言,它是一种脚本语言,可以用来开发Web应用、游戏、桌面应用、移动应用等等。
以下是JavaScript的基本语法:
变量:用var关键字声明一个变量,例如var num = 5;,其中num
是变量名,5是变量的值。
数据类型:JavaScript有基本数据类型(string、number、boolean、null、undefined)和复杂数据类型(object、array、function)。
控制流程:if-else语句、for循环、while循环、switch语句等用
来控制代码执行流程的语法。
函数:用function关键字定义一个函数,例如function add(num1, num2) {return num1 + num2;},其中add是函数名,num1和num2是函
数的参数,return语句用来返回函数的值。
对象:JavaScript中的对象是键值对的集合,可以通过点操作符(.)或者方括号([])来访问对象的属性和方法,例如var person = {name: 'Tom', age: 20};,可以通过或者person['name']来获取name属性的值。
数组:JavaScript中的数组是一组值的有序列表,可以通过方括号
来访问数组的元素,例如var nums = [1, 2, 3, 4];,可以通过nums[0]
来获取数组的第一个元素的值。
以上是JavaScript的基础语法,在深入学习JavaScript时,还需要
进一步了解JavaScript的面向对象编程、模块化等高级特性。
《JSP程序设计》教案第一章:JSP简介1.1 课程目标了解JSP的概念和发展历程掌握JSP的运行原理和基本语法1.2 教学内容JSP的定义和发展历程JSP的运行原理JSP的基本语法1.3 教学方法讲解和演示相结合实例教学1.4 教学资源教材:《JSP程序设计》课件:JSP简介.ppt1.5 教学过程介绍JSP的概念和发展历程(15分钟)讲解JSP的运行原理(15分钟)介绍JSP的基本语法(15分钟)1.6 课后作业掌握JSP的概念和发展历程理解JSP的运行原理第二章:JSP页面结构2.1 课程目标掌握JSP页面的基本结构和标记了解JSP页面的生命周期2.2 教学内容JSP页面的基本结构JSP页面的生命周期JSP标记的使用2.3 教学方法讲解和演示相结合实例教学2.4 教学资源教材:《JSP程序设计》课件:JSP页面结构.ppt2.5 教学过程介绍JSP页面的基本结构(20分钟)讲解JSP页面的生命周期(15分钟)介绍JSP标记的使用(15分钟)2.6 课后作业掌握JSP页面的基本结构了解JSP页面的生命周期第三章:JSP内置对象3.1 课程目标掌握JSP的内置对象及其作用熟练使用JSP内置对象进行数据处理3.2 教学内容JSP内置对象的介绍JSP内置对象的使用方法3.3 教学方法讲解和演示相结合实例教学3.4 教学资源教材:《JSP程序设计》课件:JSP内置对象.ppt3.5 教学过程介绍JSP内置对象(20分钟)讲解JSP内置对象的使用方法(20分钟)3.6 课后作业掌握JSP内置对象的概念和作用熟练使用JSP内置对象进行数据处理第四章:JSP指令4.1 课程目标掌握JSP指令的作用和用法学会使用JSP指令优化页面性能4.2 教学内容JSP指令的介绍JSP指令的使用方法4.3 教学方法讲解和演示相结合实例教学4.4 教学资源教材:《JSP程序设计》课件:JSP指令.ppt4.5 教学过程介绍JSP指令(20分钟)讲解JSP指令的使用方法(15分钟)4.6 课后作业掌握JSP指令的概念和作用学会使用JSP指令优化页面性能第五章:JSP脚本语言5.1 课程目标掌握JSP脚本语言的基本语法学会在JSP页面中使用脚本语言5.2 教学内容JSP脚本语言的介绍JSP脚本语言的基本语法5.3 教学方法讲解和演示相结合实例教学5.4 教学资源教材:《JSP程序设计》课件:JSP脚本语言.ppt5.5 教学过程介绍JSP脚本语言(20分钟)讲解JSP脚本语言的基本语法(15分钟)5.6 课后作业掌握JSP脚本语言的概念和作用学会在JSP页面中使用脚本语言第六章:JSP标准标签库6.1 课程目标掌握JSP标准标签库的基本用法学会使用JSP标准标签库简化页面代码6.2 教学内容JSP标准标签库的介绍JSP标准标签库的基本用法6.3 教学方法讲解和演示相结合实例教学6.4 教学资源教材:《JSP程序设计》课件:JSP标准标签库.ppt6.5 教学过程介绍JSP标准标签库(20分钟)讲解JSP标准标签库的基本用法(20分钟)6.6 课后作业掌握JSP标准标签库的概念和作用学会使用JSP标准标签库简化页面代码第七章:JSP非标准标签库7.1 课程目标了解JSP非标准标签库的来源和作用学会使用JSP非标准标签库提高开发效率7.2 教学内容JSP非标准标签库的介绍JSP非标准标签库的使用方法7.3 教学方法讲解和演示相结合实例教学7.4 教学资源教材:《JSP程序设计》课件:JSP非标准标签库.ppt7.5 教学过程介绍JSP非标准标签库(20分钟)讲解JSP非标准标签库的使用方法(20分钟)7.6 课后作业了解JSP非标准标签库的概念和作用学会使用JSP非标准标签库提高开发效率第八章:JSP数据库操作8.1 课程目标掌握JSP数据库连接的方法学会使用JSP进行数据库操作8.2 教学内容JSP数据库连接的方法JSP数据库操作的常用语句8.3 教学方法讲解和演示相结合实例教学8.4 教学资源教材:《JSP程序设计》课件:JSP数据库操作.ppt8.5 教学过程介绍JSP数据库连接的方法(20分钟)讲解JSP数据库操作的常用语句(20分钟)8.6 课后作业掌握JSP数据库连接的方法学会使用JSP进行数据库操作第九章:JSP会话管理9.1 课程目标了解JSP会话管理的基本原理学会使用JSP进行会话管理9.2 教学内容JSP会话管理的基本原理JSP会话管理的方法9.3 教学方法讲解和演示相结合实例教学9.4 教学资源教材:《JSP程序设计》课件:JSP会话管理.ppt9.5 教学过程介绍JSP会话管理的基本原理(20分钟)讲解JSP会话管理的方法(20分钟)9.6 课后作业了解JSP会话管理的基本原理学会使用JSP进行会话管理第十章:JSP安全与优化10.1 课程目标掌握JSP安全性的基本措施学会对JSP页面进行性能优化10.2 教学内容JSP安全性的基本措施JSP页面性能优化方法10.3 教学方法讲解和演示相结合实例教学10.4 教学资源教材:《JSP程序设计》课件:JSP安全与优化.ppt10.5 教学过程介绍JSP安全性的基本措施(20分钟)讲解JSP页面性能优化方法(20分钟)10.6 课后作业掌握JSP安全性的基本措施学会对JSP页面进行性能优化重点和难点解析1. JSP页面的基本结构:JSP页面由声明、脚本程序、标签库指令、脚本片段、表达式语言、内联标记和注释等部分组成。
第 6 章 JSP 语法基础主要分为模板元素(Template Data)和 JSP 元素(Elements)两大部分。
在 JSP 网页文件中,模板元素就是JSP 容器不做处理的部分;JSP 元素是必须经由 JSP 容器进行处理的部分,包 括指令元素、脚本元素、动作元素、EL 元素等四类。
本章主要介绍基本的 JSP 语法以及常 用 JSP 元素的使用。
通过本章的学习,读者应掌握如下内容:¨ JSP 页面元素的基本构成¨ JSP 指令元素(Directive Elements)¨ JSP 脚本元素(Scripting Elements)¨ JSP 动作元素(Action Elements)¨ 表达式语言EL(Expression Language)元素的概念¨ JSP 和 Servlet 的关系6.1 JSP页面元素的基本构成Sun公司首先发展出 Servlet,其功能非常强大,体系设计也很完善。
但是它输出HTML 标记时,必须使用 out.println()一句一句地输出。
当网页内容非常复杂时,这无异于一场梦 魇。
后来 Sun 公司推出了类似于 ASP 的嵌入型 Scripting Language,并命名为 Java Server Pages,简称为 JSP。
JSP 大大减轻了Web 程序员的负担,提高了动态网页的开发效率。
本节主要介绍JSP页面元素的基本构成。
为了让读者对JSP页面能有个比较全面的了解,后面几节详细讲述JSP 的语法知识,最后深入剖析JSP 和 Servlet 的关系。
6.1.1 Case:应用 Dreamweaver 创建页面开发环境相信读者对于 Dreamweaver 站点的管理操作(新建、编辑、删除等)已经比较熟悉, 请自行创建一个本地站点 jspBook。
为紧密结合已经创建的 Web 项目 jspBook 和 Tomcat 服 务器,这里特以Dreamweaver CS5 的“站点设置对象”对话框为例,说明如下几点需要特别 注意的地方。
(1)本地站点信息:在〖站点〗页将本地站点文件夹指向已建项目 jspBook的 WebRoot 目录,如图 6.1 所示;在〖高级设置 | 本地信息〗页中选择“区分大小写的链接检查”选项, 如图 6.2 所示。
·135··136·图6.1 指定本地站点jspBook的“本地站点文件夹”选项图6.2 指定本地站点jspBook 的“区分大小写的链接检查”选项(2)服务器信息:在〖服务器〗页中,新建或编辑服务器对话框〖基本〗页中,连接 方法选择“本地/网络” ,服务器文件夹指向%Catalina_Home%\webapps\jspBook ,并指定 Web URL :http://localhost:8090/jspBook/,即与通过浏览器访问部署在 Tomcat 中的 Web 应用 jspBook 的 URL 相同, 如图 6.3 所示;〖高级〗 页中选择 “保存时自动将文件上传到服务器” , 测试服务器模型选择“JSP ” ,如图 6.4所示。
·137·图6.3 “服务器·基本”选项 图6.4 “服务器·高级”选项想一想 请读者独立思考,以上四点为什么这样设置?6.1.2 Case :一个典型的 JSP 文件在 Dreamweaver 本地站点 jspBook 中创建目录 ch06 及其子目录 pub。
在目录 pub 中新建 head.jsp 和 copyright.html 两个页面(内容参照图 6.5) 。
不过,请将<html>、</html>、<body>、</body>等标记删除,只保留需要显示的内容本身。
在目录 ch06 中新建JSP 文件 sample.jsp ,如清单 6.1 所示。
清单6.1 一个典型的JSP 文件sample.jsp1: <%@ page contentType="text/html; charset=utf8" language="java"import="java.sql.*" errorPage="" %>2: <%@ page info="一个典型的JSP 文件" %>3: <!DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1transitional.dtd">4: <html xmlns="/1999/xhtml">5: <head>6: <meta httpequiv="ContentType" content="text/html; charset=utf8" /> 7: <title>一个典型的JSP 文件</title>8: </head>9:10: <body>11: <! 这是一个典型的JSP 页面,它包含了JSP 中常用的元素。
>12: <% @author Wuerlang, 2008626 10:18. %>13:14: <jsp:include page="pub/head.jsp" />15:16: <table align="center">17: <tr bgcolor="#3399FF">18: <td>下面循环输出 6 行“Hello World!”</td>19: </tr>20: <%21: /*通过循环输出10行“Hello World!”,且奇偶行的背景颜色不同*/22: String s = "Hello World!"; //声明一个字符串变量23: int i, count = 6; //声明两个整型变量·138· 24:String color1 = "#99ccff",color2 = "#88cc33"; 25:for(i=1;i<=count;i++){ 26:String color= color2; //color 变量表示颜色,通过它来动态控制奇 偶行的颜色 27:if(i%2==0)color = color1; 28:out.println("<tr align=center bgcolor=" + color + "><td>" + s + "</td></tr>"); 29: } 30: %> 31:</table> 32:33:<% /**下面是使用表达式的例子**/ %> 34:<p><%="经过for 循环之后,count 的值为:"+count%></p> 35:<p>上面有一行隐藏注释,您“查看源文件”,不过看不到啦^_^</p> 36:37:<%@ include file = "pub/copyright.html" %> 38:39:</body> 40: </html>保存这个文件,在浏览器中访问 http://localhost:8090/jspBook/ch06/sample.jsp ,结果如图6.5 所示。
对于这个JSP 文件,这里暂且不做任何说明。
小贴士 代码第 1、3~6行是 Dreamweaver CS5 自动生成的,第8~10行和第 39~40 行也是如此。
为节省篇幅, 本章以后所列的代码清单将忽略类似这样一些自动生成的代码 (但 行号保留),请读者特别留意。
图6.5 示例页面sample.jsp页首Head.jsp 部分页脚copyright.html 部分6.1.3 模板元素(Template Data)和 JSP 元素(Elements)JSP 网页元素主要分为模板元素(Template Data)和JSP 元素(Elements)两大部分。
模板元素是指JSP 的静态 HTML或者 XML内容, 即JSP 服务器不处理的部分, 服务器 会直接送到客户端执行。
这部分内容可以说是网页的框架, 它们影响页面的结构和美观程度, 主要是 Web 页面设计人员和美工的工作,对JSP 程序员来说,并不怎么关心。
在清单 6.1 中,除了“<%”和“%>”之间以及第 14 行代码之外的部分均属于模板元素。
在 JSP 文件的转译期,JSP 容器将把这些模板元素编译到 Servlet 里,表 6.1 列举了第 16、17 行的 HTML代码及其在 Servlet 里的对应代码(第 76、77 行) ;当进入请求期时,JSP 容器会把它们一字不变地发送到客户端。
表6.1 HTML代码及其在Servlet中的对应代码HTML代码 Servlet中的对应代码<table align="center">out.write("<table align=\"center\">\r\n");<tr bgcolor="#3399FF"> out.write(" <tr bgcolor=\"#3399FF\">\r\n");注:<tr>标签前面的三个空格在Servlet的out.write()语句中也是原样输出的。
小贴士要查阅这个JSP 文件对应的 Servlet 代码,请查找下面的这个文件: %Catalina_HOME%\work\Catalina\localhost\jspBook\org\apache\jsp\ch06\sample_jsp.java。