jsp基础知识_第1页
jsp基础知识_第2页
jsp基础知识_第3页
jsp基础知识_第4页
jsp基础知识_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

15第3章 JSP基础JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司一起参与建立的一种动态网页技术标准。现在JSP已经逐步发展为开发Web应用的一项重要的技术。JSP可以嵌套在HTML页面中,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件。而且JSP支持多个操作系统平台,用JSP开发的Web应用系统,不需做任何改动就可以在不同的操作系统中运行。通过本章的学习,重点掌握在JSP实际开发过程中的技巧和方法。本章主要知识有:q JSP的基本语法q JSP动作指令q JSP内置对象q JSP标签q EL表达式3.1 JSP基础语法本节主要介绍JSP的基本语法,包括JSP的结构、变量声明、表达式等JSP特有的语法。通过本节的学习,了解JSP的语法结构,掌握其书写规范,为后续章节的学习打下基础。实例 JSP注释【实例介绍】本实例在JSP页面上插入注释信息,实现对JSP源程序的文档说明。运行程序,执行结果如图3.1所示。 图3.1 JSP注释测试页面界面【开发过程】(1)在MyEclipse中新建一个Web项目Ex311。(2)打开index.jsp文件,在窗体中编写代码如下:01020304注释测试页面05060708HTML注释测试,这段注释显示在客户端的浏览器页面中!0910111213JSP注释测试,这个注释是看不到的!1415161718【关键技术解析】代码第11行为HTML注释信息,可以在注释中使用任何有效的JSP表达式。表达式是动态的,当用户第一次调用该页面或该页面后来被重新调用时,该表达式将被重新赋值。在客户端的浏览器中,浏览者可通过查看源文件的方法查看该注释。第16行用隐藏注释标记的字符会在JSP编译时被忽略掉,标记内的所有JSP脚本元素、指令和动作都将不起作用,其中的任何代码都不会显示在客户端浏览器的任何位置。【拓展应用】q 可在HTML注释里使用JSP表达式,显示当前页面登录的用户名信息。实例 JSP声明【实例介绍】本实例利用JSP声明,声明一个变量counter和一个方法counterFunction(),实现网站计数器的功能。运行程序,执行结果如图3.2所示。 图3.2 JSP声明测试页面界面【开发过程】(1)在MyEclipse中新建一个Web项目Ex312。(2)打开index.jsp文件,在窗体中编写代码如下:01020304JSP声明测试页面0506071114网站计数器1516你是第位访问者1718【关键技术解析】代码第78行分别声明了一个变量counter和一个方法counterFunction(),实现对网站的计数功能。JSP声明的变量的范围是针对所有请求的,且生命周期是整个Web应用程序。在程序代码中,每次刷新页面,实现对counter的累加。注意:JSP声明在JSP页面中的表现形式为。实例 表达式【实例介绍】本实例利用JSP表达式,实现在页面上显示当前的时间。运行程序,执行结果如图3.3所示。 图3.3 表达式测试页面界面【开发过程】(1)在MyEclipse中新建一个Web项目Ex313。(2)打开index.jsp文件,在窗体中编写代码如下:01020304表达式测试页面0506070910【关键技术解析】表达式标签是以为结尾,其中内容包含一段合法的Java表达式。代码第7行是一段合法的Java代码,实现对系统的当前时间的显示。在JSP页面中,一个表达式在被JSP引擎执行后会被自动转化为字符串,然后显示出来。【拓展应用】q 利用表达式在页面中显示表单中的用户名等信息。q 利用表达式在在页面中显示当前页面的编码方式。 实例 程序段【实例介绍】本实例在JSP页面上嵌入一段Java程序段,实现从1到10的累加。运行程序,如图3.4所示。 图3.4 程序段测试页面界面【开发过程】(1)在MyEclipse中新建一个Web项目Ex314。(2)打开index.jsp文件,在窗体中编写代码如下:01020304程序段测试页面050607%08int i, sum = 0;09for (i = 1; i 12从1到10的和是1314【关键技术解析】代码第711行是一段Java程序段,以实现从1到10的累加。程序段可以表示为实现一段功能的Java代码段。示例中的for循环实现了从1到10的累加,然后利用表达式在JSP页面中显示出来。【拓展应用】q 利用Java程序段实现网页颜色的变化。q 利用Java程序段实现对数据库的链接。实例 JSP声明与程序段的差异【实例介绍】本实例声明一个方法divide(),然后在程序段中调用这个方法,实现两个数的相除。运行程序,如图3.5所示。 图3.5 JSP声明和程序段测试页面界面【开发过程】(1)在MyEclipse中新建一个Web项目Ex315。(2)打开index.jsp文件,在窗体中编写代码如下:01020304声明和程序段区别测试页面050607101415【关键技术解析】代码第79行是声明一个方法divide(),第1013行是一个完整的Java程序段,调用方法divide(),并在页面中输出结果。注意:JSP声明和程序段的区别,JSP声明以结束,主要用于声明变量和方法,而程序段以结束,用于实现一个功能。3.2 JSP动作指令在Web程序中,JSP动作指令经常用到,例如使用forward动作指令可以用来控制Web应用程序的重定向,使用useBean动作指令可以在JSP中引用JavaBean。JSP的强大功能和丰富的动作指令是分不开的。实例 include动作指令【实例介绍】通过include动作指令,使JSP页面动态的包含另一个文件。运行程序,如图3.6所示。 图3.6 include动作指令测试页面界面【开发过程】(1)在MyEclipse中新建一个Web项目Ex316。(2)打开index.jsp文件,在窗体中编写代码如下:01020304include动作指令测试页面050607 08 /include动作指令09include动作指令标签使用范例! 10 111213(3)在程序index.jsp中,代码第8行包含了一个静态的HTML文件。header.html代码如下: 01 0203Insert title here040506这个文件是html静态网页0708(4)在程序index.jsp中,代码第10行包含了一个动态的JSP文件。footer.jsp代码如下:01020304Insert title here0506071011【关键技术解析】在程序index.jsp中,第8行和第10行两次使用include动作指令。前者包含静态文件header.html,直接包含静态页面,后则包含了动态文件footer.jsp,如果动态文件被修改时,JSP引擎可以动态的对其进行重新编译,更新操作,使页面重新被加载。注意:include动作指令和include指令的区别在于:include动作指令能动态区别加进来的是动态页面还是静态页面,对于静态页面则直接将资源包含(仅取其文本),对于动态页面则先处理各自资源,之后将处理过的结果包含在一起;include指令是把一个文件简单的包含在一个JSP页面中,然后一起处理,仅仅是简单的组合,其功能没有include动作指令强大。当使用include动作指令的,要注意所包含文件的路径。第8行和第10行中的page属性中给出的是目标页面URL。【拓展应用】q 修改footer.jsp文件的内容,然后重新加载。q 利用include动作指令包含表单信息。实例 forward动作指令【实例介绍】通过forward动作指令,实现Web应用程序从当前页面直接跳转到另一个页面forward-result.jsp。运行程序,如图3.7所示。 图3.7 forward动作指令测试页面界面【开发过程】(1)在MyEclipse中新建一个Web项目Ex317。(2)打开index.jsp文件,在窗体中编写代码如下:01020304forward动作指令测试页面05060708forward动作指令的原始页09101112【关键技术解析】forward动作指令表示重定向一个静态HTML页面、JSP页面或Java Servlet。代码第10行使用forward动作指令,实现从当前页面跳转到forward-result.jsp页面。forward动作指令在服务器端完成,在浏览器端地址栏的内容不会改变。注意:forward动作指令和HTML中的超链接标签是不同的。在中只有单击链接才能实现页面的跳转,在forward动作指令中一切都可以用Java代码进行控制,forward动作指令可以在程序中直接决定页面跳转的方向和时机。实例 param动作指令【实例介绍】上例中利用forward动作指令实现了页面的跳转,本实例使用param动作指令实现在页面跳转的同时实现参数的传递。运行程序,如图3.8所示。 图3.8 参数传递测试页面界面【开发过程】(1)在MyEclipse中新建一个Web项目Ex318。(2)打开index.jsp文件,在窗体中编写代码如下:01020304页面跳转并传递参数测试页面05060708param动作指令的原始页0910 /跳转页面11 /传递参数1213(3)forward-result.jsp页面的代码如下:01020304跳转后显示参数页面050607这个页面接受传递过来的参数!0809前一个页面传过来的参数是1011【关键技术解析】在index.jsp页面中,代码第10行、第11行实现了页面跳转到forward-result.jsp页面中,同时向index.jsp页面传递了一个名为test的参数,这个参数的值为param。在forward-result.jsp页面中,第9行通过参数的名字name来获取参数的值。在forward跳转并且传递参数的过程中,浏览器的地址始终不变,传递的参数也不会在浏览器中显示出来,这是forward动作指令与HTML中超链接的另一个区别。【拓展应用】q 使用param动作指令来传递多个参数给动态文件。实例 useBean动作指令【实例介绍】通过useBean动作指令,实现在JSP页面中创建JavaBean实例对象。运行程序,如图3.9所示。 图3.9 useBean动作指令测试页面界面【开发过程】(1)在MyEclipse中新建一个Web项Ex319。(2)useBean动作指令在JSP中引用JavaBean。下面代码是JavaBean的一个简单实例:01package bean;02public class Bean 03private String name; /定义字符串变量name04private int age; /定义整型变量age05private double weight; /定义双精度变量weight06public String getName() 07return name;0809public void setName(String name) 10 = name;1112public int getAge() 13return age;1415public void setAge(int age) 16this.age = age;1718public double getWeight() 19return weight;2021public void setWeight(double weight) 22this.weight = weight;2324(3)在index.jsp页面中通过useBean动作指令来实现对JavaBean的操作。代码如下: 01020304useBean动作指令的测试页面 05050607 080912 输入的名字是:13141718【关键技术解析】在这段JavaBean代码中,代码第623行定义了getter()和setter()方法,用于实现在JSP页面中对变量的操作。在JSP网页中,通过useBean实现对JavaBean的引用。代码第7行通过id创建JavaBean实例。useBean动作指令的用途是创建一个JavaBean的实例并指定其名称、JavaBean类和作用范围。其语法格式如下:01 05 各属性的用途: q id:创建的JavaBean实例的名称。q scope:指明JavaBean的作用范围,一共有4个值page、request、session和application。其中默认值为page,表明JavaBean只能在当前页面使用;request表明JavaBean只能应用于当前的用户请求;session表明JavaBean只能应用于当前HttpSession生命周期内的页面;application表明JavaBean可以在整个应用系统中使用。q class:指明JavaBean对应的类的包名。q type:指明将要创建JavaBean实例的变量类型,必须与JavaBean对应的类名相同。【拓展应用】q 利用useBean动作指令引用JavaBean,实现计数器功能。实例 setProperty动作指令【实例介绍】使用useBean动作指令,通过setProperty动作指令,用来对JavaBean的实例对象进行赋值。运行程序,如图3.10所示。图3.10 setProperty动作指令测试页面界面【开发过程】(1)上例中的useBean动作指令对JavaBean进行实例化操作。(2)通过setProperty动作指令,对上例中JavaBean实例的beann属性进行赋值。代码如下:01020304setProperty动作指令测试页面0506070809101112131415你的名字是:1819你的年齡是:2223你的体重是:2627【关键技术解析】setProperty动作指令一般和JavaBean配合使用,使用JavaBean给定的setter方法,在JavaBean中设置一个或多个属性值。代码第10、12、14行分别对JavaBean的属性设置属性值。注意:setProperty动作指令之前必须使用useBean动作指令声明JavaBean。useBean动作指令和setProperty动作指令是联系在一起的,同时使用它们的JavaBean实例的名字必须匹配。setProperty动作指令的语法格式如下:01 jsp:setProperty name=beanInstanceNameproperty=*02 | property=propertyName param=parameterName03 | property=propertyName value=string | /q name:这个属性是必须的。用来指明具体操作的实例对象,表示已经在useBean动作指令中创建的JavaBean实例的名字。在setProperty动作指令中的name的值应当和useBean动作指令中id的值相同。q property:这个属性也是必须的。在这个语法中,property指定JavaBean实例将要赋值的属性名称。如果property的值是“*”,可以对JavaBean的实例对象的所有属性赋值。q param:使用request中的一个参数值来指定JavaBean中的一个属性值。在这个语法中,property指定JavaBean的属性名,param指定request中的参数名。如果bean属性和request参数的名字不同,就必须指定property和param,如果同名,只需指明property就行了。q value:用来指明JavaBean对应的属性值,这个值可以是字符串,也可以是表达式。如果是字符串,则被转换成JavaBean属性的类型,如果是表达式,则类型就必须和它将要设定的属性值的类型一致。【拓展应用】q 利用request指定JavaBean中的属性值,通过setProperty动作指令实现对属性的赋值。q 利用表达式对JavaBean的实例赋初值。实例 getProperty动作指令【实例介绍】通过getProperty动作指令,获取JavaBean对象属性的值,并且显示在页面中。运行程序,如图3.11所示。图3.11 setProperty动作指令测试页面界面【开发过程】(1)上例中通过useBean动作指令在JSP中引用JavaBean,并对其实例化为beann。(2)通过setProperty动作指令,为对象beann进行赋值。(3)利用getProperty动作指令,获取JavaBean对象beann属性的值。代码如下:01020304getProperty动作指令测试页面0506070809 1011 1213 1415 16beann的名字是:17 18beann的age是:19 20beann的weight是:2122【关键技术解析】代码第getProperty动作指令将获得JavaBean的属性值,并可以将其使用或显示在JSP页面中,必须与useBean动作指令配合使用创建JavaBean实例。代码第16、18、20行分别获取JavaBean的属性值,并显示在页面中。注意:JSP页面中的setProperty和getProperty动作指令,都要求根据属性名来操作JavaBean的属性。实际上setProper

温馨提示

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

评论

0/150

提交评论