Java Web应用开发项目教程_第十二章教学课件.ppt
《Java Web应用开发项目教程_第十二章教学课件.ppt》由会员分享,可在线阅读,更多相关《Java Web应用开发项目教程_第十二章教学课件.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java Web应用开发项目教程_第十二章Java Web应用开发应用开发计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院第12章JSP技术本章要点:JSP基本语法静态包含与动态包含隐藏对象Cookie对象Session对象JDBC的实现计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.1JSP语法JSP的全称是Java Server Page(Java服务器页面)。JSP是由Sun 公司倡导、许多其他公司参与建立的一种动态网页技术标准。JSP页面从形式上来看是在传统的网页HTML文件中加入Java程序片段和JSP标签。Servlet/JSP
2、容器收到客户端发出的请求时,会执行其中的程序片段,然后将执行结果以HTML格式响应给客户端。计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.1JSP语法JSP与HTML、Servlet的不同静态HTML页面的请求过程:当用户请求访问http:/./hello.htm,Web服务器会读取本地文件系统中的hello.htm文件中的数据,把它作为响应的正文发送给用户的浏览器。htm(或html文件)文件事先已经存储于web服务器端的文件系统中,无论客户请求多少次这个文件,都会得到相同的内容,也正因此称之为“静态”。计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院
3、12.1JSP语法Servlet通过Java程序代码来读取客户端的请求参数,通过PrintWriter对象向客户端发送动态生成的HTML标签和数据。随着客户端不同的请求,Servlet类产生的HTML代码不同,发送给客户端的响应页面内容也就不同。计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.1JSP语法在传统的HTML文件中加入Java程序片段和JSP标记,就构成了JSP文件。从形式上看JSP更接近HTML页面,它能够和HTML文件一样,直接表达网页的外观。但JSP页面和HTML页面有本质的区别,HTML文档是静态文档(内容是不会变化的),而JSP和Servlet一样,
4、都能动态生成HTML文档。计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.1JSP语法JSP指令JSP指令语法形式为:,常用的指令有三种:page、include、taglib。Page指令用于指定编程语言、编码方式和导入的软件包等page指令的属性计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.1JSP语法JSP指令page指令的属性计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.1JSP语法JSP声明在内声明与JSP对应的Servlet类的成员变量和方法。声明语法块会被翻译到Servlet的类体中,即service()方法外
5、面。所以声明块中不能直接编写Java语句,除非是变量的声明;JSP声明语法块中的代码会按照先后顺序被翻译到Servlet类体中。JSP声明对应的Servlet计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.1JSP语法Java表达式Java表达式的语法为,使用它可以将表达式的值输出到网页上,即可以将java变量/表达式的值嵌入到网页文本中。语法:例如:JSP引擎在翻译脚本表达式时,会将程序数据转成字符串,然后在相应的位置用out.print()将数据输出给客户端,上面的的例子会翻译成out.print(new Date();。计算机与软件学院计算机与软件学院计算机与软件学
6、院计算机与软件学院12.2静态包含与动态包含静态包含与动态包含静态包含在JSP文件中可以使用include指令来包含其他文件的内容,被包含的文件可以是HTML也可以是JSP。语法形式为:静态包含发生在解析JSP源文件的阶段,被包含的目标文件内容会被原封不动地添加到JSP源文件中,然后再对融合过的JSP源文件进行翻译和编译。如果客户端访问a.jsp的时候,服务器一定会检查a.jsp是否是发生了修改,是否需要重新的翻译和编译。但是不一定会检测被包含的b.jsp是否发生了变化,因此如果b.jsp发生了变化,最好要经过重新的翻译和编译过程,才能保证结果是最新的。因此静态包含主要用于包含不常发生变动的页
7、面。计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.2静态包含与动态包含静态包含与动态包含动态包含使用include操作可以包含静态或者动态文件,如果包含进来的是动态文件,这个被包含的动态文件也会被JSP容器执行。语法形式为:动态包含发生在运行JSP对应的servlet类的阶段,被包含的JSP目标文件的响应结果被包含到JSP源文件的响应结果中。在servlet中,相当于此句:request.getRequestDispatcher(“目标url).include(request,response);。计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.2
8、静态包含与动态包含 无论是静态还是动态include,源组件和被包含组件,均使用同一个request对象和response对象。源组件请求中存储的参数和属性,目标组件中均能得到。静态包含中,被包含组件的代码都被融合在源组件代码中,最终产生一个servlet源文件,两者的代码均在servlet的sevice方法中,自然是共用方法的参数request和response。而动态包含,在调用被包含组件的service方法时,把源组件的request和response对象也传递给了service(类似forward),因此两者也是共用request和response。静态包含中,源组件和被包含组件不能有
9、同名变量(块级变量除外),因为它们最终都在同一个service方法里,方法里的局部变量不能重名。计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.3隐藏对象简单的说,JSP中的隐含对象,就是无需定义,就可以在JSP文件中直接使用的那些对象,例如request。下面是一个普通的JSP页面文件,该文件被第一次访问时,Web服务器将对其进行转译,将它翻译成一个servlet类。计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.3隐藏对象JSP的隐藏对象计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.4Cookie对象如何在用户首次访问网站
10、的任一组件时,给用户一个唯一的id?当用户后续访问此网站下其它组件时,如何保证浏览器把这个id号提交给服务器?为了维护用户和用户行为之间的关联性,主要有下面几种方法:URL重写技术、隐藏表单技术、Cookie技术。计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.4Cookie对象URL重写技术将会话信息以请求参数的形式嵌入到服务器发出的每个超链接中。这样每次用户点击超链接的时候,都会把这个参数发给服务器,服务器就能区分用户了。为了保持URL的简洁,通常这个嵌在URL中的会话信息是一个由服务器生成的代表客户的唯一性的ID号,在URL的表现形式上,它通常是作为URL请求参数的
11、形式出现的,如:http:/./servlet/Rewritten?sessionid=67888URL重写技术的优点:用户是匿名的;在Web服务器实现上得到普遍的支持。URL重写技术的缺点:由于会话信息作为查询参数在URL上是可见的,因此会话存在一定的安全隐患;需要对所有动态生成的URL进行重写,代码比较繁琐;只能用于动态产生的文档如Servlet和JSP页面,而不能用于HTML文档。计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.4Cookie对象隐藏表单技术HTML表单允许把一些字段信息隐藏起来,而在浏览器上不被显示出来,但是当表单提交时,这种隐藏表单元素的信息可以
12、被作为参数提交。将用户的会话信息(例如唯一的ID号)写在隐藏表单里,用户看不见,但是当表单提交时,信息会作为参数提交给服务器。服务器可以利用request对象的getParameter()方法读取出来。同重写URL技术相比,隐藏表单技术是利用表单来传递会话信息,而URL重写技术是使用GET请求参数来传递会话信息(例如超链接)。除了这点,二者并无根本区别。它们都属于非持久化会话方案,都使用页面动态修改技术,因此不支持静态HTML,代码编写方式很相似。计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.4Cookie对象Cookie技术Cookie可以随着请求和响应在浏览器和服务
13、器之间传递。在首次访问Web服务器资源时,服务器将Cookie连同响应发送到客户端保存起来。客户端再次访问同一个Web服务器时,主动查找与服务器匹配的Cookie并随请求发往服务器。服务器根据Cookie决定响应。服务端使用下面语句创建Cookie,并把Cookie添加到响应中,发往客户端浏览器。Cookie cookie=new Cookie(“cookie名”,“cookie值”);response.addCookie(cookie);当浏览器再次访问该网站时,浏览器会将此网站的Cookie随着请求发送给网站服务器(访问百度/搜狐时把百度/搜狐Cookie发给百度服务器),浏览器会找到对应
14、的Cookie进行发送。计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.4Cookie对象Cookie的传递形式Cookie属性计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.4Cookie对象使用Cookie维护会话的工作过程如下:1.用户第一次访问某网站时,服务器生成一个Cookie,格式为:“Cookie的名字:客户的ID号”,并把这个Cookie随着响应发送给客户端。例如:baidu:13f4a4b4c21b2.客户端浏览器存储该Cookie,当用户再次访问同一个Web服务器时,浏览器会检查本地的Cookie,并将其原样发送给Web服务器。3
15、.服务器从客户发回的Cookie中取出客户ID号,并以此为索引获得该客户的会话信息,并进行维护处理。计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院12.4Cookie对象利用Cookie维护会话的优点有:目前大多数浏览器都可以识别和处理来自Web服务器的Cookie,因此兼容性较好。因为Cookie可以保存在客户端的小文件中,因此Cookie支持持久性的维持会话信息,哪怕浏览器关闭也可以维护。利用Cookie维护会话的缺点有:Cookie的名声不太好,个别网站可能在用户不知情的情况下采集客户个人信息。用户可以禁用Cookie。计算机与软件学院计算机与软件学院计算机与软件学院计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java Web应用开发项目教程_第十二章教学课件 Web 应用 开发 项目 教程 第十二 教学 课件
限制150内