作为初学小白,开始看到这四个东西很蒙,全是简称,感觉为了显示点动态内容怎么这么多杂七杂八的技术。后来大概理了一下四者之间的关系,记录理解以便复习和进一步学习。
总之他们四个都是为了实现动态内容的实现才相继出现的技术。
最初由Servlet来实现动态页面内容的实现,服务端通过维护成本极高的手动编写html标签返回给浏览器具体的html页面,用于根据request请求,通过Servlet处理返回html页面展示动态生成的内容UI。通过Servlet总算是实现了动态内容。但问题是编写太复杂,模板代码太多了,最直观的就是大量的PrintWriter.println("html标签")。
JSP就是为了简化动态页面生成而存在的,减少了大量的重复代码,大概逻辑就是通过JSP转换成Servlet来实现,所以最终可以理解成是对Servlet的一层封装。JSP具体是通过jsp脚本代码,将html与java代码混合在一起,实现动态页面的生成,JSP是Servlet的进化工具,对其定位落在了工具性质上。但新的问题是,JSP页面的脚本将html与Java代码混合显得很混乱,不便于纯Java研发人员理解,除非对html相当熟悉。
EL与JSTL,我认为总目标就是降低脚本代码,尽量使用标准的库和标签来代替JSP脚本,理想情况下达到无Java代码的状态,也能实现动态页面的呈现。JSTL提供了一整套标准标签类库,用标签的形式来代替java代码和JSP脚本,配合上EL表达式,可以更好的实现动态访问受限域变量及其属性,从而在UI中展示数据。
四者之间都是基于先前技术的问题和痛点,一步步发展而来的,相互配合依赖,是一个整体。
有不同观点的同学,请留言一起学习讨论。