1.什么是servlet
Servlet是开发动态web的一门技术,是运行在Java服务器端的程序,用于接收和响应来自客户端的HTTP协议的请求,是开发好的Java类部署到web服务器中。
如何实现Servlet功能:
第一种:实现Servlet接口,实现所有的抽象方法。该方式支持最大程度的自定义。
第二种:继承GenericServlet 抽象类,必须重写service方法,其他方法可选择重写。
第三种:·继承HttpServlet抽象类,需要重写doGet和doPost方法。该方式表示请求和响应都需要和HTTP协议相关。
2.servlet的执行流程
3.servlet的关系视图
4.servlet的生命周期
出生:请求第一次到达Servlet时,对象就创建出来,并且初始化成功。且只出生一次,将对象放 到内存中。
·活着:服务器提供服务的整个过程中,该对象一直存在,每次都是执行service方法。
·死亡:当服务停止时,或者服务器右机时,对象死亡。
结论:Servlet对象只会创建一次,销毁一次。所以Servlet对象只有一个实例。如果一个对象实例在应用中是唯的存在,那么我们就称它为单例模式。
5.servlet的映射方式
当创建一个javaweb项目时,要配置web.xml中的文件,声明servlet和编写servlet映射。
为什么需要映射:我们写的是JAVA程序,但是要通过浏览器访问,而浏览器需要连接web服务器,所以我们需要再web服务中注册我们写的Servlet,还需给他一个浏览器能够访问的路径。
原理:
6.servlet的创建时期
7.servletConfig介绍
servletConfig的常用方法
8.ServletContext对象
ServletContext对象表示Servlet应用程序。每个Web应用程序都只有一个ServletContext对象,保存在ServletContext中的对象被称作属性。
ServletContext配置方式
ServletContext常用方法
如:
9.Servlet的线程安全问题
由于Servlet采用的是单例模式,也就是整个应用中只有一个实例对象。所以我们需要分析这个唯一的实例对象中的类成员是否线程安全。定义类成员要谨慎。如果是共用的,并且只会在初始化时赋值,其他时间都是获取的话,那么是没问题的。如果不是共用的,或者每次使用都有可能对其藏值,那就要考虑线程安全问题了,可以将其定义到doGet或doPost方法内或者使用同步功能即可。
10.基于注解开发
基于servlet3.0规范,在servlet类的上面写入注解@WebServlet("/*")