servlet:
基于java的web组件,用于生成动态内容,由容器管理。
类似其他java技术组件,由平台无关的java类组成,并且由java web服务器加载执行
servlet容器:
servlet容器也称servlet引擎,作为web服务器或者应用服务器的一部分,
通过请求和相应对话,提供web客户端与servlets的交互的能力,容器管理servlets实例以及它们的生命周期
核心接口:3.0及以后一般使用注解或api代替以前的web.xml进行启动
servlet3.0前时代
服务组件
javax.servlet.Servlet
javax.servlet.Filter
上下文组件
javax.servlet.ServletContext
javax.servlet.http.HttpSession
javax.servlet.http.HttpServletRequest
javax.servlet.http.HttpServletResponse
javax.servlet.http.Cookie
配置
javax.servlet.ServletConfig
javax.servlet.FilterConfig
输入输出
javax.servlet.ServletInputStream
javax.servlet.ServletOutputStream
异常
javax.servlet.ServletException
javax.servlet.IOException
事件(since Servlet2.3)
生命周期类型
javax.servlet.ServletContextEvent
javax.servlet.http.HttpSessionEvent
javax.servlet.ServletRequestEvent
属性上下文类型
javax.servlet.ServletContextAttributeEvent
javax.servlet.http.HttpSessionBindingEvent
javax.servlet.ServletRequestAttributeEvent
监听器
生命周期类型
javax.servlet.ServletContextListener
javax.servlet.http.HttpSessionListener
javax.servlet.http.HttpSessionActivationListener
javax.servlet.ServletRequestListener
属性上下文类型
javax.servlet.ServletContextAttributeListener
javax.servlet.http.HttpSessionAttributeListener
javax.servlet.http.HttpSessionBindingListener
javax.servlet.ServletRequestAttributeListener
servlet3.0后时代
组件申明注解
@Javax.servlet.annotation.WebServlet
@javax.servlet.annotation.WebFilter
@javax.servlet.annotation.WebListener
@javax.servlet.annotation.ServletSercurity
@javax.servlet.annotation.HttpMethodConstraint
@javax.servlet.annotation.HttpConstraint
配置申明
@javax.servlet.annotation.WebInitParam
上下文
javax.servlet.AsyncContext
事件
javax.servlet.AsyncEvent
监听
javax.servlet.AsyncListener
Servlet组件注册
javax.servlet.ServletContext#addServlet()
javax.servlet.ServletRegistration (响应对象)
Filter组件注册
javax.servlet.FilterContext#addFilter()
javax.servlet.FilterRegistration (响应对象)
监听器注册
javax.servlet.ListenerContext#addListener() 无返回对象
javax.servlet.AsyncListener
自动装配
初始器
javax.servlet.SErvletContainerInitializer
类型过滤
@javax.servlet.annotation.HandlesTypes
servlet生命周期
初始化
容器第一次执行时,Servlet#init(servletconfig)方法被执行
处理请求
HTTP请求到达容器,Servlet#service处理请求
销毁
容器关闭,调用Servlet#destroy()方法
Filter生命周期
初始化
容器启动时执行Filter#init(FilterConfig)方法
处理请求
HTTP请求到达容器
Filter#doFilter方法被执行,在Servlet#servic方法之前被执行
销毁
容器关闭时执行Filter#destory()方法
Servlet on Srping Boot
Servlet组件扫描
@org.springframework.boot.web.servlet.ServletComponentScan
制定包路径扫描
指定类路径扫描
注解方式注册
servlet
1.扩展javax.servlet.Servlet
javax.servlet.http.HttpServlet
org.springframework.web.servlet.FrameworkServlet
2.标记@javax.servlet.WebServlet
Filter
1 实现javax.servlet.Filter
org.springframework.web.filter.OncePerRequestFilter
2 标记@javax.servlet.annotation.WebFilter
监听器
1 实现javax.servlet.ServletRequestListener
2 标记@java.servlet.annotation.WebListener
Spring Boot Api方式注册
servlet
1.实现 javax.servlet.Servlet
javax.servlet.http.HttpServlet
org.springframework.web.servlet.FrameworkServlet
2. 组装Servlet
spring boot 1.4.0开始支持
org.springframework.boot.web.servlet.ServletRegistrationBean
spring boot 1.4.0之前
org.springframework.boot.context.embedded.ServletREgistatoinBean
3 暴露Spring Bean
@Bean
Filter
1 实现javax.servlet.Filter
javax.servlet.http.HttpFilter
org.springframework.web.filter.OncePerRequestFilter
2 组装Servlet
spring boot 1.4.0开始支持
org.springframework.boot.web.servlet.FilterRegistrationBean
spring boot 1.4.0之前
org.springframework.boot.context.embedded.FilterREgistatoinBean
3 暴露Spring Bean
@Bean
- spring boot整合servlet、filter、Listener等组件方式
创建一个maven项目,然后此项目继承一个父项目:org.springframework.boot 1.创建一个maven项目: 2.点击next后配置父项目及版本号 3.点击finish后就可查看p ...
- Spring Boot 集成servlet,发布为可直接运行的war包,方便后续打包为docker镜像。
背景:Spring Boot 集成servlet,发布为可直接运行的war包,方便后续打包为docker镜像. 原文地址 https://github.com/weibaohui/springboot ...
- Spring Boot 注册 Servlet 的三种方法,真是太有用了!
本文栈长教你如何在 Spring Boot 注册 Servlet.Filter.Listener. 你所需具备的基础 什么是 Spring Boot? Spring Boot 核心配置文件详解 Spr ...
- Spring Boot整合Servlet,Filter,Listener,访问静态资源
目录 Spring Boot整合Servlet(两种方式) 第一种方式(通过注解扫描方式完成Servlet组件的注册): 第二种方式(通过方法完成Servlet组件的注册) Springboot整合F ...
- spring boot(18)-servlet、filter、listener
servlet.filter.listener的用法就不讲了,只讲如何在spring boot中配置它们.有两种方式,一种是从servlet3开始提供的注解方式,另一种是spring的注入方式 ser ...
- Spring Boot使用Servlet、Filter或Listener的方式
根据官方文档说明,有两种方式可以在你的Spring Boot应用中使用Servlet.Filter或Listener. 其一:将Servlet.Filter或Listener注册成Spring Bea ...
- Spring Boot的Servlet简单使用
当使用spring-Boot时,嵌入式Servlet容器通过扫描注解的方式注册Servlet.Filter和Servlet规范的所有监听器(如HttpSessionListener监听器). Spri ...
- Spring Boot 整合Servlet
冷知识,几乎用不到 在spring boot中使用Servlet有两种实现方法: 方法一: 正常创建servlet,然后只用注解@ServletComponentScan package clc.us ...
- Spring Boot (19) servlet、filter、listener
servlet.filter.listener,在spring boot中配置方式有两种:一种是以servlet3开始提供的注解方式,另一种是spring的注入方式. servlet注解方式 serv ...
随机推荐
- MySQL:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'. 原因是:mysql数据库的user表里,存 ...
- UITableView自定义Cell中,纯代码编程动态获取高度
在UITableView获取高度的代理方法中,经常需要根据实际的模型重新计算每个Cell的高度.直接的做法是在该代理方法中,直接根据模型来返回行高:另 [1]-(CGFloat)tableView:( ...
- 关于使用format()方法格式化字符串,读这一篇就够了!
从Python 2.6开始,又出现了另外一种格式化字符串的方法——format()方法.format()方法是字符串众多方法中的一个,调用这个方法时要使用点操作符(.),该方法返回一个格式化好的字符串 ...
- python中Multiprocessing
import multiprocessing as mp #该函数不能有返回值,如果需要则应该将值放在queue中 def job(a,b): print('aaaa') if __name__ == ...
- 使用docker加载已有镜像安装Hyperledger Fabric v1.1.0
背景 每次在新的服务器上安装Hyperledger Fabric网络时,通过fabric官方提供的脚本安装时,需要从网络上down下近10G的fabric相关镜像,这个过程是漫长及痛苦的,有时因网络问 ...
- # 20175311 2018-2019-2 《Java程序设计》第2周学习总结
## 教材学习内容总结 第二周我对如何运行java程序已经比较熟悉了,第二周更多的是注重程序内部的原理了. ## 教材学习中的问题和解决过程 - 问题1:看书时看到的一个例子,不是很懂它是怎么得出结果 ...
- 正则表达式与Python中re模块的使用
正则表达式与Python中re模块的使用 最近做了点爬虫,正则表达式使用的非常多,用Python做的话会用到re模块. 本文总结一下正则表达式与re模块的基础与使用. 另外,给大家介绍一个在线测试正则 ...
- LeetCode【110. 平衡二叉树】
对于平衡二叉树,就是左右深度相差1 就可以另外弄一个函数,计算深度,然后, 在原函数上进行比较深度是否相差1,再输出true or false. 至于迭代就可以,比较完左右节点,再比较各自的左右节点. ...
- springBoot的第一个程序
创建一个springBoot工程 然后输入工程名字 然后选择要导入的依赖jar包,这里只勾选了web 然后目录结构 创建一个controller必须在aplication.properties的同级目 ...
- sqlserver查找使用了某个字段的所有存储过程
当一个系统中使用了很多的表,并且存在大量的存储过程,当数据库中的某个表删除了某个字段,那么相应的存储过程也需要改动,但是我们不知道哪些存储过程使用了该字段,那我们该怎么办?我们可以从之前的文档一个一个 ...