jsp指令与动作
第2章 JSP语法

五、Java控制结构
• 顺序结构 • 选择结构 • 循环结构
顺序结构
• 按设计时所确定的次序,一个一个语句的顺序执行 • 一般程序主体采用顺序结构,其中嵌套选择和循环结构。
选择结构控制
单选if、 双选if„else、 多选switch
if语句
if (条件表达式) 语句
条件?
True
例:
String x="男",s=""; if(x=="男") s="不能进入";
实践环节: 上机实战,验证结果
• 例3:利用Switch语句编程实现分数和等级的对应 • 0~59:E 60~70:D 70~80:C • 80~90:B 90~100:A
实践环节: 编写网页 exa2_14.jsp:表单页面,输入学生的成绩 exa2_15.jsp:根据成绩值显示成绩的等级
二、循环结构控制
知识点介绍
• 乱码问题: • ex9.jsp页面获取的信息可能是乱码(由很多?组 成),此时必须对含有汉子的字符进行特殊的处 理。
• 解决方案:在获取表单信息之前设置统一编码 • request.setCharacterEncoding("GBK");
• 例1写出程序 • • y= •
-1 0 1
案例
例1: int x=6, y=10, k=5; switch( x%y ) { case 0: k=x*y; break; case 6: k=x/y; break; case 12: k=x-y; break; default: k=x*y-x; break; } 例2: char ch='A'; int r=6; switch( ch+5 ) { case 'A': r=r+3; break; case 'B': r=r+5; break; case 'C': r-=6; break; default : } r/=2;
第3讲 JSP语法基础(一)PPT课件

Javascript是NetScape公司的产品,比JSP 简单很多,主要用于客户端,实现基于浏 览器上的一些动态功能,能够在客户端动 态生成HTML。
3.1.2 JSP中的脚本元素
从前面学习中知道,在普通的HTML 网页中使用专用的标记加入JSP的动态部 分,就构成了JPS动态网页。基本上所有 的JSP动态部分都是以“<%”开始,到 “%>”结束,两者之间的就是JSP动态内 容,总称为JSP元素。
(1)整型
JSP中的整型数据用于表示整数,根 据其数据所占内存的大小,又可分为四种, 如表3-1所示。
表3-1
JSP整型数据类型
数据类型 关键字 字长(位)
表数范围
缺省
字节型
byte
−128~127 8
短整型 short
−32768~32767 16
整型
int
−2147483648~2147483647 32
其中,expression部分是表达式的内容, 它是一个有计算结果的JSP表达式(注意, 表达式一定要有一个可以输出的值),如 数学计算式子、有返回值的函数、变量等。
<%=n%> <b><%=new Date()%><b> <%=n+m%>
3.脚本片段
脚本片段(Scriptlets)也称为代码片 段,它是一个有效的Java程序段,是JSP 中的代码部分。在这个部分中可以使用几 乎任何Java的语法来编制程序,它是嵌放 在<%和%>标记中的,语法格式如下: <% scriptlet %> 例:time1.jsp
JSP中的注释可以分为两类:一类是输出到 客户端,用户在查看源文件时可以看见;另一类 是仅在服务器端,供开发者使用的,这种注释仅 服务器端可见,不会发送到客户端。
JSP实验报告

中南民族大学管理学院学生实验报告课程名称: JSP程序设计年级: 2010专业:姓名:学号:指导教师:实验地点:管理学院综合实验室学年至学年度第学期第一章 JSP简介实验 Tomcat服务器的安装与配置一、实验目的本实验的目的是让学生掌握怎样设置Web服务目录、怎样访问Web服务目录下的JSP 页面、怎样修改Tomcat服务器的端口号。
二、实验要求1、将下载的apache-tomcat-6.0.13.zip解压到硬盘某个分区,比如D。
2、在硬盘分区D下新建一个目录,名字为student,见stuent设置为Web服务目录,并为该Web服务目录指定名字为good的虚拟目录。
3、修改端口号为5678.在server.xml文件中找到修改端口号的部分,将端口号修改为5678.4、启动Tomcat服务器。
5、用文本编辑器编写一个简单的JSP页面biao.jsp,并保存到Web服务目录student中。
6、用浏览器访问Web服务目录student中的jsp页面biao.jsp。
三、实验内容1、Tomcat安装成功并运行2、编码实现乘法表3.代码四、实验结果biao.jsp页面五、实验结果分析1、默认的端口号为8080,若修改,在conf目录下的server.xml文件中修改端口号。
2、设置虚拟目录。
在conf目录下的server.xml中</Host>前加入:<Context path=”/**” docBase=”路径” debug=”0” reloadable=”true/”>3、Tomcat服务器必须保持启动。
第二章 JSP页面与JSP标记实验1 JSP页面的基本结构一、实验目的本实验的目的是让学生掌握怎样在JSP页面中使用成员变量,怎样使用Java程序片、Java表达式。
二、实验要求本实验将用户输入的单词按字典顺序。
需要编写两个JSP页面,名字分别为inputWord.jsp和showDictionary.jsp。
第2章 JSP语法

<jsp :param name= »param2 »value= »value2 »/> </jsp:forward>
<jsp :param name= »param1 »value= »value1 »/>
小结
本章主要介绍了JSP页面的组成、指令、动作等技术,重点介绍 了JSP的page指令、include指令的使用,<jsp:include>、 <jsp:forward>等动作指令的使用。 通过本章的学习,读者可以建立一个简单功能的JSP网站。
1.page指令 page指令就是通过设置内部的多个属性来定义JSP文件中的全局 特性。需要注意的是,page指令只能对当前自身页面进行设置, 即每个页面都有自身的page指令。如果没有对属性进行设置, JSP将使用默认指令属性值。
2.include指令 在JSP开发中,可以将一些重用的代码写入一个单独的文件中, 然后通过include指令引用该文件,从而缓解代码的冗余问题, 修改也比较方便。Include指令语法格式为: <%@ include file=”被包含的文件路径”%>
扩展——代码编写规范
1.JSP文件命名 JSP文件名称要以小写字母命名,名称要体现出该页面的意义, 最好能够与模块名称联系在一起。 例如: login.jsp --登录页面 register.jsp --注册页面 message.jsp --消息页面
新知识点——JSP页面组成、声明、代码段、表达式、注释 JSP页面由两部分组成,一部分为静态部分,即HTML标记,用 来完成数据页面显示;另一部分为动态部分,用来完成数据处理, 包括脚本元素、指令元素和动作元素。 脚本元素用来嵌入Java代码,这些Java代码将成为转换得到的 Servlet的一部分;JSP指令元素用来从整体上控制Servlet的结 构;动作元素用来引入现有的组件或者控制JSP引擎的行为。
include指令和include动作的区别

include指令和include动作的区别include指令和include动作都能实现将外部文档包含到JSP文档中的功能,名称也很相似,非常容易混淆。
include指令和include动作到底有什么分别,哪一种方式会更好呢?1.include指令include可以在JSP页面转换成Servlet之前,将JSP代码插入其中。
它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如属性、方法的定义和文档类型的设定。
它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为主页面不会自动地查看被包含的页面是否发生更改。
include指令的语法格式如下<%@ include file="Relative Url"%>2.include动作jsp:include动作是在主页面被请求时,将次级页面的输出包含进来。
尽管被包含的页面的输出中不能含有JSP,但这些页面可以是其他资源所产生的结果。
服务器按照正常的方式对指向被包含资源的URL进行解释,因而这个URL可以是Servlet或JSP页面。
服务器以通常的方式运行被包含的页面,将产生的输出放到主页面中,这种方式与RequestDispatcher 类的include方法一致。
它的优点是在被包含的页面发生更改时,无须对主页面做出修改。
它的缺点是所包含的是次级页面的输出,而非次级页面的实际代码,所以在被包含的页面中不能使用任何有可能在整体上影响主页面的JSP构造。
jsp:include动作的完整语法如下<jsp:include page="Relative path to resource" flush="true">其中jsp:include之间不能有空格,page属性指定被包含的页面,这个属性是必需的,是指向某种资源的相对URL。
如果这个相对URL不是以/开头,则将其解释为相对于主页面的路径;如果是以/开头,是这个URL被解释为相对于当前WEB应用的根目录,而不是服务器的根目录,这是因为该URL是由服务器来解释的,不是由用户的浏览器来解释的。
动态网页设计(JSP)

计算Java表达式得到的结果被转换成字符串,然后插入到页面。 计算在运行时进行(页面被请求时),因此可以访问和请求有 关的全部信息。例如,下面的代码显示页面被请求的日期/时间: Current time: <%= new java.util.Date() %>
动态网页设计(JSP)
Java程序片
在Jsp中,在“<%”和 “%>”之间书写的程序代码为Java程序片 在程序片中声明的变量只在页面有效,是局部变量,不能共享。
但是,在 之间声明的变量可以在不同的客 户间共享,有效范围是整个Jsp页面,声明周期是服务器关闭后变量才会被 释放。
“<%!”和 “%>”
JSP表达式用来把Java数据直接插入到输出。其语法如下: <%= Java Expression %>
动态网页设计(JSP)
<jsp:plugin>
使用“<jsp:plugin>”插入一个applet或Bean,必要的话 还要下载一个Java插件用于执行它。
JSP 语法格式如下:
<jsp:plugin type="bean | applet" code="classFileName" codebase="classFileDirectoryName"
errorPage用来设定当JSP页面出现异常(Exception)时,所 要转向的页面。如果没有设定,则JSP容器会用默认的当 前网页来显示出错信息。例如: “<%@page errorPage="/error/error_page.jsp"%>”
isErrorPage用来设定当前的JSP页面是否作为传回错误页面 的网页,默认值是“false”。如果设定为“true”,则JSP容 器会在当前的页面中生成一个exception对象。
JSP课后习题参考答案
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体系结构的优势就越突出。
第5章 JSP技术模型
5.1.3 JSP动作
动作(actions)是页面发给容器的命令,它指示容器在页面执 行期间完成某种任务。动作的一般语法为: <prefix:actionName attribute-list /> 在JSP页面中可以使用3种动作: JSP标准动作 标准标签库(JSTL)中的动作 用户自定义动作。 例如,下面一行指示容器把另一个JSP页面copyright.jsp的输出 包含在当前JSP页面的输出中:
编译阶段
容器将调用Java编译器javac编译该文件。 在编译阶段,编译器将检验在声明中、小脚本中以及表达 式中所写的全部Java代码。 例如,下面的声明标签尽管能够通过转换阶段,但由于声 明语句没以分号结束,所以不是合法的Java声明语句,因 此在编译阶段会被查出。 <%! int count = 0 %>。
page指令
page指令通知容器关于JSP页面的总体特性。 page指令通知容器页面输出的内容类型和使用的字符集。 <%@ page contentType="text/html;charset = gb2312" %>
include指令
include指令告诉容器把另一个文件(HTML、JSP等)的内容 包含到当前页面中。下面是include指令的一个例子: <%@ include file="copyright.html" %>
JSP生命周期方法示例
一般我们不需要实现jspInit()和jspDestroy()方法,因 为它们已经由基类实现了。但可以根据需要使用JSP 的声明标签<%! ... %>覆盖这两个方法。但是,我们 却不能覆盖_jspService()方法,因为该方法由容器自 动产生。 修改计数器的例子 persistent_counter.jsp
jsp试验报告实训3 JSP基础
实训3 JSP语法实验目的:了解JSP指令,脚本元素以及JSP动作的使用方法掌握使用JSP语法进行动态页面设计的基本方法实验内容:实验一:include指令和include动作新建两个JSP文件,file1.jsp和file2.jsp,其中在file1.jsp中输入代码:<%! String str1="str1";%><%String str4=str1+str2+str3;%><%@include file="file2.jsp"%><%=str4%>File2.jsp中输入代码:<%! String str2="str2";String str3=str1+str2;%>执行程序file1.jsp,程序是否可以运行,若可以,观察结果。
然后,更改file1.jsp中的代码<%! String str1="str1";%><%String str4=str1+str2+str3;%><jsp:include page="file2.jsp"/><%=str4%>执行程序file1.jsp,程序是否可以运行,若可以,观察结果。
对比两次的file1.jsp,谈谈对JSP中include指令和include动作的认识。
实训项目二:forward动作编写一个JSP应用,完成如下功能:用户从第一个页面,输入一个数据:若值小于100,则跳转到有关报错页面若值大于100,则跳转到用户欢迎页面,显示提示:使用request.getParameter(" 输入框input的name ")来获取用户输入;获取到的用户输入为String型,若要判断,需要转换数据类型;使用forward动作完成页面的跳转功能。
JSP基本语法教程
property属性赋予不同的值代表不同的含义。
Property=“*”:这种赋值方式表示所有请求参数
的所有值,用于匹配Bean中的属性值。在Bean
中的属性的名字必须和Request对象中的参数名 一致。
Property=“propertyName”[param=“parameter
4.2.3 脚本段( Scriptlets )
脚本段代码的格式:
<% scriptlet %>
脚本段在Web服务器响应时就会运行。
【注意】
脚本段内不能定义方法。
4.2.4 表达式(Expression)
JSP表达式用来把Java数据直接插入到输出。
表达式的格式为:<%=Java Expression %>
4.3.2 include指令
include指令用于在JSP页面中包含另一个文
件的内容。
include指令的语法格式:
<%@ include file=“relativeURL” %>
“relativeURL”表示此file的路径,路径名一般
来说是指相对路径。 【注意】
include包含文件的内容也是JSP代码,即可以包
Bean的作用域。此属性是可选的,其缺省值为page。
求范围内有效。
session-创建一个与当前用户相关的实例,该实例只在当前用 户范围内有效。
application-创建一个与当前应用相关的实例,该
实例只在当前用户范围内有效。
(3)class
class指Bean的.class文件的名称。
4.4.2 <jsp:setProperty>
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.page指令page指令的设置语法格式是:<%@ page attribute1=”value1” attribute2=”value2”…%>下面介绍指令中包括的几个常用属性,并作简要说明。
l importimport指令是所有page指令中,唯一可以多次设置的指令,而且累加每个设置。
它用来指定jsp网页中所需要使用到的一些类。
例如:<%@ page import=”java.io.*,java.util.Date”%>l session定义当前页面是否参与http会话。
当设置为”true”时,可以获得隐含名为session的对象,为”false”时,则不能。
默认设置为”true”。
l contentType设置jsp网页输出时数据时,所使用的字符压缩方式,以及所使用的字符集,当编写中文网页时,设置如下:<%@page contentType=”text/html;charset=Gb2312”%>此属性的默认值为”text/html;charset=ISO-8859-1”。
l buffer设置jsp网页的缓冲区大小,默认为”8k”,如果设置为”none”,则表示不使用缓冲,所有的响应输出都将被PrintWriter直接写到ServletResponse中。
l isTreadSafe定义当前页面是否支持线程安全。
如果为”true”,则该页面可能同时收到jsp引擎发出的多个请求,反之,jsp引擎会对收到的请求进行排队,当前页面在同一时刻只能处理一个请求。
默认为”true”。
l info设置页面的文本信息,可以通过Servlet.getServletInfo()的方法获得该字符串。
l errorPage定义指向另一个jsp页面的URL。
当页面出现一个没有被捕获的异常时,错误信息将以throw语句抛出,而被设置为错误信息网页的jsp页面,将利用exception隐含对象,取得错误信息。
默认没有错误处理页面。
l isErrorPage设置此jsp网页是否为错误处理页面。
默认值为”false”。
当设置为”true”时,jsp页面将可存取隐含的exception 对象,并通过该对象取得从发生错误之网页所传出的错误信息。
取得错误信息的语法如下:<% =exception.getMessage()%>²一个页面错误处理的例子产生错误的页面文件为MakeError.jsp,处理错误的页面文件为ErrorPage.jsp,它们的源程序如下:MakeError.jsp<%@ page errorPage="ErrorPage.jsp"%><html><head><title>产生错误页面</title></head><body><%int i=8,j=0;out.println(ij);%></body></html>ErrorPage.jsp<%@ page isErrorPage="true"%><html><head><title>错误处理页面</title></head><body><font color=red>错误原因:<%=exception.getMessage()%></font></body></html>2.include指令使用include指令可以把其他的文本文件加入到当前的jsp页面,格式如下:<%@ include file=”header.inc”%>如此,则在当前页面中加入header.inc源代码然后再编译整个文件。
可以使用include指令把一个页面分成不同的部分,最后合成一个完整的文件,使用jsp的include指令有助于实现jsp页面的模块化。
3.taglib指令该指令主要是在JSP页面插入插件!具体的用法尚不熟悉~接下来说说JSP页面中的标准动作吧!标准动作元素用于执行一些常用的JSP页面动作,例如:将页面转向、使用JavaBean、设置JavaBean 的属性等。
在JSP中,标准动作元素共有以下几种:l <jsp:param>l <jsp:include>l <jsp:forward>l <jsp:plugin>l <jsp:useBean>l <jsp:setProperty>l <jsp:getProperty>其中<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>这三个是专门用来操作JavaBeans的。
下面分别介绍它们。
1. <jsp:param><jsp:param>动作用于传递参数,必须配合<jsp:include>、<jsp:forward>、<jsp:plugin>动作一起使用。
语法格式:<jsp:param name = “name1” value = “value1”/>2. <jsp:include><jsp:include>动作用于动态加载HTML页面或者JSP页面。
语法格式:<jsp:include page = “网页路径”><jsp:param name = “name1” value = “value1”/><jsp:param name = “name2” value = “value2”/><jsp:include/>在jsp页面中,可以利用下面的语法取得返回的参数:request.getParameter(“name1”);若不传递参数时,则语法格式如下:<jsp:include page = “网页路径”/>举例:a.jsp页面代码如下:<jsp:include page = "b.jsp"><jsp:param name = "name1" value = "value1"/><jsp:param name = "name2" value = "value2"/></jsp:include>b.jsp页面代码如下:名字1、;<%=request.getParameter("name1")%><hr color=red>名字2、;<%=request.getParameter("name2")%>执行结果如下:“include标准动作”和“include指令”的差别在于:“include标准动作”包含的页面在运行时被加入,而“include 指令”在编译时就被加入了。
3. <jsp:forward><jsp:forward>动作用于将浏览器显示的页面导向到另一个HTML页面或者jsp页面。
语法格式:<jsp:forward page = “网页路径”/>当然,<jsp:forward>动作中也可以加入<jsp:param>参数,其设置和获得参数的方法与<jsp:include>类似。
4. <jsp:plugin><jsp:plugin>动作用于加载applet,用途与HTML语法中的<Applet>及<Object>标记相同。
该动作是在客户端执行的,这里就不作介绍了。
5. <jsp:useBean>(见后文的“JavaBeans”的使用)6. <jsp:setProperty>(见后文的“JavaBeans”的使用)7. <jsp:getProperty>(见后文的“JavaBeans”的使用)另外,附加的讲一下JSP中的内置对象内置对象在jsp页面中有一些已经完成定义的对象,称之为内置对象。
这些对象可以不经过定义就直接使用,因为它们是由jsp页面自己定义的。
jsp程序常用的内建对象有如下几个:request、response、out、session、pageContext、application、config、page、exception。
你可以在jsp页面中直接使用它们,用以加强jsp程序的功能。
下面分别介绍它们。
1. request与request相联系的是HttpServletRequest类。
通过getParameter方法可以获得相应的参数值。
2. response与response相联系的是HttpServletResponse类。
表示Web页面针对请求的应答。
3. out与out相联系的是PrintWrite类。
可以使用此对象将内容输出到页面中。
4. session与session相联系的是HttpSession类。
用来传递客户的会话内容。
5. pageContext与pageContext相联系的是pageContext类。
用它能方便的访问本页面中设置的共享数据。
6. application与application相联系的是ServletContext类。
用它能够实现应用程序级别的数据共享。
7. config与config相联系的是ServletConfig类。
用来在jsp页面范围内处理jsp配置。
8. page代表jsp页面编译成的Servlet实例,一般不用。
9. exception与exception相联系的是Throwable类。
用来捕获jsp执行时抛出的异常。