Servlet的起源以及Servlet到底是什么

本文详细介绍了Servlet的概念和起源,以及其在Java Web开发中的作用。Servlet是Java平台企业版(Java EE)的一部分,定义了处理网络请求和响应的接口规范。通过Web服务器如Tomcat,Servlet帮助开发者专注于业务逻辑,而无需关注底层网络编程的细节。现在尽管有Spring MVC等框架对Servlet进行了封装,但Servlet仍然是理解Web应用程序工作原理的基础。
摘要由CSDN通过智能技术生成

详细介绍了Java Web中的Servlet的概念以及Servlet的发展历程。

1 Java Web概述

Java EE全名为Java Platform Enterprise Edition,即Java平台企业版。JavaEE以JavaSE作为语法基础,可以看作一个大的框架,提供了的一系列使用Java语言进行企业级应用开发的组件和API标准,没有提供具体的实现(也就是接口)。比如常见的Servlet、JDBC、EJB、JNDI、Servlet、JSP等等都是它制定的企业级应用程序开发的规范或者标准。

Java Web使用常常指Java开发的Web应用程序,并且实现了Java EE的一系列标准,比如我们自己的Servlet类,就是Servlet标准的实现。Java Web算作企业级开发的组成部分或者子集,Java Web和Java EE可以说不算是一个层次的东西,一个是实现,一个是规范!

Java Web应用程序开发,常常使用的规范就是Servlet、JSP、JDBC等,在更加上层的框架层出不穷的今天,我们也基本不会亲自手动实现这些标准提供的接口了,而是由框架来帮我们实现,然后我们又使用框架提供的封装好的更上层的、更友好的API进行开发。比如Spring web MVC,它帮我们实现了Servlet标准并且提供了更好使用的API,我们在使用Spring MVC开发的时候,根本感觉不到Servlet的存在!

但是如果不仅仅是会用,而是想要阅读这些框架的源码,那么,我们仍然不得不接触这些底层的API和规范。

2 Web请求

所谓Web应用程序,关键的使用前面的“web”,即“网络”的意思,也就是说,我们开发的企业级web应用层序,可以通过互联网,让远程的客户端能够访问。

通常,我们的web应用程序被称为服务端,包括了编写的程序代码、数据、各种资源,被放在服务器中,而客户操作的浏览器被称为客户端,这实际上就是BS应用架构的基础模型。最简单的服务端和客户端通信规则为:浏览器通过网络将请求发送给服务器,随后服务器根据请求地址把请求转发到对应的web应用程序中对应的处理程序,接着通过我们写的代码逻辑进行数据处理,并且将处理结果填充到前端页面中,并把Web页面数据传递给web服务器,web服务器再通过网络将web页面传递给客户的浏览器,随后展示给用户即可。

现在,我们模拟一下客户端和服务端的交互!我们使用浏览器作为客户端,因此主要就是模拟服务器的逻辑,我们采用Socket来编程 ,Socket隐藏了各种TCP/IP协议的交互,提供了针对TCP或者UDP编程的接口,可以接收请求和发送响应,实现不同计算机之间的通信。

/**
 * 模拟服务器
 *
 * @author lx
 */
public class MyServer {
​
    /**
     * 服务器通过线程池处理请求
     */
    static ThreadPoolExecutor serverExecutors = new ThreadPoolExecutor(10, 20, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<>()
            , Executors.defaultThreadFactory(), new ThreadPoolExecutor.CallerRunsPolicy());
​
    /**
     * 启动服务器
     */
 
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值