什么是servlet?
一、servlet是什么?
是用java编写的应用在服务端的程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和修改数据,生成动态Web内容,例如页面等等。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
二、工作原理、流程
1、原理
Servlet容器将Servlet类载入内存,并产生Servlet实例和调用它具体的方法。但是要注意的是,在一个应用程序中,每种Servlet类型只能有一个实例。
2、servlet接口
public interface Servlet { void init(ServletConfig var1) throws ServletException; ServletConfig getServletConfig(); void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException; String getServletInfo(); void destroy(); }
init():很明显,servlet的初始化,依赖于servletConfig对象。当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象出来,但是这个方法在后续请求中不会在被Servlet容器调用。
getServletConfig():返回由Servlet容器传给init()方法的ServletConfig对象。
service():每当请求Servlet时,Servlet容器就会调用这个方法。
getServletInfo():返回Servlet的一段描述,可以返回一段字符串。
destroy():卸载应用程序或者关闭Servlet容器时,Servlet容器就会调用这个方法销毁Servlet。
3、实现类
Servlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。
HttpServlet指能够处理HTTP请求的servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。
HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆写doGet或doPost方法,而不要去覆写service方法。
4、示例
选择要实现的方法
注意上面servlet使用了@WebServlet注解,因此就不需要在web.xml中进行配置。
启动tomcat,效果如下:
或者去掉@WebServlet注解,配置web.xml
工作流程:
- 客户端发送请求至服务器端;
- 服务器将请求信息发送至 Servlet;
- Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
- 服务器将响应返回给客户端。
最常用的Tomcat就是实现了servlet规范的servlet容器,servlet规范中定义了一些应用容器的职责、规范、约束等等。
tomcat简单的工作流程图:
posted on 2019-04-12 23:06 阿里-马云的学习笔记 阅读(1100) 评论(0) 编辑 收藏 举报