1.三层架构
作用:为了将设计和实现完全分离
面向接口编程
描述:表示层 体现在界面
业务逻辑层 biz
数据库访问层 体现在dao方法
用法:
2.JSP标准标签
常用jsp标签(自带):
1.<jsp:include page="页面"> 包含
2.<jsp:param name="name" value="va"> 传参
3.<jsp:foward page="页面"> 转发 *****
4.<jsp:useBean>相当于实例化类
5.<jsp:setProperty>给useBean属性设置值
6.<jsp:getProperty>取值
4.userBean用法:
<jsp:useBean id="" beanName="" type="" class="" scope="">
id: 对象名 *
class:类 创建对象时,完全限定名(包名+类名)
type:类型 调用对象时 * (可以用抽象父类或者接口)
scope:作用域 (page * request session application)
5.setProperty用法:
<jsp:setProperty name="" property="" value="">
name:useBean 的id
property:属性名(要注意必须跟实体类中的属性名保持一致)
value:属性值
3.域对象&EL表达式&JSTL
一、jsp内置对象之域对象:
-- pageContext:属性的作用范围仅限当前的jsp页面(范围最小)
-- request:属性的作用范围仅限同一个请求(转发有效)
-- session:属性的作用范围仅限于一次会话,浏览器打开直到关闭称为一次会话(在此期间会话不失效)
-- application:属性的作用范围仅限于当前web应用(范围最大)
=============================================================
二、EL(Expression Language)表达式:
-- 功能:替代jsp页面中的复杂代码
-- 语法:${EL expression}
${bean.name}
-- EL中的隐含对象(pageScope、requestScope、sessionScope、applicationScope)
-- EL运算符(算术 关系 Empty运算符【判断集合中值是否为空 返回true或者false】)
属性范围 | EL中的名称 |
page | pageScope,例如${pageScope.username},表示在page范围内查找username变量, 找不到返回Null |
request | requstScope |
session | sessionScope |
application | applicationScope |
代码展示
<h2>二、EL表达式</h2>
1、${pageScope .aa }<br>
2、${requestScope .aa}<br>
3、${sessionScope .aa }<br>
4、${applicationScope .aa }<br>
<h3>EL运算符</h3>
${1+2 }_${5>2 }_${ not empty myls }
<h3>EL表达式取对象的属性值</h3>
<!--能够点出来的一定是实体类中的属性名 -->
${goods.gname }_${goods.gid }_${goods.gprice }
=============================================================
三、JSTL
使用JSTL的步骤:
在JSP页面添加taglib指令:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
使用JSTL标签
--通用标签:set out remove
--条件标签:if
--迭代标签:forEach
代码展示:
<h2>三、JSTL(jsp标准标签库)</h2>
<h3>通用标签:set out remove</h3>
<c:set var="sb" value="${665+1 }" scope="session"> </c:set>
<c:out value="${sb }"></c:out>
移除前:${sb }<br>
<c:remove var="sb" />
移除后:${sb }
<h3>条件标签:if</h3>
<c:if test="${sb==666 }">
噶哈哈
</c:if>
<h3>迭代标签:forEach</h3>
<c:forEach begin="1" end="10" var="i" step="2">
${i }
</c:forEach>
<!--遍历集合 -->
<c:forEach items="${myls }" var="g">
${g.gname }
</c:forEach>
<c:forTokens items="aa bb cc dd" delims="," var="i">
${i }
</c:forTokens>