第十二章 过滤器.

Slides:



Advertisements
Similar presentations
第 4 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 内置对象.
Advertisements

第 4 章 JSP 内置对象 本章主要内容:  内置对象的概念  内置对象的作用域和生命期  内置对象的作用和关系  内置对象的使用方法.
第二章 JSP 编译指令. 课程目标  JSP 编译指令  JSP 页面的表达式  JSP 页面的注释  JSP 页面的声明  Scriptlets.
Java Web 开发 授课人:张鸽. 第三讲 JSP 内置对象  JSP 有以下九种内置对象,包括:  ·request ,请求对象  ·response ,响应对象  ·pageContext ,页面上下文对象  ·session ,会话对象  ·application ,应用程序对象.
LOGO 第 9 章 Java Servlet 和 JSP 编程 孙焘. 重点: servlet 编程原理 1 servlet 的基础类与编程实现 2 JSP 编程原理 3 JSP 的常用语法 4.
第 2 章 Java 运行环境搭建 2.1 Java 的运行系统 2.1 Java 的运行系统 2.2 JDK 的安装与配置2.2 JDK 的安装与配置 2.3 Java 开发工具包 2.4 Java 源文件编辑环境的选择 2.5 Application 和 Applet 程序的编写与运行.
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
第 9 章 测试部署  9.1 测试  9.2 部署. 9.1 测试  应用测试:使用 JUnit 单元测试框架 测试的目的是检验开发结果是否满足规定需求,测试是保证软件质量的一个重要手段, 在软件开发过程中是不可缺少的组成部分。 单元测试与集成测试分别有各自的定义:在实际开发中,两者之间的界定是模糊的。
第四章 类、对象和接口.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
动态Web开发技术--JSP.
Java 2实用教程(第3版)教学课件 主讲教师:张国平
第一章 JSP概述.
第五章 JSP内置对象 第4章学习了页面组成元素和使用方法。本章学习JSP内置对象的使用。使用JSP内置对象,可以方便操作页面,访问页面环境,实现页面内、页面间、页面与环境之间的通讯。 学习目标 熟悉主要内置对象的概念 理解主要内置对象的作用域和生命期 理解主要内置对象的作用和关系 熟悉主要内置对象的使用方法.
7.5 其他对象 JSP 视频教学课程.
上节课我们是讲解了request, response, session, application 等内置对象,有了它们,我们就可以编写一个完整的应用程序了。 我们来看ebank这个小应用程序的编写。
学生教育办介绍 2015年9月.
Java程序设计教程 第一讲 Java概述.
第五章:JDBC与数据库 第一讲.
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
MVC Servlet与MVC设计模式.
第一章 JSP概述 学习目标 JSP技术是目前WEB开发技术中应用最广泛的一种.本章对JSP技术、优点、缺点、应用前景作了简要介绍。
网站如何定制建设???.
学习情境三:配置WEB服务器 服务器配置与管理.
转正述职报告 乐恩公司 史航
荷福威士顿机器人科技有限公司 上海荷福集团
第二章 JAVA语言基础.
Servlet技术.
HTML5全栈开发序列课程 《前端入门》之HTML入门 余鹏作品.
Hello World 體驗實作第一個JSP程式.
第9章 过滤器和监听器技术 过滤器(Filter)和监听器(Listener)是两种特殊的Servlet技术。过滤器可以对用户的请求信息和响应信息进行过滤,常被用于权限检查和参数编码统一设置等。监听器可以用来对Web应用进行监听和控制的,增强Web应用的事件处理能力。 本章主要介绍过滤器和监听器的编程接口、基本结构、信息配置、部署和运行,最后通过案例说明过滤器和监听器的典型应用。
JSP程式設計 基本概論 歐陽芳泉 Fang-Chuan Ou Yang
软件设计模式与体系结构课程设计 周 宇 College of Information Science and Technology
AJAX基础.
数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
张孝祥IT课堂 -深入体验Java Web开发内幕
专题一 Servlet技术 案例一简单计数器.
Ch07 Java Applets 物件導向系統實務.
Java基础 JavaSE异常.
JSP自定义标签技术的分析与应用 ----Custom Tag 的分析与应用
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
胡鹏 王慧锋 TEL: 数据库系统原理课程设计 实验环节1 胡鹏 王慧锋 TEL:
崑山科技大學資訊管理系 伺服網頁程式設計 系統開發細部流程 教師:游峰碩.
電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋.
第一章: Java Web 开发技术概述.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第五章 继承、接口与范型.
王豐緒 銘傳大學資訊工程學系 問題:JAVA 物件檔輸出入.
Java语言程序设计 第八部分 Applet小程序.
简单的介绍,简单的配置,简单的扩展 By jfm
何謂名稱空間 何謂URI 名稱空間的作用方式 使用名稱空間的注意事項
第一讲 J2EE基础 博和利初级培训 —开发技能.
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
課程名稱:_____________ 指導教授:_____________
第11章 Android客户端与服务器交互.
C/C++/Java 哪些值不是头等程序对象
JAVA 编 程 技 术 主编 贾振华 2010年1月.
《JAVA程序设计》 语音答疑 辅导老师:高旻.
Ajax编程技术 第六章 调试与错误处理.
张孝祥IT课堂 -深入体验Java Web开发内幕
史忠植 王嘉 董明楷 张海俊 智能信息处理实验室 中国科学院计算技术研究所
JSP程序设计 第9章 Servlet简介.
利用JAVA DOM 進行DTD驗證XML文件
本學期資訊系統開發專案之技術架構.
第7章 异常处理.
XML備份MySQL資料庫 <html> <head>
主编:钟元生 赵圣鲁.
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
第2章 Java语言基础.
第1章 HTML基础 主讲人:刘泰然 经济管理学院.
Presentation transcript:

第十二章 过滤器

回顾 2-1 Java Server Pages 标准标签库 (JSTL) 用于访问 SQL 数据库、国际化标签以及在 JSP 页面中显示值 核心标签库包含通用标签、条件标签和迭代标签 通用标签用于显示、设置和删除 JSP 页面内的变量值 条件标签(如 if 和 choose)用于根据条件执行操作 迭代标签(如 forEach 和 forTokens)用于多次执行标签体

回顾 2-2 国际化与格式化标签库用于创建国际化的 Web 应用程序 SQL 标签库用于从 JSP 页面中访问和更新 SQL 数据库

目标 描述过滤器 理解过滤器生命周期 实现简单的过滤器

过滤器简介 过滤器是向 Web 应用程序的请求和响应处理添加功能的 Web 服务组件 过滤器的工作原理: 用户 过滤器 Web 资源 用户发送请求 用户 过滤器 Web 资源 过滤器将 Web 资源的响应发送给用户 资源将响应发送至过滤器

过滤器生命周期 过滤器生命周期的各个阶段: 实例化 初始化 过滤 销毁

过滤器定义 过滤器定义用于将过滤器名称与部署描述符中的特定类关联 <filter> <filter-name>FilterName</filter-name> <filter-class>ClassName</filter-class> </filter> 指定过滤器的名称 指定类的名称

过滤器映射 使用 <filter-mapping> 元素可将过滤器映射至 Web资源,如Servlet <filter-name> MyFilter </filter-name> <url-pattern> /servletname/* </url- pattern> </filter-mapping> 指定过滤器的名称 指定 Servlet 的名称

过滤器定义和映射 定义和映射过滤器 部署描述符中 <filter> 和 <filter-mapping> 元素的用法 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>FiltersModule</display-name> <filter> <filter-name>FilterTimer</filter-name> <filter-class>filters.TimerFilter</filter-class> </filter> <filter-mapping> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>

Filter 接口 过滤器是一个对象,它根据用户的请求和资源的响应进行过滤 Filter 接口包含以下方法: Filter 接口 Init() doFilter() destroy()

过滤器链 FilterChain 接口用于调用过滤器链中的一系列过滤器 用户 过滤器1 过滤器2 过滤器3 Web 资源 过滤器链

getInitParameterNames() FilterConfig 在初始化过程中,容器使用 FilterConfig 将信息传递给过滤器 FilterConfig 接口包含以下方法: FilterConfig getFilterName() getInitParameter() getInitParameterNames() getServletContext()

创建 Servlet ... out.println("<head><title>LoggerServlet</title></head>"); out.println("<body bgcolor=\"#ffffff\">"); out.println(“<h1>简单过滤器 Servlet</h1>"); String requestedUri = (String)request.getAttribute("requestURI"); out.println(“<b>请求的 URI 为: </b>"+requestedUri); out.println("</body>"); out.println("</html>"); 演示:示例 1

创建过滤器 FilterConfig、doFilter()、init() 和 destroy() 方法的用法 演示:示例 2 public class LoggerFilter extends HttpServlet implements Filter { private FilterConfig filterConfig; public void init(FilterConfig filterConfig) throws ServletException this.filterConfig = filterConfig; } public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) long startTime=System.currentTimeMillis(); String remoteAddress=request.getRemoteAddr(); String remoteHost=request.getRemoteHost(); HttpServletRequest myReq=(HttpServletRequest)request; String reqURI=myReq.getRequestURI(); System.out.println(reqURI); FilterConfig、doFilter()、init() 和 destroy() 方法的用法 演示:示例 2

创建 HTML 文件 演示:示例 3 <html> <head > <title > 新文档 </title > </head > <body > <h1>欢迎使用第一个过滤器示例</h1> <a href=‘/FilterModule/loggerservlet’>单击此处查看过滤器的效果</a> </body > </html> 演示:示例 3

实现过滤器链-过滤器1 public class SimpleFilter extends HttpServlet implements Filter { private FilterConfig filterConfig; public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) try { filterConfig.getServletContext().log("in SimpleFilter"); System.out.println("in SimpleFilter"); filterChain.doFilter(request, response); filterConfig.getServletContext().log("Getting out of SimpleFilter"); System.out.println("Getting out of SimpleFilter"); } catch (ServletException sx) { ... 演示:示例 4

实现过滤器链-过滤器2 public class SimpleFilter2 extends HttpServlet implements Filter { private FilterConfig filterConfig; ... public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) { try { filterConfig.getServletContext().log("in SimpleFilter2"); System.out.println("in SimpleFilter2"); filterChain.doFilter(request, response); filterConfig.getServletContext().log("Getting out of SimpleFilter2"); System.out.println("Getting out of SimpleFilter2"); } catch (ServletException sx) { } 演示:示例 5

实现过滤器链-web.xml <filter> <filter-name>simplefilter</filter-name> <filter-class>myfilter.SimpleFilter</filter-class> </filter> <filter-mapping> <url-pattern>/*</url-pattern> </filter-mapping> <filter-name>simplefilter2</filter-name> <filter-class>myfilter.SimpleFilter2</filter-class>

实现过滤器链 创建一个html文件作为Web资源 <html> <head></head> <body> <h1>欢迎访问过滤器链演示程序!</h1> </body> </html>

总结 过滤器是 Web 服务组件 过滤器可以访问客户端输入的请求和 Web 资源输出的响应 过滤器定义用于将过滤器名称与特定的类关联在一起 Filter 接口包含各种方法,如 init()、doFilter() 和 destroy() 每次用户发送请求或 Web 资源发送响应时都会调用 doFilter() 方法 FilterChain 接口用于调用过滤器链中的下一个过滤器 在初始化过程中,Servlet 使用 FilterConfig 将信息传递给过滤器