我的学习之路

xiaoxiao2021-02-28  88

回顾:JSP:JavaServerPage=servlet 三种脚本: <%   %> <%= %> <%!  %> 三种注释: <%-- --%> <%  //   /**/ %> <!-- --> 三个编译指令: <%@  page  %> contentType pageEncoding import errorPage isErrorPage <%@  include %> file <%@  taglib %> 七个动作指令: <jsp:include page=" "/> <jsp: forward> <jsp: taglin> 九个内置对象: page object request session applocation response config out jspWriter(printWriter) pageContext pageContext 取得其他内置对象 操作所有四个域 exception JSP模式:EL&JSTL 软件的结构:MVC M:Model:模型 模式 V:View:视图 C:Controller:控制器 EL : Expression Language 表达式语言 作用:计算表达式的值并替换到页面的当前位置。替代的<%= %> 语法:${表达式} 注意: EL只能在JSP中用,(HTML不能用) EL只能访问域中的数据,不能访问页面中的局部变量 如果EL表达式在当前页面中不能生效(直接把表达式显示出来,没有进行计算),在page指令中设置isElgnored="false" 内置对象:(EL的内置对象,和JSP的内置对象不是一回事) 域对象:注意此四个内置对象代表的是四个域,并不代表四个JSP内置对象 pageScope requestScope sessionScope applicationScope 注意:在使用EL表达式的这四个域对象指定取得数据的域范围时,如果指定了,则只在指定的 域中查询找数据,如果没找到,则返回空(不是null,就是空字符串),如果没有指定域,直接在EL表达式 中给出变量名,则由小到大在四个域中进行查询,找到为止. 请求参数对象: 请求头对象 Cookie对象 上下文对象 初始化参数对象 JSTL : JSP Standard Target Lib : JSP标准标签库 是一些由Java语言实现的标签,可以在JSP页面中使用的标签. 所以这种标签是内服务器运行的,浏览器并不能识别这些标签. JSTL是JSP官方开发的一些标签.(任何人都可以开发标签库) 如何使用JSTL: 导包(JSTL.jar    standard.jar) 在页面中声明引用标签库: <%@ taglib  uri="  "  prefix=" "   %> uri:当前引入标签库的唯一标识(开发标签库的开发者自定义的) prefix:使用当前标签库的标签时,使用的前缀.自定义(只在当前页面有效) 总结: EL:表达式语言 ${表达式} 注意:表达式中的数据除常量必须来自于域 内置对象: pageScope requestScope sessionScope applocationScope param/paramValues pageContext:    pageContext.request.contextPath  取得项目名 header/headerValues initParam cookie empty: 数值:是否为0 字符串:是否为空“” 对象:是否为null 集合:否为长度为0 JSTL: 使用方式: 导包:jstl.jar       standard.jar 在页面中引用标签库: <%@  taglib uri=" "  prefix="  "   %> uri:开发标签库中开发者自定义 prefix:当前页面自定义的(每个页面都可以不一样) 使用自定义的前缀引用标签:  <c:if >  </c:if> if 属性:test : 属性值的一个结果为布尔值的表达式,根据此表达式的结果决定是否运行if标签的内容 没有else,想要实现else只能是在if标签的后面跟一个反条件的if forEach List:<c:forEach var="p"  items=" ${list} " > Map:<c:forEach var = "m"  items="  ${map}  "> var所定义的m是一个键值对,可以通过m.key/m.value 得到键和值 计数型循环: var 循环控制变量 begin 起始值(闭区间) end  结束值(闭区间) step 步长 varStatus 属性 : 代表的是当前本次循环的状态 index:从0开始 count:从1开始 first : 是否是第一个  last:是否是最后一个 -------------------------------------------------------------------------------------------------------------- EL不能直接访问局部变量,只有被保存在域中,才能被EL表达式访问到 在${}前面加反斜杠,代表转义,此EL表达式就不再进行运算了,而是原样显示 -------------------------------------------------------------------------------------------------------------- <%--包含特殊字符的名字,用方括号和引号括起来 --%> 例如:  \${header['User-Agent'] } : ${header['User-Agent'] } -------------------------------------------------------------------------------------------------------------- ${pageContext.request.contextPath }   获取当前项目名 -------------------------------------------------------------------------------------------------------------- <%--判断对象时,对象为空,则返回true --%> <%--判断集合对象时,对象为空,返回true,对象不为空,但集合中没有元素,返回true --%> \${ empty list } : ${ empty list }<br/> -------------------------------------------------------------------------------------------------------------- <%--JSTL中的if标签,运算test属性中的表达式,如果结果为true,则运算if标签中的内容,否则不运行 JSTL没有提供ELSE,所以想要实现if else 的结构,之恩能在if标签后面再跟上一个if标签 在test属性中设置完全相反的条件  --%> 例题:<c:if test="${3>2 }"> <font>条件成立</font> </c:if> -------------------------------------------------------------------------------------------------------------- <%-- 实现计数型循环: for( int i = 0 ; i < 10 ; i++ ) begin:起始值  end:结束值 闭区间 step:步长(默认为1) --%> <c:forEach var="i" begin="1" end="10" step="1" > ${i }<br/> </c:forEach> -------------------------------------------------------------------------------------------------------------- <%--varStatus是一个可选属性,设置代表当前循环状态的一个对象 对象属性: index:整数,当前循环的索引,从零开始 count:整数,当前循环的次数,从一开始 first:布尔值,当前循环是否是第一次 last:布尔值,当前循环是否是最后一次 --%> -------------------------------------------------------------------------------------------------------------- <c:forEach >  </c:forEach>标签中    (var 表示:变量名   items 表示要遍历的元素)增强for   {begin:起始值 end:结束值 step:步长(默认为1)}  普通for --------------------------------------------------------------------------------------------------------------
转载请注明原文地址: https://www.6miu.com/read-70857.html

最新回复(0)