从socket到servlet

从C++开发到java,上来就是SSM框架来搞,有点问题是不明了的。

首先,在C++里面也没有过http的编程,都是socket数据传输这种的,用C++做一个http通信,请求一个页面。

从socket到servlet_第1张图片
简单http
从socket到servlet_第2张图片
请求的页面

C++,任务语言都能做http通信,为什么在Web编程方面,就是java的天下呢?

1:http通信也是在socket的基础上面的,C++里面有epoll,完成端口的通信模型。这些建立起来通信的机制,java也可以,大家都可以。

2:进行http的通信,获取和显示页面也没有问题。

3:动态的进行页面交互,这里就是CGI,这个是什么东西? 肯定见过nginx的配置文件里有过印象

大家都是CGI,都一样,perl还占有优势的。

从socket到servlet_第3张图片
P38

然后呢,java就占领了web开发市场,servlet。

从socket到servlet_第4张图片
servlet

Servlet

在大家都还是CGI进行通信的时候,java出品了servlet。也就是从Web服务器到了应用服务器

从socket到servlet_第5张图片

什么是servlet,知乎,大家讨论,主要从性能方面,优化了CGI,不是每一次请求一个进程了。

servlet就是server + applet,服务端的小程序,动态生成日期,动态打招呼,动态的嘿嘿嘿,有很多的servlet,小程序在你的服务器上面跑着,你得写一个ServletManager吧。在本书的第二张,开篇就讲解了。

从socket到servlet_第6张图片
帮助

再看一下,什么是servlet,就是一个辅助小程序,就是一个实现了servlet接口的类,方法,我感觉就是http请求过来,switch(case),执行不同的方法,返回不同的内容,这也是一个改变呗,就认为是一个小程序即可,这概念没有必要太深究。

现在,一堆的serlvet在WEB服务器后面站着。C++等别的语言都没有这个规范,都在干着socket通信,switch-case来显示动态内容的事情,没有形成规范,而java已经看到了,servlet需要一个管理者,更进一步!你可以用C++来实现网络通信,你没有规范,就不能快速协作开发。

Servlet容器

自己想,Web服务器请求到应用服务器,我这里写一个epoll网络模型完成通信,完成小程序的调用,方法返回,不很好吗?要Servlet容器干什么?这里也是这么想的,给C++等一个PK的机会。

从socket到servlet_第7张图片
原生

1:通信,你要编写网络通信模型在这里。

2:我后台起了很多的小程序,在C++里面做中控做过的。就是不用了,也在这里起着。

3:显示页面,就是print("xxxxxx");能用jsp吗?永远这么写页面吗?jsp的支持,抽离出去。

4:线程安全什么的,两个小程序都要去操作数据库?

这些问题,你都不用管了,servlet容器来管理,你只用专注自己的业务servlet即可。

从socket到servlet_第8张图片
这么干

现在,不用你启动servlet了,让servlet容器来启动即可,servlet容器是一个规范,自动管理所有的servlet,完成web服务。现在,就是单实例多线程的方式

从socket到servlet_第9张图片
web服务

单实例多线程,提供服务,感受一个最简单的servlet。

从socket到servlet_第10张图片
servlet

现在,已经没有C++等什么事情了。浏览器,web服务器,应用服务,建立了一套规范。

你可能感兴趣的:(从socket到servlet)