什么是 Servlet
# 0.什么是 Servlet
Servlet 就是一个处理 http 请求的接口(规范),是 JavaWeb 的核心技术。
# 什么是 Servlet
动态资源,之所以叫动态,是因为每个用户访问到的资源都不一样,这就需要逻辑判断。例如张三登录后,页面上关于用户名的资源,就需要显示张三的用户名和头像;如果是李四,则显示李四的,以 B 站为例:
使用静态资源,是做不到这一点的,这种业务逻辑要用代码来体现,例如 Java 语言。在 Java 中,万物皆对象,所以用户请求动态资源,请求的就是 Java 类,这里的 Java 类是依赖于服务器,但没有主方法 main 方法,由 Tomcat 去执行。
那么随便写一个 Java 类,Tomcat 都能执行吗?肯定不是,这个类要遵循一定的规则,才能被识别,也就是接口。这个 Servlet 就是接口。编写的代码封装在一个类,该类需遵循 Tomcat 的规范,才能被 Tomcat 识别,例如实现了实现接口
Servlet 概念:全称 server applet,运行在服务器端的小程序
- Servlet 就是一个接口,定义了 Java 类被浏览器访问到(Tomcat 识别)的规则。 可以看 JavaEE7-api,接口里定义了一些方法,自定义类的时候需要去实现接口中的方法,才能被识别
- 将来我们自定义一个类,实现 Servlet 接口,复写方法。
- 服务器也实现了 Servlet API 接口,实现底层接受、返回 HTTP 请求的功能,然后业务逻辑交给 Servlet 处理
我们可以看看 Servlet 的文档,里面是这样描述的:
Defines methods that all servlets must implement.
A servlet is a small Java program that runs within a Web server. Servlets receive and respond to requests from Web clients, usually across HTTP, the HyperText Transfer Protocol.大意是说,Servlet 定义了一些方法,所有 Servlets 实现类必须实现
一个 Servlet 是一个运行在 Web 服务器的小程序,它接受和响应 web 请求,通常是 HTTP 请求
Servlet 共定义了 5 个方法:
Modifier and Type | Method and Description |
---|---|
void | destroy() :Called by the servlet container to indicate to a servlet that the servlet is being taken out of service. |
ServletConfig | getServletConfig() :Returns a ServletConfig object, which contains initialization and startup parameters for this servlet. |
String | getServletInfo() :Returns information about the servlet, such as author, version, and copyright. |
void | init(ServletConfig config) :Called by the servlet container to indicate to a servlet that the servlet is being placed into service. |
void | service(ServletRequest req, ServletResponse res) Called by the servlet container to allow the servlet to respond to a request. |