黑马程序员技术交流社区
标题: 【石家庄校区】笔记 [打印本页]
作者: 庞帅 时间: 2018-5-21 15:07
标题: 【石家庄校区】笔记
EL & JSTL & MVC
EL表达式
【EL的概述】
Ø 目的:为了使JSP写起来更加简单。及简化JSP代码,减少<% %>
Ø 使用:语法是${EL表达式}
Ø 功能:
*获取数据:(JSP的四个域)
*执行运算
*操作web开发的常用对象
*调用Java中方法:---很少使用
【获取数据】
***** .和[]的区别.
* []用于有下标的数据(数组,list集合) .用于有属性的数据(map,对象)
* 如果属性名中包含有特殊的字符.必须使用[]
数组,List:[] ---遍历
Map,java对象:...属性
【EL的执行运算】
<h3>EL执行算数运算</h3>
<%
pageContext.setAttribute("n1", "10");
pageContext.setAttribute("n2", "20");
pageContext.setAttribute("n3", "30");
pageContext.setAttribute("n4", "40");
%>
${ n1 + n2 + n3 }
<h3>EL执行逻辑运算</h3>
${ n1 < n2 } - ${ n1 lt n2 } <!-- less than --><br/>
gt - >; le - <=; ge - >=; eq - ==;
<h3>EL执行关系运算</h3>
${ n1<n2 && n3 < n4 } - ${ n1<n2 and n3 < n4 }<br/>
<h3>EL执行三元运算</h3>
${ n1 < n2 ? "正确":"错误" }
<h3>empty运算</h3>
${ user == null } - ${ empty user }
【EL操作WEB开发的常用对象11个】
<!--
pageScope,requestScope,sessionScope,applicationScope - 获取JSP中域中的数据
param,paramValues - 接收参数.
header,headerValues - 获取请求头信息
initParam - 获取全局初始化参数
cookie - WEB开发中cookie
pageContext - WEB开发中的pageContext.
-->
<h3>接收请求的参数</h3>
<%= request.getParameter("id") %>
<%= request.getParameter("name") %>
<%= Arrays.toString(request.getParameterValues("hobby")) %>
<hr/>
${ param.id }
${ param.name }
${ paramValues.hobby[0] }
${ paramValues.hobby[1] }
<h3>获取请求头</h3>
<%= request.getHeader("User-Agent") %>
<hr/>
${ header["User-Agent"] }
<h3>获取全局初始化参数</h3>
${ initParam.username }
<h3>获取Cookie中的值</h3>
${ cookie.history.value }
<h3>获取PageContext中的对象</h3>
IP地址:${ pageContext.request.remoteAddr }
工程路径:${ pageContext.request.contextPath }
JSTL
【JSTL的概述】
JSP的标准标签库。(是一个不断完善的开放源代码的JSP标签库)
Ø 作用:JSTL和EL结合替换页面中的<%%>
Ø 版本:
* JSTL1.0 :不支持EL表达式.
* JSTL1.1 和 1.2 :支持EL表达式.
Ø JSTL的标签库:包含了五类标签.
* core(核心标签),fmt(国际化标签),xml(XML标签),sql(SQL标签),fn(JSTL提供EL函数库)
Ø 使用JSTL:
* 引入JSTL的相关的jar包.
* 在页面中引入标签库.<%@ taglib uri=”” prefix=””%>
【JSTL的核心标签的用法】
* if:
属性:test=“”|没有else,从条件着手解决else
* forEach:(主要用来遍历)
<c:forEach var="i" item="${arrs }">
${i }
</c:forEach>
var:名字随便取 items:取出待遍历的对象 step:步进(隔几个写数)
varStatus(记录遍历状态的变量):属性1:index(有下标的内容数据)
属性2:count(个数)
【JSTL的提供EL的函数库】
<h1>JSTL提供的EL的函数库</h1>
${ fn:contains("Hello World","Hello") }
${ fn:length("HelloWorld") }
${ fn:toLowerCase("ABCDE") }
<c:forEach var="i" items='${ fn:split("a-b-c-d","-") }'>
${ i }
</c:forEach>
MVC
JSP+Servlet+JavaBean合称MVC的设计模式
MVC:
M:Model:模型层 JavaBean
V:View:视图层 JSP
C:Controller:控制层Servlet
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |