在学Java EE的时候,有一种把Web开发的历史从头学了一遍的感觉,为什么这么说,因为已经有了Python Web开发的经验,Java EE里有很多实质上和Django类似,但是要比Django更原始一些的东西,从这些东西一点点看到Web框架,真的能感受到Web开发从静态页面,到耦合度高的页面掺杂脚本,再到耦合程度略低的标签和渲染模板,逐渐进入到真正前后端分离的这样一个过程。

一个Web应用要有一个玩意来接收HTTP请求和发送HTTP响应,这个就是Tomcat,在Python开发里就是uWSGI,所有的HTTP最后送出去的东西都是通过这个东西。而我们编写的具体处理程序,也就是一个一个Servlet,其实就是接收包装好的HTTP请求,进行处理,生成HTTP响应再交给Tomcat送出去,所以Servlet就是Java Web开发的标准,而Servlet相比Django框架,还要底层一些,大概相当于Django中的一个处理函数或者类。

而Java EE这块的匹配方式,其实和Django的URL配置也很相似,Django通过一个URLPatterns来匹配路径与处理函数,Tomcat通过Web.xml来将URL通过中间名称与Servlet类关联,这点与Django非常相似。

JSP相比Django的模板渲染就要原始一些了,原始意味着代码量大,耦合程度更高,但自定义的内容更多,开发更灵活。这里有意思的地方在于,从JSP脚本,到EL和标签,能逐步看到前边说的Web开发的变化。到了最后彻底解耦就是前后端分离,只通过AJAX和JSON来通信了。

之后就是大框架Spring啦,话说今年上海的冬天一直阴雨,冷的要死,春天快点来吧,一年之计在于Spring。

2月22日更新,又花了两天时间看完了标签,将Java EE的知识总结如下: