servlet 学习
- servlet 规范介绍:
- servlet规范来自于javaEE规范中的一种
- 作用:
- 在servlet规范中, 制定 [动态资源文件]开发步骤
- 在servlet规范中,制定 HTTP 服务器调动动态资源文件规则
- 在servlet规范中, 指定Http服务器管理动态资源实例对象规则
- servlet 接口实现类:
- servlet 接口来自于servlet规范下的一个接口, 这个接口存在http服务器,提供jar包
- Tomcat 服务器下lib文件内有一个servlet-api.jar 存放servlet接口(javax.servlet.Servlet接口)
- Servlet 规范中任务, Http 服务器能调用的[动态资源文件] 必须是一个servlet接口的实现类, implements,
例子:
class student{ // 不是动态资源文件,Tomcat无权调用 } class Teacher implements Servlet{ // 合法动态资源文件,Tomcat有权调用 Servlet obj = new Teacher(); obj.doGet(); }
- servlet 接口实现类开发步骤:
- 第一步: 创建一个Java类继承于HttpServlet 父类, 使之成为一个servlet 接口实现类
- 第二步: 子类中需要重写 HttpServlet 中的父类两个方法, doGet或者doPost
- 第三步: 将servlet 接口实现类信息 [注册] 到 Tomcat 服务器: web.xml ==> 将servlet 接口实现类路径地址交给 Tomcat
-
Servlet 的 doGet / doPost方法
/** * Create By Bolin on 2020/12/08 * 子类继承于父类, 父类实现接口, 儿子也顺理成章的实现了接口 * 只有service方法需要, 其他四个方法我们并不需要, 对Servlet 接口实现类没用, * 其他四个方法被爷爷抽象类定义承担了,留给孙子一个service方法去定义使用 * 直接继承HttpServlet,而不用implements Servlet * 父类爸爸帮我们决定了何时调用post方法何时调用get方法, 设计模式, 帮我们降低了编程难度 * this指向: 谁调用指向谁, 如果子类重写了这两个方法, 那么this指向子类对象, 不重写方法,则指向父类对象 */
- 创建后会自动生成doGet/doPost两个方法, 值得注意的是: 需要在类中创建无参的构造方法,且类只会被创建一次, 这两个方法会在每次进入的时候被调用。
package cn.bolin.controller;
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class OneServlet extends HttpServlet {
// 创建无参的构造方法
public OneServlet(){
System.out.println("Oneservlet 类被创建");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Oneservlet 类针对浏览器发送GET的请求");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Oneservlet 类针对浏览器发送的POST请求");
}
}
下期继续分享servlet的基础知识,和我做的笔记。