赞
踩
最近在看疯狂软件系列Spring+MyBatis企业应用实战,拖拖拉拉前后用了将近10天左右的时间将书籍大概过了一遍,除去书本知识之外,我觉得更为重要的是让我认识到了持久学习的关键性,三天打鱼两天晒网结果就是知识掌握的间断性和模糊性,所以看书要持续,要有持久坚定的韧性,如此才能从书中觅得黄金屋,颜如玉。
JSTL全称JavaServer Pages Standard Tag Library,又被业内人士称为JSP标准标签库,由阿帕奇的某一个开发小组维护,在JSP2.0中作为标准支持,一般我们最常用的是以c标签为显著特征的Core标签库。
在讲JSTL之前我首先来说下他的诞生背景和存在的意义,年前在北京拜读了某大神的HeadFirst JSP&&Servlet(让我爱上了HeadFirst系列),大致对网站开发的历史稍有了解。在我们所谓的分包分层大家耳熟能详的MVC模式诞生之前,那个年代的JSP没有严格的所属层属性限制,通常我们看到的是在JSP页面中直接出现大量的业务逻辑编码(所谓的script),优势是学习成本低,灵活方便,但劣势也很显著,如果是个人小的站点没问题,但如果高大上的企业级Web应用采取这种方式就会漏洞百出,特别是在在出现了MVC这种企业架构模式之后,JSP只负责数据的呈现,但做了这个限制之后JSP的灵活性以及可扩展性就会受到影响,为了让JSP这一前端模板实用性更强,更丰富,JSTL诞生了。
JSTL最大的优势就是丰富了JSP页面的数据呈现,使得JSP页面的数据呈现变得更加规范化,简单化,同时丰富了JSP的呈现方式从企业应用的架构角度来说也更加利于项目的分层(JSP作为单独的View数据呈现层), 从总体而言使得JSP这一前端模板更加好用(Themleaf、Velocity、Freemarker)。
EL表达式全程Expression Language,通过使用EL表达式JSP页面可以不使用JSP声明、脚本和表达式经由隐式对象完成和后端进行数据的交互,是数据呈现的一种实现方式。
四大作用域主要包括:Page、Request、Session、Application
隐式对象 | 描述 |
---|---|
initParam | 指的是所有环境初始化参数相当于ServletContext.getInitParam(“name”) |
A | AValues |
param | 包含的是request中的参数${param.name}相当于request.getParameter(“name”) |
paramValues | 区别于param该对象返回的是一个key为参数名value为字符串数组的Map |
header | // |
headerValues | // |
AScope | BScope |
pageScope | // |
requstScope | // |
sessionScope | 包含session所有属性的Map${sessionScope.name}返回session中名称为name的具体属性value |
applicationScope | // |
A | B |
pageContext | 页面对应的全局变量 |
cookie | 指的是以cookie名称为key,该cookie实例为value的Map${cookie.name.value}为名称是name的cookie实例 |
内置对象指的是JSP页面的内置对象,区别于隐式对象,隐式对象是针对EL表达式来说的,JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、page、pageContext、config、exception、out,其中需要强调的是exception该内置对象必须在isErrorPa=true的页面才能调用。
以上内容为EL表达式和JSTL的部分知识总结,正像我之前说过的知识无论如何还是要记忆的,记住了本身便拥有了极大地优势。我们重视实践的作用,但绝不意味着放弃理论的记忆、理解和学习,理论仍然要季要深入理解,当然在此基础之上就是大量的实践。2018是我的技术决胜年,也是人生最为关键的一年,无论遭遇什么,技术修炼学习总结都不会中短,而我也会在后续陆续推出更高质量的博文期待大家的支持!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。