为什么在标签中能写JSTL代码?
value="${loginname}" placeholder="邮箱/用户名/已验证手机" />
jstl代码在书写的时候有固定的格式与写法,它们会先经由tomcat等servlet容器解析生成相应的结果数据,这个过程发生在服务器端;而html标签解析发生在浏览器端
tomcat会读取jsp文件,解析jsp中的非html标签,像你这里的话tomcat会读取这段<c:if test=></c:if>代码并用解析器解析(文件头里的taglib对应类),归根到底就是jsp会经过tomcat的compile再转换成outputstream(标准的html代码)到client(ie,ff,chrome)
因为jsp文件在第一次请求的时候会被servlet容器编译成java class,所以其中的JSTL都会被编译和转换。
JSP
标准标签库(JSP Standard Tag Library,JSTL
)是一个JSP
标签集合,它封装了JSP
应用的通用核心功能。和JSP
里面的标签是可以一起使用的,而JSP
包含静态部分(标准的HTML
标签、静态的页面内容等)和动态内容(Java程序控制的内容),实际上JSP
是Servlet
的一种特殊的形式,每一个JSP
的页面就是一个Servlet
的实例。所以在<input>
标签里面加入JSTL
代码,等同于完成一个完成的业务逻辑Servlet
,两者之间可以搭配使用。