【教学课件】第四章JSP编程.ppt

上传人:小飞机 文档编号:5664831 上传时间:2023-08-07 格式:PPT 页数:126 大小:1.07MB
返回 下载 相关 举报
【教学课件】第四章JSP编程.ppt_第1页
第1页 / 共126页
【教学课件】第四章JSP编程.ppt_第2页
第2页 / 共126页
【教学课件】第四章JSP编程.ppt_第3页
第3页 / 共126页
【教学课件】第四章JSP编程.ppt_第4页
第4页 / 共126页
【教学课件】第四章JSP编程.ppt_第5页
第5页 / 共126页
点击查看更多>>
资源描述

《【教学课件】第四章JSP编程.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第四章JSP编程.ppt(126页珍藏版)》请在三一办公上搜索。

1、第四章 JSP编程,本章主要内容,JSP工作原理JSP脚本元素JSP指令元素JSP动作组件JSP内置对象表达式语言,JSP工作原理JSP脚本元素JSP指令元素JSP动作组件JSP内置对象表达式语言,JSP工作原理,JSP是一种实现普通静态HTML和动态HTML混合编码的技术。,JSP最终会被转换成标准的Servlet!,JSP设计的目的在于简化表示层的表示。,JSP页面的其他成分主要有如下三种:脚本元素指令动作,.其他 HTML 语言 其他 HTML 语言,JSP示例(Hello.jsp),你好,你好 你好,JSP执行过程,*.jsp,*.java,*.class,servlet,servle

2、t 分析器,JSP,执行过程,JSP示例(Hello_Date.jsp),你好,今天是 号,星期,import java.util.*;response.setContentType(text/html;charset=gb2312);out=pageContext.getOut();out.write(“rnrnrn rn你好,今天是rn);Date today=new Date();out.print(today.getDate();out.write(号,星期);out.print(today.getDay();out.write(rn rnrn);,JSP文件,servlet文件,JS

3、P语法概述,JSP原始代码中包含了JSP元素和Template(模板)data两类 Template data指的是JSP引擎不处理的部分,即标记以外的部分,例如代码中的HTML的内容等,这些数据会直接传送到客户端的浏览器JSP元素则是指将由JSP引擎直接处理的部分,这一部分必须符合JSP语法,否则会导致编译错误。,jsp例子(hi.jsp),Hi-JSP实验,Template data,JSP元素,JSP语法,JSP语法分为三种不同的类型,指令(DIRECTIVE)例如:,脚本语法(SCRIPTING),动作语法(ACTION)例如:,,JSP工作原理JSP脚本元素JSP指令元素JSP动作组

4、件JSP内置对象表达式语言,脚本语法,脚本语法包括“HTML注释”:“隐藏注释”:“声明”“表达式”“脚本段”,HTML注释,JSP 语法格式如下:-或-这种注释发送到客户端,但不直接显示,在源代码中可以查看到。,隐藏注释,JSP 语法格式如下:不发送到客户端。,程序43:expression.jsp(添加注释后)JSP表达式你好,程序44:expression.jsp的客户端源代码JSP表达式你好你好你好你好你好,1 输出表达式,输出表达式的计算结果。表达式中的变量必须是前面已声明过的变量注意:与之间不能有空格且表达式后面不需要分号。,程序42:expression.jsp JSP表达式你好

5、,声明,JSP 语法格式如下:或,程序45:statement_vary.jsp声明变量 您是第 个访问本站的客户。,第1次请求页面运行结果,第2次请求页面运行结果,表达式,用于在页面上输出信息,语法格式如下:或,表达式,test,a=b=c=,执行结果,脚本段,JSP 语法格式如下:或,脚本段(peixun2.5.jsp),test,);break;case 1:out.println(You must select condition 1!+);,break;case 2:out.println(You must select condition 2!+);break;default:ou

6、t.println(Your select not in 0,1,2,select again!+);%转义符:双引号“,单引号,反斜杠,回车r,换行n,制表符t,退格b,脚本段执行结果,JSP工作原理JSP脚本元素JSP指令元素JSP动作组件JSP内置对象表达式语言,JSP指令是从JSP向Web容器发送的消息,它用来设置页面的全局属性,如输出内容类型等。注意:指令的作用范围仅限于包含指令本身的JSP页面。,JSP的指令格式为:,编译器指令包括“包含指令”,“页指令”和“taglib指令”它们包含在“”卷标里。两个主要的指令是page与include。,page指令用来定义整个JSP页面的全局

7、属性。合法的page 属性有:import、contentType、isThreadSafe、session、buffer、autoflush、extends、info、errorPage、isErrorPage和language等。,Page指令,“Page”指令用于定义JSP文件中的全局属性。JSP 语法格式如下:%page language=java extends=package.class import=package.class|package.*,.session=true|false buffer=none|8kb|sizekb,Page指令,autoFlush=true|fa

8、lse isThreadSafe=true|false info=text errorPage=relativeURL contentType=mimeType;charset=characterSet|text/html;charset=ISO-8859-1 isErrorPage=true|false%,Page指令,属性:1language=java 声明脚本语言的种类,目前只能用java。2.import=package.class|package.*,.需要导入的Java包的列表,这些包作用于程序段,表达式,以及声明。下面的包在JSP编译时已经导入了,所以就不需要再指明了:java.

9、lang.*javax.servlet.*.*.*,3errorPage=relativeURL 设置处理异常事件的JSP文件。4isErrorPage=true|false 设置此页是否为出错页,如果被设置为true,你就能使用exception对象,程序49:testError.jsp页面错误属性测试,程序410:safe.jsp 您是第 个访问本站的客户。,最后,对于page指令,需要说明的是:指令作用于整个JSP页面,同样包括静态的包含文件。但是指令不能作用于动态的包含文件,比如。可以在一个页面中引用多个指令,但是其中的属性只能用一次,不过也有例外,那就是import属性。因为impo

10、rt属性和Java中的import语句类似(参照Java Language,import语句引入的是Java语言中的类),所以此属性就能多用几次。无论把指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性,及好的编程习惯,最好还是把它放在JSP文件的顶部。,程序48:jspSession.jsp,include指令,include指令向JSP页面内某处嵌入一个文件。这个文件可以是HTML文件、JSP文件或其他文本文件。JSP 语法格式如下:或,说明:通过include指令包含的文件是由JSP分析的,并且这部分分析工作是在转换阶段(JSP文件被编译为Ser

11、vlet时)进行的。,程序411:include.jspinclude 示例,程序412:copyright.htmlGantry HTMLAll the rights are reserved,JSP工作原理JSP脚本元素JSP指令元素JSP动作组件JSP内置对象表达式语言,JSP动作组件:JSP动作组件是一些XML语法格式的标记,被用来控制Web容器的行为。常见的JSP动作组件共有以下几种:在页面被请求的时候引入一个文件。:在动作组件中引入参数信息。:把请求转到一个新的页面。:设置JavaBean的属性。:输出某个JavaBean的属性。:寻找或者实例化一个JavaBean。,JSP动作组

12、件,include动作组件,include动作组件把指定文件插入正在生成的页面。其语法如下:。,注意:include动作组件和include指令元素有很大的不同。include动作组件在执行时才对包含的文件进行处理,因此JSP页面和它所包含的文件在逻辑上和语法上是独立的,如果对包含的文件进行了修改,那么运行时可以看到所包含文件修改后的结果。而静态的include指令包含的文件如果发生变化,必须重新将JSP页面转译成java文件,否则只能看到所包含的修改前的文件内容。,JSP动作组件,程序413:includeaction.jspinclude 动作示例,JSP动作组件,forward动作组件,

13、forword动作组件用于将浏览器显示的网页,导向至另一个HTML网页或JSP网页,客户端看到的地址是A页面的地址,而实际内容却是B页面的内容。其语法如下:,注意:在使用forward之前,不能有任何内容已经输出到客户端,否则会有意外抛出。,程序414:forward.jspforward当前推荐图书清单:0.5)%,程序415:catalog1.htmlforward 示例当前推荐图书清单:国画梅次故事朝夕之间,程序416:catalog2.htmlforward 示例当前推荐图书清单:J2EE 编程技术 J2EE服务器端高级编程JSP高级编程,用于传递参数信息,必须配合或动作组件一起使用。

14、语法如下:当该组件与一起使用时,可以将param组件中的值传递到include动作组件要加载的文件中去。,JSP动作组件,程序417:param1.jsp加载文件效果:,程序418:add.jsp:从到的连续和是:,程序419:param2.jsp向jsp:forward传递参数示例:向jsp:forward传递参数示例:,程序420:welcome.jsp欢迎您!,使用“”插入一个applet或Bean,必要的话还要下载一个Java插件用于执行它。JSP 语法格式如下:jsp:plugin type=bean|applet code=classFileName codebase=classF

15、ileDirectoryName,name=instanceName archive=URIToArchive,.align=bottom|top|middle|left|right height=displayPixels width=displayPixels hspace=leftRightPixels vspace=topBottomPixels jreversion=JREVersionNumber|1.1 nspluginurl=URLToPlugin iepluginurl=URLToPlugin,/+text message for user,属性,1type=bean|app

16、let 将被执行的插件对象的类型,你必须得指定这个是Bean还是applet,因为这个属性没有缺省值。2code=classFileName 将会被Java插件执行的Java Class的名字,必须以.class结尾。这个文件必须存在于codebase属性指定的目录中。,3codebase=classFileDirectoryName 将会被执行的Java Class文件的目录(或者是路径),如果你没有提供此属性,那么使用的jsp文件的目录将会被使用。4name=instanceName 这个Bean或applet实例的名字,它将会在Jsp其它的地方调用。,程序421:Circle.javai

17、mport;import;import;public class Circle extends Applet public void paint(Graphics g)g.setColor(new Color(255,0,255);g.fillArc(0,0,50,50,0,360);,程序422:plugin.jsp Plugin tag OBJECT or EMBED not supported by browser.,JSP工作原理JSP脚本元素JSP指令元素JSP动作组件JSP内置对象表达式语言,JSP内置对象,JSP根据Servlet API 规范提供了某些内置对象,开发者不用事先声

18、明就可以使用标准的变量来访问这些对象。JSP供提供九种内置对象:RequestReponseOutSessionapplicationConfigPagecontextPageexception。,从本质上讲,JSP的这些内置对象其实都是由特定的Java类所产生的,在服务器运行时根据情况自动生成,所以如果你有较好的Java基础,可以参考相应的类说明,表3.1给出了他们的对应关系。更进一步的讲解将会在讲解Servlet的一章中展开,如果你的Java基础不太好,可以先熟悉在这一章里所介绍的各种方法的使用。,request和response,“request”对象代表的是来自客户端的请求,例如我们在

19、FORM表单中填写的信息等,是最常用的对象。关于它的方法使用较多的是getParameter、getParameterNames和getParameterValues,通过调用这几个方法来获取请求对象中所包含的参数的值“response”对象代表的是对客户端的响应,也就是说可以通过“response”对象来组织发送到客户端的数据。但是由于组织方式比较底层,所以不建议普通读者使用,需要向客户端发送文字时直接使用“out”对象即可。,request请求对象,1getAttribute原型:public name)说明:以对象的形式返回特定名称的属性值。这个方法允许Servlet引擎给出一个客户请求

20、的特定信息。(Servlet为服务器端小程序,所有JSP页面都事先翻译成Servlet后才执行),request请求对象,如果所给名称的属性不存在将返回空值。属性名应该遵循和包命名方式同样的约定,不要采用如“java.*”、“javax.*”及“sun.*”.这样的命名。参数:name 一个标示属性名的字符串返回值:一个包含属性值的对象,当属性不存在是为空。,程序423:jspFunction.jsp 客户使用的协议是:获取接受客户提交信息的页面:接受客户提交信息的长度:客户提交信息的方式:获取HTTP头文件中UserAgent的值:获取HTTP头文件中accept的值:,获取HTTP头文件中

21、Host的值:获取HTTP头文件中acceptencoding的值:获取客户的IP地址:获取客户机的名称:获取服务器的名称:获取服务器的端口号:,获取客户端提交的所有参数的名字:获取头名字的一个枚举:获取头文件中指定头名字的全部值的一个枚举:,程序424:input.html 姓名 选出你喜欢吃的水果:苹果 西瓜 桃子 葡萄,程序425:getParam.jsp 你好,程序426:select.jsp:选择计算方式 计算1到n的连续和 计算1到n的平方和 计算1到n的立方和 选择n的值:n=10 n=20 n=30 n=40 n=50 n=100,程序428:Attribute_send.js

22、pLomboz JSPAttribue传递参数示例,程序429:Attribute_receive.jspLomboz JSP,程序430:greeting.jspLomboz JSP,程序431:morning.jspLomboz JSP早上好!,程序432:afternoon.jspLomboz JSP下午好!,pageContext,“pageContext”对象直译时可以称作“页面上下文”对象,代表的是当前页面运行的一些属性,常用的方法包括findAttribute、getAttribute、getAttributesScope和getAttributeNamesInScope,一般情

23、况下“pageContext”对象用到得也不是很多,只有在项目所面临的情况比较复杂的情况下,才会利用到页面属性来辅助处理。,session对象,“session”对象代表服务器与客户端所建立的会话,当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购物、客户轨迹跟踪等。“session”对象建立在cookie的基础上,所以使用时应注意判断一下客户端是否打开了cookie。常用的方法包括getId、getValue、getValueNames和putValue等。,session对象,概要HTTP是无状态(stateless)协议;Web Server 对每一个客户端请求都没有历史记忆

24、;Session用来保存客户端状态信息;由Web Server 写入;存于客户端;客户端的每次访问都把上次的session记录传递给Web Server;Web Server读取客户端提交的session来获取客户端的状态信息;,application对象,“application”对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有getMimeType和getRealPath等。,out,“out”对象代表了向客户端发送数据的对象,与“response”对象不同,通过“out”对象发送的内容将是浏览器需要显示的内容,是文本一级的,可以通过“out”对象直接向客户端写一个由程序动

25、态生成HTML文件。常用的方法除了pirnt和println之外,还包括clear、clearBuffer、flush、getBufferSize和getRemaining,这是因为“out”对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法。,config、page、exception,“config”对象提供一些配置信息,常用的方法有getInitParameter和getInitParameterNames,以获得Servlet初始化时的参数。“page”对象代表了正在运行的由JSP文件产生的类对象,不建议一般读者使用。“exception”对象则代表了JSP文件运行时所产生的

26、例外对象,此对象不能在一般JSP文件中直接使用,而只能在使用了“”的JSP文件中使用,程序435:application.jspapplication对象示例);out.println(application.jsps MIME type is:+application.getMimeType(application.jsp)+);out.println(URL of application.jsp is:+application.getResource(/application.jsp)+);out.println(getServerInfo()=+application.getServer

27、Info()+);out.println(application.getRealPath(application.jsp);application.log(Add a Record to log_file);%,程序436:counter.jsp网页计数器您是第位访问者!,任何一个Java对象都有其作用域范围,JSP的内置对象也不例外。归纳起来,共有四种范围:(1)page。page范围内的对象仅在JSP页面范围内有效。超出JSP页面范围,则对象无法获取。(2)request。客户向服务器发起的请求称为request(请求)。由于采用和response.sendRedirect()等重定位计数

28、,客户端发起的request请求可以跨越若干个页面。因此定义为request范围的JSP内置对象可以在request范围内的若干个页面内有效。(3)session。客户端与服务器的交互过程,称为session(会话)。在客户端与服务器的交互过程中,可以发起多次请求,一个session可以包含若干个request。定义为session范围的JSP内置对象可以跨越若干个request范围有效。(4)application。部署在服务器上的Web应用程序与所有客户端的的交互过程,称为application。一个application可以包含若干个session。定义为application范围的JS

29、P内置对象可以跨越若干个session范围有效。,JSP工作原理JSP脚本元素JSP指令元素JSP动作组件JSP内置对象表达式语言,表达式语言(Expression Language,EL)。与JSP脚本相比,EL提供了一种更加简化的方式来生成动态Web页面。,EL的基本语法如下:$expr其中,$为EL语法中的输出符号,expr 为EL有效表达式,它包含在一对括号内。EL有效表达式可以包含文字、操作符、变量(对象引用)和函数调用等。,EL有效表达式支持的内容类型,EL有效表达式支持的操作符,程序440:el.jsp EL有效表达式$true$23+15.28$1210$(1210)&(a!=

30、b),说明:JSP2.0以后,EL可以应用在JSP页面的模版文本中,也可以作为JSP标记的动态属性。它唯一不能使用的场合就是JSP的脚本元素内部。,EL支持的隐式对象,注意:不要将上述隐式对象与 JSP 内置对象混淆,其中只有一个对象pageContext是它们所共有的。说明:尽管 JSP 和 EL 隐式对象中只有一个公共对象(pageContext),但通过 EL 也可以访问其它 JSP 隐式对象。原因是 pageContext 拥有访问所有其它八个 JSP 隐式对象的功能。,EL 提供了两种不同的存取器:点运算符(.)和方括号运算符()。点运算符通常用于访问对象的属性。方括号运算符用来检索数组和集合的元素。,程序441:el2.jsp EL表达式的存取符和隐含对象 Hello$param.name!财经:$热点:$requestScope.news.热点 奥运:$requestScope.news奥运 其它:$,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号