EL技术的目的为迅速取出域中存储的数据,它的底层是一个pageContext.findAttribute()。当使用${目标数据的键值}时,它等同于<%=pageContext.findAttribute(目标数据的键值)%>,搜索顺序仍然依次是从pageContext域,request域,session域,application域中获取属性,在某个域中获取后不再向后寻找。
EL内置对象有11个(了解即可):
pageScope,requestScope,sessionScope,applicationScope
---- 获取JSP中域中的数据
param,paramValues - 接收参数.
相当于request.getParameter() request.getParameterValues()
header,headerValues - 获取请求头信息
相当于request.getHeader(name)
initParam - 获取全局初始化参数
相当于this.getServletContext().getInitParameter(name)
cookie - WEB开发中cookie
相当于request.getCookies()---cookie.getName()---cookie.getValue()
EL执行表达式
${1+1}//直接计算结果,页面输出结果为2
${empty user}//判断域中是否存了user这个值,不存在返回true,存在返回false
${user==null?true:false}//与2类似,三元运算符,判断user是否为空,空则为true,不空为false
========================================
JSTL技术的目的是简化jsp页面的for和if语句,首先要导入JSTL的jar包,然后在页面声明
<%taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
然后当在页面中需要使用if判断时,语句如下:
<c:if test="判断条件">如果通过判断条件要执行的语句</c:if>
当在页面中需要使用普通for循环时,语句如下:
<c:forEach begin="0",end="循环次数" var="自定义变量名">要操作的语句</c:forEach>
当在页面中需要使用增强for时,语句如下:
<c:forEach items:集合or数组 var="自定义变量名">要操作的语句</c:forEach>
==========================================
JavaEE开发模式:
model1模式:
技术组成:jsp+javaBean
model1的弊端:随着业务复杂性 导致jsp页面比较混乱
model2模式
技术组成:jsp+servlet+javaBean
model2的优点:开发中 使用各个技术擅长的方面
servlet:擅长处理java业务代码
jsp:擅长页面的实现
MVC:---- web开发的设计模式
M:Model---模型 javaBean:封装数据
V:View-----视图 jsp:单纯进行页面的显示
C:Controller----控制器 Servelt:获取数据--对数据进行封装--传递数据-- 指派显示的jsp页面
javaEE的三层架构
服务器开发时 分为三层
web层:与客户端交互
service层:复杂业务处理
dao层:与数据库进行交互
开发实践时 三层架构通过包结构体现
三层架构有时体现了MVC的模式