Day34-el和jstl

总结

我是最棒的!基础不牢,地动山摇!

JSP九大内置对象

对象名类型描述
requestHttpServletRequest请求对象
responseHttpServletResponse响应对象
sessionHttpSession会话对象
applicationServletContext当前应用对象
configServletConfig配置对象
outJspWriter输出对象
exceptionthowable异常对象
pageObject当前jsp对象
pageContextPageContext当前页面作用域对象

JavaBean

标准JavaBean的规范

  1. 类必须是公共的
  2. 提供一个public的无参构造方法
  3. 给每个字段都提供一套getter和setter方法

JavaBean中属性分类

  1. 可写属性 setter开头的方法
  2. 可读属性 getter开头的方法

判断属性的标准

方法必须以setter和getter开头,布尔类型是以is开头

例如

//所有的字段都使用包装类,数据库NULL的原因
//属性和字段没有关系
getAbc() 属性为abc 是一个可读属性

JavaBean的内省机制

专门用来操作JavaBean中的属性,方法和事件。JDK中提供了一个内省机制的类Introspector

EL表达式

作用:取作用域对象中设置的值,消除jsp中的部分java代码

语法格式:${作用域对象中的key}

注意事项

如果四大作用域对象存在相同的key值,先从PageContext再到HttpServletRequest,再到HttpSession,最后是ServletContext,如果在最小范围没找到,则依次往大的范围进行查找,找完没有找到则返回空字符串

动态获取上下文路径

//只有这一种方式
${pageContext.request.contextPath}

相同key值获取指定作用域对象的值

有四个对象,pageScope,requestScope,sessionScope,applicationScope.

//EL表达式相当于下面这句java代码
<%=
    pageContext.findAttribute("key") == null ? "" :
	pageContext.findAttribute("key")
%>

EL表达式的基本用法

  1. 支持普通运算和逻辑运算
  2. 支持三目运算
//举个栗子
${1+2}
${true && true}
${1+1=2 ? true : false}

EL表达式的特殊用法

  1. 可以调用方法
  2. 特殊值的取值方式
//实质上是调用JavaBean中的getter
${stu.name}
${对象名.属性名}
${对象名["属性名"]}(获取特殊的key值)
//tomcat7以后支持EL调用方法
${stu.show()}

JSTL表达式

JSTL是JSP标准标签库,可以完全消除jsp中的java代码

要使用JSTL需要先导入相应的包

JSTL中的if判断

<% 
	int age = 101;
	pageContext.setAttribute("age",age);
%>
	<c:if test="${age==18}">
		少壮不努力,老大徒伤悲
	</c:if>
	
    //相当于java中if else if ... else
	<c:choose>
		<c:when test="${age<18}">
			天干物燥
		</c:when>
		<c:when test="${age>18 && age<=60}">
			小心火烛
		</c:when>
		<c:when test="${age>60 && age<=100}">
			人生漫长
		</c:when>
		<c:otherwise>
			我劝你好生走路
		</c:otherwise>
	</c:choose>

JSTL中的循环迭代

	<%
		List<String> list = new ArrayList<String>();
		list.add("刘");
		list.add("关");
		list.add("张");
		
		pageContext.setAttribute("list",list);
	%>
    //相当于java中的循环
	<table border="1">
		<th>姓名
		//items代表要遍历的集合或者数据,x为集合中元素的别名
		<c:forEach items="${list}" var="x">
			<td>${x}</td>
		</c:forEach>
		</th>
	</table>

frameset框架集

老式布局,现在很少用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值