1.什么是Servlet?
Servlet是一个符合特定规范的Java程序,是一个基于Java技术的Web组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容;

2.Servlet和JSP的关系:JSP在运行时首先解析成一个Java类,该类继承于HttpJspBase类,而HttpJspBase又是继承自HttpServlet类,所以结论为
--》JSP在运行时会被Web容器翻译为一个Servlet。

3.Servlet API:
-->1.使用Servlet API可以开发HTTP Servlet或其他Servlet,Servlet API包含在两个包内。
javax.servlet包中的类和接口支持通用的不依赖协议的Servlet,包括Servlet、ServletRequest、ServletResponse、ServletConfig、
ServletContext接口及抽象类GenericServlet
-->2.Servlet接口的常用方法:
void init(ServletConfig config)由servlet容器调用,用于对象在处理客户请求前的初始化工作;
void service(ServletReques req,ServletResponse res)由servlet容器调用,用于处理客户端的请求;
void destroy():释放Servlet对象所使用的资源;
ServletConfig getServletConfig():返回ServletConfig对象,该对象包含此servlet的初始化和启动参数,返回的对象时传递给init()
方法的对象;
String getServletInfo():返回有关servlet的信息,如作者、版本和版权,返回的字符串是纯文本;
-->3.抽象类GenericServlet:实现了Servlet接口和ServConfig接口,定义了通用的、不依赖于协议的Servlet

常用方法:
void init(ServletConfig config):调用Servlet接口中的init()方法;
String getInitParameter(Stringname):返回名称为name的初始化参数的值;
ServletContextgetServletContext():返回ServletContext对象的引用;
-->4.抽象类HttpServlet:继承自GenericServlet类,具有与GenericServlet类似的方法和对象,支持HTTP的post()和get()方法;

常用方法:
void service(ServletRequest req,ServletResponse res):调用GenericServlet类中的service()方法的实现;
void service(HttpServletRequest req,HttpServletResponse res):相当于一个分发器,可以根据请求方法的类型,调用相应的doXxx()方法;
void doXxx(HttpServletRequest req,HttpServletResponse res):如doGet()、doPost(),根据请求方式不同,分别调用相应的处理方法
-->5.ServletConfig接口:一般Servlet容器使用ServletConfig对象在初始化期间向其传递配置信息,一个Servlet只有一个ServletConfig对象

常用方法:
String getIntParameter(String name):获取web.xml中设置的以name命名的初始化参数值;
ServletContext getServletContext():返回Servlet的上下文对象引用;
-->6.ServletContext对象:一个ServletContext对象表示一个Web应用的上下文,Servlet容器提供ServletContext接口的实现,在应用程序加载时
创建ServletContext对象,且被容器中的所有Servlet共享

常用方法:
String getIntParameter(String name):获取名称为name的系统范围内的初始化参数值;
void setAttribute(String name,Object object):设置名称为name的属性;
Object getAttribute(String name):获取名称为name的属性

4.Servlet的生命周期:加载--》实例化--》初始化--》响应服务--》销毁

5.使用Servlet实现控制器
Servlet和JSP的区别:
-->Servlet是在服务器上执行和解释浏览器的请求,承担客户端和其他应用程序之间的中间层的角色,主要是把动态的内容混合到静态内容中以产生HTML;
-->JSP页面在HTML元素嵌入Java脚本代码和JSP标记
Servlet和JSP可以结合使用,合理分工,Servlet擅长流程控制和业务处理,JSP方便在页面展示数据