EL+jstl

  1. 服务器端:
    不再进行页面的跳转,而是通过返回字符串信息,完成交互
    request作用域 不使用
    底层就是使用Response.getWriter()获取输出流 进行交互

EL表达式语言:获取作用域中的数据
用于替换输出脚本<%= %>

${scope.key} //获取具体某个作用域中的数据
${key } //获取作用域中的数据、逐级查找(pageContext【pageScope】、request、session、application)

II. 获取基本类型、字符串:
例1:
request.setAttribute(“name” , “tom”); //存储在request作用域
${requestScope.name} //获取request作用域中name的键所对应的值

例2:
request.setAttribute(“name” , “tom”); //存储在request作用域
${name } //从最小作用域逐级查找name的键所对应的值

EL和JSP脚本的区别:
<%=request.getAttribute(“key”) %> 没找到返回null
${requestScope.key } 没找到返回“”

III. 获取对象类型://只能访问对象的get方法,必须按照命名规范定义
在这里插入图片描述
IV. 数组、集合:(Array、List、Map) (Set没下标,无法直接访问元素,后续可遍历)
在这里插入图片描述
注意:EL获取Map中的整数key时,类型为long,所以保存时,也必须为long,否则访问不到。 //map.put(3L,“CCC”);
运算:
1). 算数运算符: + - * / (%、mod)

${requestScope.age+5}
2). 关系运算符:(> 、gt)(>=、ge )(<、 lt)(<=、 le)(==、 eq)(!= 、ne)
${requestScope.age>=20}
${requestScope.age ge 20}

3). 逻辑运算符:(&& 、and)(|| 、or)(! 、not)
${age>=20and sex==‘f’}
${age>=20&&sex==‘f’}
${not requestScope.flag }

4). 非空运算符:empty //判断命名属性是否为空
${empty requestScope.name}

V. 获得特殊对象:
1). pageContext:
<%=request.getContextPath() %> //动态获得应用名
${pageContext.request.contextPath } //动态获得应用名

2). param:EL获得表单数据(没用)
Servlet:request.getParameter(“name”);
JSP-EL:${param.name}

3). Cookie:EL获得Cookie
${cookie.username }
${cookie.JSESSIONID }
${cookie.JSESSIONID.value }

在这里插入图片描述
JSTL:JSP的标准标签库,可对EL获取到的数据进行逻辑操作_与EL合作完成数据的展示
应用:
I. 引入标签库:<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
II. 通过前缀使用:<c:标签名></c:标签名>
判断:

<c:if   test="${username=='michael'}">
	<h1>  mmisjih</h1>
</c:if>

多条件判断

<c:choose>
	<c:when  test"${age<20}">
		<h1>222</h1>
	</c:when>
	<c:when  test="${age>=20&&age<=30}">
		
	</c:when>
	<c:otherwise>
		
	</c:otherwise>
</c:choose>

3). 遍历:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4). 日期格式化:<%@ taglib uri=”http://java.sun.com/jsp/jstl/fmt” prefix=”fmt”%>
在这里插入图片描述

5). URL重写:在Cookie禁用的情况之下,通过拼接JSESSIONID来传递ID值,便于下次访问时仍可查找到上一次的Session对象
在这里插入图片描述
所有涉及到页面跳转或者重定向跳转时,都应使用URL重写。(转发会自动带有JSESSIONID跳转)
在这里插入图片描述
在这里插入图片描述

6). 移除://移除作用域中的命名属性 //可用于request、session、application

在这里插入图片描述
JSP和Servlet整合:

开发顺序:

  1. DAO
    I. table
    II. entity
    III. Dao接口
    IV. Dao实现 —> JdbcTemplate

  2. Service
    I. Service接口
    II. Service实现(调用Dao实现类,并控制事务TransactionManager)

  3. Action:处理请求的Servlet
    I. [ 收集请求中的数据 ]
    II. 调用业务功能(Service实现类)
    III. [ 在request作用域中保存数据 ]
    IV. 流程跳转[ forward | redirect ] -> xxx.jsp

  4. JSP:
    I. [ 在request作用域中获取数据 ]
    II. 使用EL+JSTL将数据嵌套在HTML标签中。

  5. Filter:
    I. EncodingFilter
    II. CheckLoginedFilter

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值