1. El表达式技术:

传统方式获取域对象的数据使用jsp脚本段语句<%= %>:
缺点

  • 1:要导入包,
  • 2:需要强转.
  • 3:获取数据的代码过于麻烦

2. 使用el表达式获取域对象数据:

作用:获取域对象中的数据
语法:

1
2
3
4
request对象存储了请求数据--->param.键名   直接放回值
request对象存储了请求数据--->paramvalues.键名 放回的数组
通过setAttribute()方法存储到作用域对象中的数据
${键名} 返回健名对应的值

注意:

  1. 如果存储的是普通字符串则直接返回

  2. 如果存储的是对象,则返回的是对象

  3. 获取对象的数据:

    • 普通对象:===>${键名.属性名}
  4. 集合对象:

    • list:===>${键名[下标]}
    • map:===>${键名.map的key值}
  5. 作用域的查找顺序:
    默认查找方式:

  • pageContext–>request–>session–>application
    注意:每次查找从小到大依次查找

3. El表达式逻辑运算:

  • ${逻辑表达式}:&& || !
  • ${算术表达式}:+ - * / %
  • ${关系表达式}:> < = <= >=

特殊:可以做三目运算符 ${sex==1?’男’:’女’}

  • El表达式空值判断:${empty 键名} 返回true or false
    • 作用:判断键名对应的值是否存有数据

4. jstl标签库

apche对el表达式的加强,提高在jsp中逻辑代码的编写效率.
使用:

1
2
3
4
5
jstl的核心标签库
jstl的格式化标签库
jstl的sql标签库
jstl的函数标签库
jstl的xml标签库
  1. 导入jar包
  2. 声明jstl标签库的引入

基本标签库:

1
2
3
4
5
6
7
8
9
10
11
12
13
   <c:out></c:out>  :将数据生成给客户端
<c:set var="" value=""></c:set> :默认往pageContext域对象中存键值对
<c:remove var=""> </c:remove>:删除域对象中数据.如果不指定作用域的情况使用该标签删除数据,会将四个作用域对象中的符合要求的数据全部删除
逻辑标签库:
<c:if test="${表达式}"> 前端代码 </c:if>
作用:进行逻辑判断,相当于java代码的单分支语句
<c:choose>
<c:when></c:when>
<c:otherwise></c:otherwise>
</c:choose>
作用:进行多条件逻辑判断,相当于java代码的多分支语句
注意:条件成立只会执行一次,都不成立则执行otherwise
循环标签库:<c:foreach></c:foreach>

过滤器:普通的java类,实现了filter接口
总结:过滤器程序员声明和配置,服务器根据请求中的URI信息调用
执行:浏览器发起请求到服务器,服务器收到请求,根据URI信息在web.xml中找到对应的过滤器执行doFilter方法,该方法对此次请求进行处理后如果符合要求则放行,放行后如果还有符合要求的过滤器则继续过滤,找到对应的servlet进行请求处理.servlet对请求处理完毕后,也就是service方法结束了.还需继续放回对应的doFilter方法继续执行

案例: 1.统一编码格式 2.session管理

监听器:
作用:监听域对象的创建.销毁和内容的改变 监听对象:域对象
使用:创建一个实现了指定接口的java类