为什么servlet创建的时候不写成独立运行的,反而写成组件的形式

问题

  • 为什么servlet创建的时候不创建独立运行的,反而要放到容器里

解答

总览

  • 首先要明白servlet是用来干嘛的,他是用来处理http请求和响应的,而且是基于早起静态页面而发展过来的
  • 计算机界有句话是不要重复造轮子
  • 本身底层的网络通信和线程管理就已经有了,没必要再套用一份,只是要完善处理http请求和响应这一块就行了

独立运行需要什么

  • 假设servlet要独立运行,那么不仅需要写处理http请求和响应方面的,还需要实现以下功能:
    • 接收 TCP 连接 / 建立 HTTP 协议
    • 解析 HTTP 请求和封装对象
    • 创建线程处理请求
    • 生命周期管理(init, destroy)
    • 会话管理(Session)
    • 安全控制(认证、授权)
    • 热部署和资源管理

写成接口的好处

  • 遵循JavaEE的规范,有良好的移植性(JavaEE有良好的移植性,作为他的组件自然也有)
  • 一个容器可以调用使用多个servlet
  • 写的业务代码就可以 更专注、轻量、可维护(因为其他功能,容器本身就有

类比一下

Servlet 就像是一个厨师,你让他“单独运行”还得自建厨房、通煤气、配菜、招服务员…… 不如让他在一个专业的餐厅厨房(Servlet 容器)里工作,啥都有,你就专心做菜(业务逻辑)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值