JSP+EL+JSTL


title: JSP+EL+JSTL

JSP

jsp执行原理

image-20200918113834717

image-20200918114808256

JSP页面指令

  1. language :值要写一个编程语言的名字(java,python…),默认值为java,指明该页面所使用的脚本的语言类型

  2. session : 值 false/true,当用户访问该页面是否自动生成该用户对应的session

  3. isELIgnored :值false/true, 该页面是否忽略el表达式,如果值为true,代表忽略el表示(不能使用)

  4. import :和java中的import作用相同,导入包

    <%@page import="java.util.Date"  %> 在该jsp页面导入java.util.Date类
    
    
    导入多个包
    1.
    <%@page import="java.util.Date"  %>
    <%@page import="com.baizhi.entity.User"  %>
    <%@page import="com.baizhi.entity.User"  %>
    <%@page import="com.baizhi.entity.User"  %>
    <%@page import="com.baizhi.entity.User"  %>
    
    2.
     <%@page import="com.baizhi.entity.User,java.util.Date,....."  %>
    
  5. pageEncoding :设置jsp—>java时,所使用的编码集,通常使用UTF-8

  6. contentType:设置java—》浏览器时所使用的编码集,通常使用UTF-8

  7. isErrorPage :设置该页面用不用向客户端报告异常信息 。值为true,需要向客户端发送异常信息

  8. errorPage :设置一旦该jsp报错,需要跳转到哪个页面

JSP内置对象

  1. request:就是我们在serlvet中使用的request对象

  2. session:就是serlvet中的session对象

  3. application:就是serlvet中的ServletContext

  4. response:就是serlvet中的response

  5. out:标准输出流对象

  6. page:相当于java中的this关键字,代指本jsp页面

  7. exception:错误对象,其中保存了jsp页面的所有报错信息,只有在页面指令 isErrorPage=true时,才能使用

  8. config (ServletConfig):servlet主配置对象

  9. pageContext(最重要):

    1.可以通过pageContext获取其他八个内置对象

    pageContext.getRequest() ----->request内置对象
    pageContext.getResponse()
    pageContext.getSession()
    pageContext.getServletContext ------->application
    ........
    

    2.pageContext是一个作用域

    request:一次请求

    session:一次会话

    serlvetContext:一次服务

    pageContext:本页面之内

    3.pageContext可以控制其他三个作用域

EL表达式

引言:目前,为了完成动态页面的展示,我们的做法是在JSP页面中嵌套java代码,这是我们不希望实现的效果,最终的实现效果应该是java与html标签分别写在不同的地方,不应该混在一起

为了实现这个效果,需要学习el表达式+jstl标签库

el表达式:展示数据

jstl:逻辑运算(循环,判断)

el表达式获取对象

${内容所在的作用域代称.对象的key}  ----->整个对象
${对象.属性名.属性的属性名.属性的属性名}                   ----->获取对象的属性


el执行原理
${对象.属性名}
el表达式中,第一个点前面的内容不变,之后的内容前面拼接get后面加上(),
${user.username}
user.getUsername()

获取项目名
request.getContextPath();

el:
${pageContext.request.contextPath}   --->动态获取项目名

el表达式获取list

获取指定下标的元素

${list[下标]}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dfDjx2Ys-1603802834266)(C:\Users\王鹏\Desktop\Blog\第二阶段笔记\JSP+EL+JSTL\image-20200921111242090.png)]

el表达式获取map

获取对应的键的元素值

${map.key} ---key不能为数字或者字符串类型的数字

${map["key"]} --->如果key为数字类型,那么必须是long类型

image-20200921112146831

el表达式的运算

弱类型语言

数学运算

包括: + - * / %

由于el是弱类型语言

${8/3} ----->2.666666666666666666666

逻辑运算

包括:> < >= <= != == & |

由于el是弱类型语言

${1=="1"} ------->true

补充

el获取请求参数

请求参数:页面通过form表单,a标签,直接在url中拼接方式,向另一个serlvet发送的参数

${param.key}

JSTL表达式(c标签)

单条件判断

需求:person.sex1 页面显示男 person.sex0 页面显示女

if(person.sex==1){}else if(person.sex==0{}
1.导入jar
2.在页面引入jstl标签
<%@ taglib  uri="http://java.sun.com/jsp/jstl/core" prefix="c"   %>  
3.
<c:if test="${判断条件 }">
			如果条件成立,展示的内容
</c:if>

image-20200921151106687

多条件判断

需求:小于20,青少年 大于20小于40,青年 大于40小于60,中年 大于60老年

if(age<20){
青少年
}else if(age<40){
青年
}else if(age<60){
中年
}else{
老年
}
<c:choose>
	<c:when test="${判断条件1}"> 当条件一成立时,展示的内容  </c:when>
<c:when test="${判断条件2}"> 当条件一不成立,条件二成立时,展示的内容 </c:when>
。。。。。。
<c:otherwise>所有条件都不成立时,展示的内容</c:otherwise>
</c:choose>

循环展示

需求;遍历list

for(User u : list){
u.getName()----->获取名字
u.getId()------》获取主键    
}
<c:forEach  var="每次循环出来的对象的临时名(u)"  items="${被遍历的集合}">
		获取整个被循环的------  ${u}
  获取对象属性  ------    ${u.属性名}
</c:forEach>


image-20200921160104588

map的循环
<c:forEach  var="每次被遍历出的Entry起的临时名(p)" items="${被遍历的map}">
 ${p}------>键值对
 ${p.value}-->值
 ${p.key}---->键
</c:forEach>
循环的补充
<!-- 
		
		begin:循环开始的元素下标
		end:循环结束的元素下标
		step:步长
		varStatus:状态对象
        index:当前元素下标
        count:当前循环次数
        first:判断是否为第一次循环
        last:判断是否为最后一次循环
	 -->

MVC开发思想

M:模型

  1. 作用:在项目开发过程中,为功能的实现提供组件
  2. entity,dao,serivce

C:控制器

  1. 作用:控制箱目的跳转流程
  2. servlet

V:视图

  1. 作用:动态展示信息,搜集用户输入的数据
    rStatus:状态对象
    index:当前元素下标
    count:当前循环次数
    first:判断是否为第一次循环
    last:判断是否为最后一次循环

–>

MVC开发思想

M:模型

  1. 作用:在项目开发过程中,为功能的实现提供组件
  2. entity,dao,serivce

C:控制器

  1. 作用:控制箱目的跳转流程
  2. servlet

V:视图

  1. 作用:动态展示信息,搜集用户输入的数据
  2. 包括:JSP+EL+JSTL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值