servlet简介
-
什么是servlet:
- servlet是运行在服务端的java小程序,是sun公司提供的一套规范(接口),用来处理客户端请求,响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API向客户端动态的servlet是运行在服务端的java小程序,是sun公司提供的一套规范(接口),用来处理客户端请求,响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API向客户端动态的
- servlet规范:包含三个技术点
servlet技术、filter技术(过滤器)、listener技术(监听器)
-
servlet快速入门
- 实现步骤1:
创建类实现servlet接口
覆盖尚未实现的方法 service()
在web.xml进行servlet配置
但在实际开发中,我们不会直接实现servlet的方法,因为那样实现的方法太多,我们一般创建类继承HttpServlet
- 实现步骤二:
创建类继承HttpServlet
覆盖doGet(),doPost()方法
在web.xml中进行servlet配置 - 访问过程
- 实现步骤1:
servletAPI(生命周期)
- Servlet接口中的方法
- init(ServletConfig Config)
何时执行:Servlet创建的时候执行
ServletConfig:代表的是改Servlet对象的配置信息 - service(ServletRequest request,ServletResponse response)
何时执行:每次请求都会执行
ServletRequest:代表请求,认为ServletRequest内部封装的是http请求的信息
ServletResponse:代表响应,认为封装的是响应信息 - destroy()
何时执行:servlet销毁时执行
- init(ServletConfig Config)
- HttpServlet类的方法
- init()
- doGet(HttpServletRequest request,HttpServletResponse response)
- doPost(HttpServletRequest request,HttpServletResponse response)
- destory()
- Servlet生命周期(面试题)
- Servlet何时创建:默认第一次访问该Servlet时创建该对象
- Servlet何时销毁:服务器关闭Servlet销毁
- 每次访问必然执行的方法:
service(ServletRequest request,ServletResponse response)
servlet配置
- 基本配置
url-pattern的配置方式
- 完全匹配访问的资源与配置的资源完全相同才能访问的
- 目录匹配 格式:/虚拟的目录…/* , 代表任意
- 扩展名匹配 格式:.扩展名
注意:第二种与第三种不能混用/aaa/bbb/*.abcd(错误的) - 服务器启动实例化Servlet
Servlet何时创建:默认第一次访问时创建,
在配置servlet时加上servlet在启动服务器时就创建 - 缺省Servlet
- 可以将url-pattern配置一个/,代表该Servlet是一个缺省的Servlet
- 什么是缺省的Servlet?
当你访问资源地址所有的servlet都不匹配时,缺省的Servlet负责处理,其实web资源中所有的响应都是Servlet负责,包括静态资源
- 欢迎页面
ServletContext对象
-
什么是ServletContext对象
- ServletContext对象代表一个web应用环境(上下文)对象,ServletContext对象内部封装的是该web应用的信息,ServletContext对象一个web应用只有一个
- 一个web应用有几个servlet对象?多个
- ServletContext对象的生命周期?
创建:该web应用被加载(服务器启动或发布web应用)
销毁:web应用被卸载(服务器关闭,移除该web应用)
-
怎样获得ServletContext对象
ServletContext servletContext=config.getServletContext();
servletContext servletContext=this.getServletContext(); -
ServletContext对象的作用
- 获得web应用全局的初始化参数
在web.xml中配置全局参数
通过context对象获得参数
- 获得web应用中任何资源的绝对路径
方法: String path=context.getRealPatn(相对于该web应用的相对地址); - ServletContext是一个域对象
什么是域对象?存储数据的区域就是域对象
ServletContext的作用范围:整个web应用(所有的web资源都可以向ServletContext域对象中存取数据,数据可以共享) - 与对象的通用方法:
setAttribute(String name,Object obj);
getAttribute(String name);
removeAttribute(String name);
- 获得web应用全局的初始化参数