程序员社区

【Servlet-1】Servlet的本质到底是什么?

文章目录

      • 模拟Servlet本质:
        • 第一件事情:定义Servlet协议
        • 第二件事情:服务器端小java程序
        • 第三件事:Web服务器

Servlet和JDBC相同,都是一套接口


在这里插入图片描述

模拟Servlet本质:

第一件事情:定义Servlet协议

充当Sun公司制定Servlet协议:Servlet协议本质上就是一个接口
接口就有调用者和实现者

package Servlet;

/**
 * Sun公司制定的JavaEE规范:Servlet规范
 * Servlet接口是Servlet规范中的核心接口
 * 接口注意:调用者是谁?实现者是谁?
 */
//服务器端小程序不能随意编写,必须实现Servlet接口
public interface Servlet {
    //服务器端的小java程序必须实现service方法
    void service();
}

第二件事情:服务器端小java程序

服务器端小程序充当实现者,实现接口中的抽象方法
这个地方时要java程序员来做的

package Servlet;
/**
 * javaWeb程序员编写服务器端小程序的时候,不能随意编写,必须实现Servlet接口
 */
public class DeleteServlet implements Servlet {
    @Override
    public void service() {
        System.out.println("连接数据库,正在删除数据......");
    }
}
package Servlet;
public class LoginServlet implements Servlet {
    @Override
    public void service() {
        System.out.println("连接数据库,正在验证用户名和密码......");
    }
}
package Servlet;
public class SavaServlet implements Servlet {
    @Override
    public void service() {
        System.out.println("连接数据库,正在保存数据.....");
    }
}

第三件事:Web服务器

web服务器充当调用方,web容器面向接口调用
Web服务器即Tomcat服务器
Tomcat服务器不需要程序员编写,已经由Apache组织编好了

web.xml的作用就是将用户的请求路径和底层服务器端的小java程序绑定在一起:

/login=LoginServlet
/delete=DeleteServlet
/save=SaveServlet

Web程序员要做的事:
Sun公司的接口也不用定义,因为这个规范已经定义好了
Tomcat不需要写,有人开发了
只需要写一个类实现Servlet接口,然后写一个web.xml文件将路径和类关联在一起

import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import java.util.Scanner;

/**
 * Tomcat
 *  WebServer
 *  Web服务器
 *  Web.Container
 *  Web.容器
 *
 *  web容器面向Servlet接口调用
 */
public class Tomcat {
    public static void main(String[] args) throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException {
        Scanner s = new Scanner(System.in);
        System.out.println("服务器启动成功,请访问.....");
        
        while(true){
            System.out.println("请打开浏览器,在浏览器地址栏上输入请求路径:");
            //程序执行到这儿,等待用户的访问
            String requestPath = s.next();
            System.out.println("您访问的资源路径为:"+requestPath);

            //Tomcat读取web.xml文件
            FileReader reader = new FileReader("F:\\javaWeb\\22-Servlet本质_laodu\\src\\web.xml");
            Properties pro = new Properties();
            pro.load(reader);
            reader.close();

            //通过key获取value
            String servletClassName = pro.getProperty(requestPath);

            //通过反射机制创建对象
            Class c = Class.forName(servletClassName);
            Servlet servlet = (Servlet)c.newInstance();

            //面向Servlet接口调用方法即可
            servlet.service();
        }
    }
}

在这里插入图片描述
Servlet是Sun公司制定的一套接口,是给Web服务器和java程序员制定的
java程序员的作用就是实现这个Sun公司制定的Servlet接口,写实现类
然后将类和用户的请求路径做绑定

实现类的创建和实现类中方法的调用是由Tomcat来做的,不需要程序员来做

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【Servlet-1】Servlet的本质到底是什么?

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区