其他分享
首页 > 其他分享> > EL+jstl

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

标签:EL,name,作用域,requestScope,request,II,jstl
来源: https://blog.csdn.net/weixin_43358395/article/details/100977157