Servlet知识点回顾
一、Servlet生命周期
服务器调用一个Servlet的8个步骤:
1、在服务器启动时,当Servlet被配置好或者被客户首次请求时,由服务器加载servlet,这一步相当于下列代码:
Class c=Class.forName("com.source.MyServlet");
2、服务器创建一个Servlet类的实例来为所有的请求服务。利用多线程,可以由单个servlet类的实例来服务于并行的请求,此步相当于下列代码:
Servlet s=(Servlet)c.newInstance();
3、服务器调用Servlet的init方法,用来对客户端的首次请求提供服务之前,完成一些初始化的工作。
4、服务器从包含在客户请求中的数据里构造一个ServletRequest或者HttpServletRequest对象,还构造一个ServletResponse或者HttpServletResponse对象来为返回响应提供方法。到底生成哪一种类型的对象,取决于Servlet是扩展了GenericServlet还是扩展了HttpServlet。
5、服务器调用Servlet的service方法,将步骤4中的对象作为参数传递进去。当并行的请求到来时,多个service方法能够同时运行在独立的线程中。
6、通过分析ServletRequestt或者HttpServletRequest对象,service方法处理客户端的请求,并用ServletResponse或者HttpServletResponse对象来响应。
7、如果服务器收到另一个对该Servlet的请求,处理过程从步骤5重复。
8、一旦Servlet容器检测到一个Servlet要被卸载(可能是因为停止Servlet容器或者web应用要被卸载掉),服务器会在所有的Servlet的service线程完成之后调用Servlet的destory方法。

二、doGet和doPost方法
1、通过表单提交到的servlet,看form的method是get还是post
2、通过链接<a href...>访问的servlet调用doGet方法
3、直接在浏览器地址栏键入的servlet地址调用也是doGet方法
get方式:

post方式:将各个表单字段元素及其数据作为http消息的实体内容发送给web服务器端,传送的数据量要比get方式传送的数据量大的多。


三、ServletContext接口
Servlet引擎为每个Web应用都会创建一个对应的ServletContext对象,ServletContext对象被包含在ServletConfig对象中。
由于一个Web应用程序中的所有Servlet都共享一个ServletContext对象,所以,ServletContext对象被称之为application对象。
功能:
- 获取web应用程序的初始化参数
- 记录日志
- application域范围的属性
- 访问资源文件
- 获取虚拟路径所映射的本地路径:getRealPath(String path);
- web应用程序之间的访问
- 其它方法
四、过滤器
通过Filter过滤器技术,对WEB服务器管理所有Web资源:例如对jsp、静态图片文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。
1、Filter实现原理
Filter接口中有一个doFilter方法,当编写好Filter,并配置对哪个Web资源进行拦截后,web服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法。WEB服务器在调用doFilter方法时,会传递一个filterChain对象进来,filterChain对象是也提供了一个doFilter方法,根据需求决定是否调用此方法,调用该方法,则web服务器就会调用web资源的service方法。
2、开发步骤
编写Java类实现Filter接口,并实现其doFilter方法
在web.xml文件中使用<filter>和<filter-mapping>元素对编写的filter类进行注册,并设置它所拦截的资源。
注:在一个web应用中,可以开发多个filter,这些filter组合起来称为一个Filter链。web服务器根据在web.xml文件的注册顺序,决定先调用哪个Filter。
Servlet知识点回顾的更多相关文章
- 面试前的准备---C#知识点回顾----03
经过一天的奔波,喜忧参半,不细表 再回看下标题,C#知识点回顾 再看下内容,数据库3NF 原谅我这个标题党 今天继续回忆 1.HTTP中Post和Get区别 这忒简单了吧,大家是不是感觉到兴奋了,长舒 ...
- Servlet知识点大纲
这是我整理的Servlet知识点大纲,可按照它的顺序来学习-..具体的内容在我的博客中都可以找到!
- Spring知识点回顾(08)spring aware
Spring知识点回顾(08)spring aware BeanNameAware 获得容器中的bean名称 BeanFactoryAware 获得当前的bean factory Applicatio ...
- Spring知识点回顾(07)事件发布和监听
Spring知识点回顾(07)事件发布和监听 1.DemoEvent extends ApplicationEvent { public DemoEvent(Object source, String ...
- Spring知识点回顾(01)Java Config
Spring知识点回顾(01) 一.Java Config 1.服务和服务注入 2.Java 注解 :功能更强一些 3.测试验证 二.注解注入 1.服务和服务注入 2.配置加载 3.测试验证 三.总结 ...
- Java进阶(二十六)公司项目开发知识点回顾
公司项目开发知识点回顾 前言 "拿来主义"在某些时候并不是最佳选择,尤其是当自己遇到问题的时候,毫无头绪. 在一次实验过程中,需要实现数据库的CRUD操作.由于之前项目开发过程中, ...
- $Django Rest Framework-认证组件,权限组件 知识点回顾choices,on_delete
一 小知识点回顾 #orm class UserInfo (models.Model): id = models.AutoField (primary_key=True) name = models. ...
- django知识点回顾与补充
一.django知识点回顾 1.Cookie操作 - 客户端本地存储的键值对 2.Session操作 - 3.URL路由 - /index -> view.函数 4.MTV 5.View中返回方 ...
- Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(一:知识点回顾)
一.知识点回顾 1.Mybatis环境搭建(DAO层的实现)(使用maven项目管理工具) 需要引入的依赖包: <!-- 单元测试junit --> <dependency> ...
随机推荐
- Introduction to pinatrace annotate version 2: a look into latches again
https://fritshoogland.wordpress.com/2017/12/22/introduction-to-pinatrace-annotate-version-2-a-look-i ...
- IOS 数据存储之 SQLite详解
在IOS开发中经常会需要存储数据,对于比较少量的数据可以采取文件的形式存储,比如使用plist文件.归档等,但是对于大量的数据,就需要使用数据库,在IOS开发中数据库存储可以直接通过SQL访问数据库, ...
- Revit对齐工具之多重对齐
Revit对齐工具用来将一个或多个图元与选定图元对齐,比如建筑建筑时可以将梁.墙.柱等对齐到轴网,或者其它类似的图元的对齐,可以对齐同一类型的图元,或者不同类型族间的对齐,可以在二维视图.立面视图和三 ...
- eclipse maven 导出项目依赖的jar包
转自:https://blog.csdn.net/andyliulin/article/details/46544555 一.导出到默认目录 targed/dependency 从Maven项目中导出 ...
- WPF背景图
方法一:xaml中:<控件> <控件.Background><ImageBrush ImageSource="/程序集;component/images/xx ...
- ubuntu 安装JDK1.6(jdk-6u45-linux-x64.bin)
ubuntu 安装JDK1.6 首先在官网下载JKD1.6 linux的版本:http://www.oracle.com/technetwork/java/javasebusiness/downloa ...
- Oracle 12c中文乱码,修改字符集的方法
在windows 7 64位上安装Oracle 12c没有设定字符集,采用的是操作系统默认字符集:WE8MSWIN1252,将字符集修改为:ZHS16GBK.由于过程不可逆,首先需要备份数据库. 1. ...
- wkhtmlpdf安装以及中文乱码
见此页http://www.cnblogs.com/day959/p/6652726.html
- AirServer for Mac(Airplay 终端实用工具)破解版安装
1.软件简介 AirServer 是一款 Mac 上的 AirPlay 终端,通过这款软件,利用 AirPlay 技术,iPhone 或 iPad 就可以无线连接到 Mac 上,不需要在 iPh ...
- IDEA使用笔记(七)——编辑器最大个数的设置
我想一定有许多人和我一样在使用IDEA的时候,打开了许多的编辑器选项卡,但是打开的数量是有限的,我们想打开更多的页面,并且希望控制当再次达到大限的时候能关闭那些我们最久没有看的文件! 好吧!看下面的配 ...