JavaWeb(七)——JSP(二)

EL表达式

EL表达式:在JSP页面中获取数据的简单方式
只能从四大域中获取
只能在JSP静态页面通过${域对象中的参数名}的形式来获取 

1.使用java代码块来存放数据
<%  String name = "bjpowernode;
	pageContext.setAttribute("uname",name);
"%>

2.使用EL表达式来获取数据
name = ${uname}

EL表达式的查找域空间

EL表达式默认从四大域中按小到大的顺序查找
如果要指定在某一个域中查找数据,需要指定EL数据
pageContext域——pageScope属性 name = ${pageScope.uname}
Request域——requestScope属性	name = ${requestScope.uname}
Session域——sessionScope属性	name = ${sessionScope.uname}
Application域——applicationScope属性	name = ${applicationScope.uname}

EL表达式获取不同类型的参数

用EL访问Bean的属性:
<% Student stu = new Student("zs",23); 
 request.setAttribute("stu",stu)%>
 获取Bean参数——${参数名.属性名}
	${stu.name}
	${stu.age }
如果访问的对象是null,那么EL仅仅是不显示,不会报空指针

用EL访问数组:
<%String[] s ={ "12","34","56"} ;
request.setAttribute("s",s)%>
获取数组参数——${参数名[下标]}
${s[1]} 	

用EL访问List:与访问数组一致,但是无法访问Set,因为中没有索引的概念
用EL访问Map:和上面类似

EL中的运算符

${empty name} 返回true或false
empty对没有定义的变量,null的变量,空字符串的String引用,没有元素的数组或集合,返回true

EL的内置对象

EL有11个内置对象
pageScope				- pageContext域
requestScope			- request域
sessionScope			- session域
applicationScope		- application域
param,paramValues 		- 接收参数的对象
header,headerValues	    - 获取请求头信息的对象
initParam				- 获取全局初始化参数的对象
cookie					- WEB开发中cookie
pageContext			- WEB开发中的pageContext.

EL 的标签库

核心标签库
格式化标签库
EL函数标签库
SQL操作标签库:
XML操作标签库
示例:
导入标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
在body标签中——将参数存放到session域中
<c :set var="name" value="张三"  scope =  "session"/>scope 属性将值放在哪个域中
name = ${pageScope.name}不能获取到,去除scope 属性可以获取到
name = ${sessionScope.name}——张三   ;可以获取到张三

MVC与三层架构

JavaBean:
广义JavaBean(指一般意义的Java类):
承载数据的JavaBean
业务处理的JavaBean
狭义JavaBean:符合SUN公司提出的“JavaBean规范”的Java类
1.该类需要是公共的,public class...
2.该类需要实现Serializable接口
3.该类需要具备无参构造器
4.若有成员变量,需要私有化,并提供get/set方法
	
MVC(模型(JavaBean充当的model),视图(JSP充当的view),控制器(Servlet充当的Controller))的Model2
三层架构:
视图层(view层):Servlet——负责资源的跳转与展示
服务层(service层):Service——负责业务的处理
持久层(Dao层):Dao——访问数据库操作

三层架构+MVC:
view层:Controller(Servlet)  控制器 +  View(JSP)视图 + JavaBean模型
service层:...
Dao层:...

JSTL表达式

JSTL的下载http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
EL表达式可以完成数据的展示
JSTL可以以标签的形式完成业务逻辑等功能
常用JSTL标签库是Core
URI是http://java.sun.com/jsp/jstl/core
前缀为c
JSTL的导入<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

JSTL常用标签

1)<c:if>标签
2)<c:for>标签
3)<c:choose>标签
示例:
<% Student stu1 = new Student("zs",13); 
	Student stu2 = new Student("ls",24); 
	List<Student> list = new ArrayList<Student>();
	list.add(stu1);
	list.add(stu2);
 request.setAttribute("list",list)%>
 
<c:forEach items="${list}" var="user" varStatus="vs">取出域对象中的list数据循环取出每一个值,赋值给user
	<p>${vs.count }</p> 循环次数
	<c:if test="${user.age < 18 }">
		<p>禁止未成年人上网</p>
	</c:if>
</c:forEach>

<c:choose>
   <c:when test="${num== '1' || num== '2' ||num== '3'}"> 
    <th>名称<font color="Red">123</font>:</th>      
   </c:when>
   <c:otherwise>
   <th>其它<font color="Red">456</font>:</th>
   </c:otherwise>
</c:choose>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值