Web容器介绍

Servlet

Http服务器

在早期的Web中,服务器的作用只是存储静态资源供浏览器访问(比如图片、视频等等),这时的服务器功能并不需要多复杂,只需要做到解析请求、寻找资源、返回资源这些非业务功能即可即可。这里的服务器就是Http服务器。

interface Http {}

class HttpServer implements Http{
    private String StaticResources;

    public String GetRequest(){
        // 简单查询返回
    }

    public String PostRequest(){
        // 简单处理返回
    }
}

class Browser{
    public SendGetRequest(){
        HttpServer.GetRequest();
    }
}

Servlet

随着Web的发展,业务越来越复杂,交互越来越多。这时候需要根据Http请求调用不同的业务逻辑,但如果放在Http服务器中,就出现业务与非业务的混淆,于是需要再加一层来处理业务逻辑。
同时规定一个接口方便服务器与业务的对接,这就是Servlet。而Servlet容器是加载和管理这些实现Servlet的业务类。

interface Servlet{}

class ServletContainer implements Servlet{
    private String BusinessLogic(){
        // 使用Servlet的接口实现业务逻辑
        // 返回处理结果
    }

    public GetRequest(){
        // 获得从Http服务器发送来的请求
        // 找到对应的业务逻辑
    }
}

interface Http {}

class HttpServer implements Http{
    private String StaticResources;

    public String GetRequest(){
        ServletServer.GetRequest();
    }

    public String PostRequest(){
        ServletServer.GetRequest();
    }
}

进一步职责分离

可以看到,Servlet服务器也是存在业务类(Servlet业务类)和非业务类的混合。
于是我们可以把Servlet类完全抽离出来,Servlet只负责处理Http服务器的请求和根据Http服务器请求寻找对应Servlet业务类。
抽离出Servlet业务类来后,维护一个配置文件,记录请求与Servlet业务的关系,这就是web.config。
Http服务器和Servlet容器被统一称为Web容器。
这也解释了在开发Servlet的时候,没有main方法,只能放到web容器中才能运行。

参考网站

为什么要有Servlet,什么是Servlet容器,什么是Web容器

posted @   自来人  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示