jsp和servlet

上传人:m**** 文档编号:51846709 上传时间:2018-08-16 格式:PPT 页数:56 大小:410KB
返回 下载 相关 举报
jsp和servlet_第1页
第1页 / 共56页
jsp和servlet_第2页
第2页 / 共56页
jsp和servlet_第3页
第3页 / 共56页
jsp和servlet_第4页
第4页 / 共56页
jsp和servlet_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《jsp和servlet》由会员分享,可在线阅读,更多相关《jsp和servlet(56页珍藏版)》请在金锄头文库上搜索。

1、第3章 Servlet和JSP 3.1 JSP的工作原 理 3.2 JSP的注释方 式 3.3 JSP声明方式 3.4 JSP表达式 3.5 JSP脚本段 3.6 JSP编译指令 3.7 JSP动作指令 3.8 JSP内置对象 3.9 Servlet开发流程 3.10 HttpServlet的应 用 3.11 Servlet生命周期 3.12 自定义标签库 3.13 Servlet过滤器 3.14 Servlet监听器3.1 JSP的工作原理(1)JSP的工作原理图如下图 所示对该原理图进行说明如下:3.1 JSP的工作原理(2)当一个JSP页面第一次被请求时,容器首先会把JSP页面转换成 S

2、ervlet。在转换时,所有HTML标签将被包含在println()语句中 ,所有JSP元素将会被转换成Java代码。 在转换的过程中,若JSP页面存在语法错误,转换会被终止, 并向服务器和客户端输出错误信息。如果转换成功,转换后的 Servlet会被编译成相应的class文件。 在调用Servlet时,首先执行jspInit()方法,然后调用jspService() 方法处理客户端的请求。对客户端发送的每一个请求,JSP容 器都会创建一个新的线程来处理。如果有多个客户端同时请求 该JSP文件,JSP容器会为每个客户端请求创建对应一个线程。 如果jsp文件被修改,服务器将根据设置决定是否对该文

3、件进行 重新编译。如果重新编译,内存中的Servlet会被新的编译结果 取代。 Servlet被处理完毕以后,调用jspDestroy()方法结束它的生命周 期,同时被JVM(Java虚拟机)的垃圾回收器回收。返回3.2 JSP的注释方式 HTML注释方式格式: 说明:HTML注释将会被发送到客户端,用户查看页面源代码 就可以看到这些注释。 JSP隐藏注释方式格式: 说明:JSP隐藏注释不会被发送到客户端,用户使用查看源代 码的方式是看不到的注释内容。返回3.3 JSP声明方式语法格式如下:注意:1. 在一个JSP页面中可一次声明一个变量和方法,还可一次声 明多个变量和方法,但是它们都只在当前

4、页面中有效。 2. JSP声明必须包含在标记内,并且每个声明的末尾都 必须有一个分号。在使用声明时,不能在“%”和“!”之 间留有空格。返回3.4 JSP表达式JSP表达式用来在JSP页面输出结果 。表达式在运行 后会被自动转换为字符串,然后插入到页面指定的 位置。 语法格式: 应用示例:得到的随机数是:返回3.5 JSP脚本段脚本段(Scriptlets)是JSP代码片段或脚本片段,嵌 在“”标记中。在脚本段中可以定义变量、调 用方法和进行各种表达式运算,每行语句后面加入 分号。这种Java代码在Web服务器响应请求时会运行 。 语法格式:应用示例:返回3.6 JSP编译指令JSP编译指令用

5、于设置整个JSP页面的相关属性,比 如页面的编码格式、所包含的文件等等。这些编译 指令包含在“ ”标记中。 常用编译指令: page指令 include指令 taglib指令返回3.6.1 JSP编译指令page指令page指令用于定义JSP页面中的全局属性,page指令 包含属性说明如下:返回2.6.2 JSP编译指令include指令 和taglib指令include指令用于在JSP页面中包含其它文件。 语法格式: include指令包含的过程是静态的,包含的文件可以 是JSP、HTML或者inc文件等等。taglib指令允许用户使用标签库自定义新的标签 。 语法格式: 其中,uri用于根

6、据标签前缀对自定义的标签进行唯 一的命名 ;prefix用于指定标签的前缀 。返回3.7 JSP动作指令JSP动作指令用于运行脚本动作,共有7种动作指令 : jsp:include指令 jsp:forward指令 jsp:useBean指令 jsp:setProperty指令 jsp:getProperty指令 jsp:plugin指令 jsp:param指令 返回3.7.1 JSP动作指令jsp:include jsp:include指令用于在请求处理阶段包含来自一个 Servlet或JSP页面的响应。 语法格式:或返回3.7.2 JSP动作指令jsp:forward jsp:forward

7、指令用于执行页面转向,将请求的处理转 发到下一页面。 语法格式:或返回3.7.3 JSP动作指令jsp:useBean jsp:useBean指令用来在JSP页面内创建一个JavaBean 实例。 语法格式:id属性指定了JavaBean的名称 , scope属性为JavaBean的有效范围 (request、session、page、application ) , class属性指定了JavaBean所归属的类 。返回3.7.4 JSP动作指令jsp:setProperty jsp:setProperty指令用来设置Bean属性值 。 语法格式:或或或返回3.7.5 JSP动作指令jsp:g

8、etProperty jsp:getProperty指令用来读取Bean的属性值,并将其 转换为一个字符串在页面上输出。 语法格式:其中,name对应着jsp:useBean指令的id值,property 对应着userBean中的属性名。返回3.7.6 JSP动作指令jsp:plugin 和 jsp:param jsp:plugin指令用于下载服务器端的 JavaBean或Applet到客户端执行。jsp:param指令用于设置参数值,它不能够 单独使用,主要用在jsp:include指令、 jsp:forward指令和jsp:plugin中。返回3.8 JSP内置对象内置对象是指不需要预先

9、定义就可以在JSP页面中直 接使用的对象,JSP共提供了9个内置对象 : request对象 response对象 session对象 out对象 page对象 application对象 pageContext对象 config对象 exception对象 返回3.8.1 JSP内置对象requestrequest对象用于获取客户端提交的数据,这些数据包 括头信息、客户端地址、请求方式等等。request对象 常用的方法 如下:返回3.8.2 JSP内置对象responseresponse对象用于对客户端的请求做出动态的响应, 向客户端发送数据。 response对象常用的方法 如下: 返回

10、3.8.3 JSP内置对象sessionsession对象可用来保存用户的会话信息和会话状态。 session对象常用的方法 如下: 返回3.8.4 JSP内置对象outout对象用来向客户端输出各种数据 。out 对象常用的方法 如下: 返回3.8.5 JSP内置对象pagepage对象就是指当前JSP页面本身,类似于Java中this。page对象常用的方法 如下: 返回3.8.6 JSP内置对象applicationapplication对象实现了用户间数据的共享,可存放全 局变量 。 page对象常用的方法 如下: 返回3.8.7 JSP内置对象pageContext pageCont

11、ext对象用于管理对属于JSP中特殊可见部分 中已经命名对象的访问。 pageContext对象常用的方 法 如下: 返回3.8.8 JSP内置对象config config对象用来获取服务器初始化配置参数 。 config 对象常用的方法 如下: 返回3.8.9 JSP内置对象exception exception对象用于处理JSP页面中发生的错误和异常 ,可以帮助了解并处理页面中的错误信息。 exception对象常用的方法 如下: 返回3.9 Servlet开发流程1.创建Servlet类,该类需要继承GenericServlet 。 2.在web.xml文件中,对编写好的Servlet

12、类进行配置。 格式如下:Servlet名称 Servlet类路径Servlet名称 映射匹配模式返回3.10 HttpServlet的应用如果要创建一个基于Web的HTTP Servlet,需要继承“javax.servlet.http.HttpServlet”类,并重载HttpServlet的doGet()方法和doPost()方法。其中doGet()方法用于处理GET方式的请求,doPost()方法用于处理POST方式的请求 。具体实现流程与创建普通Servlet相似。返回3.11 Servlet的生命周期(1)Servlet的生命周期如下图所示3.11 Servlet的生命周期(2)在S

13、ervlet生命周期中有三个重要方法: init(),负责Servlet的初始化工作 。 service(),处理客户端请求,并返回响应结果 。 destroy(),在Servlet容器卸载Servlet之前被调用,销毁 Servlet对象,释放系统资源 。返回3.11.1 Servlet的生命周期(2) init()Servlet加载和实例化是由容器来负责完成的 ,当服务器启动时,容器首先会定位并加载 Servlet类,然后实例化该类的一个或者多个 对象 。 Servlet被实例化后,容器会调用init()方法初 始化该Servlet对象,并传递实现ServletConfig 接口的对象。

14、执行完init()方法后,Servlet就已经处于“已初 始化”状态。 返回3.11.2 Servlet的生命周期(2) service()当客户端请求到来时,容器会首先为该请求 创建一个ServletRequest对象和 ServletResponse对象,其中ServletRequest代 表请求对象,ServletResponse代表响应对象 。然后容器调用service()方法,把请求和响应 对象作为参数传递,从而把请求委托给 Servlet。 在每次请求中,ServletRequest对象负责接受 请求,ServletResponse对象负责响应请求。 返回3.11.3 Servle

15、t的生命周期(2) destroy()当Servlet需要销毁时,容器会在所有Servlet 的service()线程完成之后(或在容器规定时间 后)调用Servlet的destroy()方法,以此来释放 系统资源,比如数据库的连接等等。 在destroy()方法被调用后,容器会释放Servlet 实例占用的资源,该实例随后会被Java的垃 圾收集器所回收。如果再次需要这个Servlet 处理请求,Servlet容器会创建一个新的 Servlet实例。返回3.12 自定义标签库JSP标签库(也称自定义标签库)可看成是一种生成基于XML脚本的方法,它经由 JavaBean(一种Java语言写成的

16、可重用组件)来支持。从概念上将,标签库就是很简单而 且可重用的代码结构。标签处理器:自定义标签的核心元素。它用来处理标签的定义、属性、标签体的内容、信 息及位置等。 标签库描述:一般使用.tld文件对标签进行描述,其实质上是一个XML文件,其中记录了 自定义标签的属性、信息及位置。并且由服务器来确定通过该文件应该调用哪一个标签。 应用程序部署描述符:要使用自定义标签,需要在“web.xml”文件中定义自定义标签及描 述自定义标签的tld文件的信息。 JSP页面:开发完自定义标签需要在JSP页面上进行相关的声明,之后就可以在页面中的任 何地方使用自定义标签了。3.12.1 自定义标签库步骤如下: 1.建立标签处理器 。标签处理器对应类可直接 继承SimpleTagSupport 类。 2.创建标签库描述文件。标签库描述文件是一 个以.tld为后缀的文件,它包含了标签处理器 的属性

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > Java

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号