一、Servlet体系结构

Java Web应用是基于Servlet规范运行,Servlet顶层类的关联如下图:

从图可看出,Servlet规范基本围绕这几个类运行,其中,与Servlet主动关联的有3个类,分别是ServletRequest、ServletResponse、ServletConfig。

这3个类都是通过容器传递给Servlet的,其中,ServletConfig在Servlet初始化时就传给Servlet了。ServletConfig主要是获取Servlet的配置信息。

而ServletContext则是改Web项目中所有Servlet数据共享的地方,如工作路径、容器支持的Servlet最小版本等。

二、Servlet中的Listener

在整个Tomcat中,Listener使用的非常广泛,它是基于观察者模式。目前Servlet提供了6种两类 事件的观察接口,如下图:

基本上涵盖了整个Servlet生命周期中你感兴趣的事件,这些Listener的实现在web.xml中配置,也可在应用中动态添加。

需注意的是ServletContextListener在容器启动之后不能再添加新的。

三、Filter如何工作

Filter是web.xml的常用配置,可通过filter和filter-mapping组合起来使用filter,比servlet更灵活。

因为它除了提供request和response对象外,还提供了FilterChain对象,下面是与Filter相关的类图:

四、Servlet中的url-pattern

03-Servlet 体系结构知识梳理的更多相关文章

  1. solr DIH 知识梳理

    solr DIH 知识梳理 web.xml中listener配置 <listener> <listener-class>org.apache.solr.handler.data ...

  2. spring远程服务知识梳理

    序:本文主要是总结和归纳spring的远程服务相关知识,可作为入门学习笔记.写博客目的也是为了进行知识梳理,便于以后查看.本文主要参考资料 spring 实战第三版 本文主要讨论内容如下: 远程调度概 ...

  3. iOS多线程知识梳理

    iOS多线程知识梳理 线程进程基础概念 进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 线程 1个进程要想执行任务,必须得有线程(每1个 ...

  4. iOS 多线程知识梳理

    #iOS多线程知识梳理 ##线程进程基础概念 ###进程 进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 ###线程 1个进程要想执行任务,必须 ...

  5. MySQL 基础知识梳理

    MySQL 的安装方式有多种,但是对于不同场景,会有最适合该场景的 MySQL 安装方式,下面就介绍一下 MySQL 常见的安装方法,包括 rpm 安装,yum 安装,通用二进制安装以及源码编译安装, ...

  6. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  7. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  8. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  9. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. HDU 1540 区间合并线段树

    题目大意: 就是给定一堆位置,进行删除还原,最后找到 t 位置上的最大连续位置 #include <cstdio> #include <cstring> #include &l ...

  2. xtrabackup 恢复单表步骤

    1.apply-log应用redo日志,并导出表的数据字典innobackupex --apply-log --export  备份集 2.建表 如果知道表结构,则重建删除的表 create tabl ...

  3. 超简单的vue2.0分页组件

    1.组件代码 <template> <div class="pagination_comment_style" style="width: 100%;o ...

  4. open redis port for remote connections

    edit /etc/redis.conf Add below line after bind 127.0.0.1, then try redis-cli -h xxx.xxx.xxx.xxx ping ...

  5. Spring技术内幕:Spring AOP的实现原理(五)

    7.Advice通知的实现 AopProxy代理对象生成时,其拦截器也一并生成.以下我们来分析下Aop是怎样对目标对象进行增强的.在为AopProxy配置拦截器的实现中,有一个取得拦截器配置过程,这个 ...

  6. 利用 gnuplot_i 在你的 c 程序中调用 GNUPLOT

    这是一篇非常早曾经写的小文章,最初发表于我的搜狐博客(2008-09-23 22:55).由于自从转移到这里后,sohu 博客就不再维护了,所以把这篇文章也一起挪了过来. GNUPLOT 是一款功能强 ...

  7. HDUOJ--2121--Ice_cream’s world II【朱刘算法】不定根最小树形图

    链接:http://acm.hdu.edu.cn/showproblem.php? pid=2121 题意:n个顶点,m条边,求从某一点起建立有向图最小生成树而且花费最小.输出最小花费和根节点下标. ...

  8. linux常用命令---持续添加中...

    1.cp -r  源文件夹  目的文件夹   // -r 可递归所有子目录及文件 2.grep -r 查找内容 ./*    //递归查找当前目录下所有文件指定内容 3. 查看系统运行时间 who - ...

  9. UVALive 4212 - Candy

    Little Charlie is a nice boy addicted to candies. He is even a subscriber to All Candies Magazine an ...

  10. http协议的MP4文件播放问题的分析

    现在手上有两个链接 (1) http://202.108.16.173/cctv/video/8C/35/EB/E8/8C35EBE84E7B483C8741CF9A60154993/gphone/4 ...