其实在上世纪90年代,软件主要是C/S(Client/Server)一般来说C/S软件的界面是很漂亮的,但是这类软件最大的缺点就是用户需要安装,日后有新功能必须升级才能够使用。
后来WEB发展起来了,带宽也上去了,发现WEB也是可以搞的很漂亮的,于是前辈们把程序都放在了服务器端,通过浏览器进行访问,用户也不需要装客户端,只需要安装一个浏览器就可以了,听上去一切都很美好,但是WEB用的HTML是静态的网页,只能进行静态展示,没有交互的能力,后来CGI技术出现,可以允许web服务器调用外部程序,并把结果显示在浏览器中,虽然有交互功能了,但是程序员同学们很痛苦,因为这种情况是:在代码中一句一句的写HTML而不可以在HTML镶嵌代码片段,在JAVA的世界里SUN公司那些大佬们发明了和CGI类似的叫servlet并提供了很多内置对象(九个内置对象,也叫隐式对象,这个以后再谈),在一定程度上提升了程序员的编程体验,如今在刚开始学习JAVA EE的使用依然会使用servlet写一段时间代码,但是对于HTML这块还有需要程序员一句一句的输出,这时候sun公司的大佬们有搞出来JSP(java server pags)本质还是servlet,但是这时候可以在HTML中写逻辑控制的代码了,即使现在不推荐把HTML部分和逻辑代码放在一起,但是想到不用一句一句的输出HTML程序员们简直开心的像个孩子。
再后来,有了struts,springMVC 这样的MVC框架,SUN公司也把诸如数据库处理,邮件处理,消息处理,事务处理等部分做成了抽象的接口,形成了一套规范和标准,这些就构成了JAVA EE 所有我们一直所说的JAVA EE 其实就是一套规范和标准。
那spring又是怎么回事呢?作为一个搞JAVA EE的如果没用过spring简直是可怕,其实因为早期的EJB很难用,代码入侵性很强,有一个大佬叫Rob Johnson搞了一个叫spring的框架,站在大佬的肩膀上我们现在可以很happy的使用IOC(后来也叫依赖注入),AOP,在数据库操作方面几个澳大利亚的小伙子搞了一套ORM框架叫Hibernate。
在JAVA的世界里还有Apache Ngnix这样的服务器,这类的服务器叫静态资源服务器,它们主要处理的是像图片,文件这样的只读的静态资源(还有负载均衡的作用),性能非常的好,还有一种如tomcat jboss 这样的服务器,这类服务器叫做动态内容服务器,一般就简称为WEB服务器了,在系统架构中,一般情况把Apache/Ngnix放在前面就是所有的HTTP请求,如果请求的是静态资源则直接处理掉,如果请求的是动态资源则转发给tomcat/jboss处理,说到HTTP请求,如你所知的,HTTP是没有状态的,这是一个很严重的问题,例如:你要实现一个购物车的功能,用户向购物车中添加了很多商品,但是页面也刷新就没有了,如果有多个用户同时操作,服务器也分不清楚哪个请求是哪个人的,于是有人在HTTP的头部header中动手脚,在header中标记一个编号区分不同的用户,这个就session了。
接下来说说一只可爱的猫 一个名叫tom的cat ,上面说过,要实现动态交换,就要用到servlet,程序员可以在servlet里一句一句的输出html,但是servlet要运行在哪里呢?tomcat就是一个可以运行servlet的容器,它可以接收到用户从浏览器发过来的请求,并交付给相应的servlet进行处理,之后将数据返回给浏览器,jsp是servlet的一个很好的补充,在jsp中(主要是HTML代码)可以嵌套处理业务逻辑的代码。这时程序就可以很开心的运存咯。
领取专属 10元无门槛券
私享最新 技术干货