<jsp:useBean>标签
- id:当前实例化对象的引用
- class:创建的实例,使用的包和类的名称
- scope:JavaBean保存的范围,page-request-session-application
- 例子 :<jsp:useBean id="studentBean" class="com.lovo.bean.StudentBean" scope="session">
<jsp:setProperty>标签
- property:代表当前对象的属性名字
- name:当前javaBean对象
- value:代表当前属性的值
- param:用于获取用户传递过来的参数,然后传递给property对应的属性
- property=* 表示匹配所有的属性,用户请求过来的名字必须和javabean里面的属性名字保持一致。
<jsp:getProperty>标签
开发模式
- jsp+javabean
- jsp:负责控制逻辑,业务对象的调用,显示数据。
- javabean:用于封装数据,处理业务。
- 优点:效率高,不需要很复杂的架构模式,开发起来简单。适合开发小程序。
- 缺点:项目不好维护
借鉴MVC架构模式
- model(模型):提供要展示的数据,包含数据和行为。
- view(视图):主要负责模型的数据显示。
- Controller(控制器):接受用户请求。委托模型进行业务处理,处理完了后再将数据发送给视图。起到一个调度员的作用。
- model-->javabean
- view-->jsp、html
- Controller-->servlet
- mvc模型是一种架构模型,本身没有引入任何新功能,只是把我们开发的结构组织的更合理,将表现和结构分离,将逻辑和表现分离。
- mvc:模型用javabean,把javabean称为javabean组件及负责收集封装数据,又要进行业务逻辑的处理,造成javabean非常的庞大,将javabean组件替换成三层架构,javabean组件=域模型层+业务层+持久层。
- mvc在三层架构里面主要存在于表示层。
编写Java无脚本的JSP页面
表达式语言----EL表达式
- 主要用来替换JSP中的脚本表达式。可以从各个域中去找到java对象获取到数据。(javabean对象,list集合,map集合,数组等)
- 利用el表达式可以在jsp页面中进行一些简单的运算,算数运算,
- el表达式在执行内容的时候,会调用pageContext.findAttribute(),分别在page,request,session,application域获取内容,找到就返回当前对象,找不到就返回“”字符串,而不是null。
- 语法 ---- ${stu.classbean.name}
- 算术运算符
- ${1+2} ${2*4}
- 关系运算符 ---empty()判断对象是否为空
- ${1>2} ${user==null} ${user eq null} ${empty(user)}
- el中的二元表达式
- ${1 > 2 ? "ok" : "fail"}
- 逻辑运算符
- ${1 > 0 && 2 < 3} ${1 > 0 and 2 > 1} ${1 > 0 or 2 < 3} ${!true} ${not true}
标准标记库JSTL
- jstl是为了弥补html的不足,使用jstl标签目的就是为了消除页面上的java逻辑代码。
主要研究核心库
- 表达式控制标签: out、set、remove、catch
- 流程控制标签:if、choose、when、otherwise
- 循环标签:foreach fortokens
- url标签:import、url、redirect、param
导入标签库
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
out 输出数据
- <c: out value = "123"></c: out>
- <c: out value = "${username }"></c: out>
- <c: out value = "${null }" default="默认值"></c: out>
- <c: out value = "${null }">默认值</c: out>
set 设置值 ----用于把一个对象存放在指定的域范围内
- var:设置的属性名字 value:属性值 scope:当前将属性存放在什么域中 target:指定要操作的某一个对象,不能操作属性 property:属性名 - <c: set var="username" value="123" scope="request"></c: set> - <c: set target="${userbean }" property="name" value="123" ></c: set>
remove 从指定域中移除内容
- <c:remove var="name1" scope="session"></c:remove>
catch 捕获Jsp中的异常信息
- <c:catch var="errorinfo">
-
- </c:catch>
流程控制标签
if:实现条件的控制
- <c:if test="${param.username=='tiger' && param.pwd=='123'}" var="boo"> var:表示test的结果
- <c: out value="true"></c: out>
- </c:if>
-<c: out value="${boo }"></c: out>
<c:choose>
<c:when test="${grade>=90 }">
<c:out value="优秀"></c:out>
</c:when>
<c:when test="${grade<90 && grade>=80 }">
<c:out value="良好"></c:out>
</c:when>
<c:when test="${grade<=80 && grade>=70}">
<c:out value="合格"></c:out>
</c:when>
<c:otherwise>
<c:out value="多读书,多看报,少喂猪来少睡觉"></c:out>
</c:otherwise>
</c:choose>
循环标签
foreach
-
begin表示从哪里开始 end表示到哪里结束 step表示每次循环的步长 varStatus:当前循环获取到的对象的状态
<table border=1> <c:forEach items="${list }" var="bean" begin="1" end="1" step="2" varStatus="res"> <tr> <td><c: out value="${bean.id}"></c: out></td> <c: out value="res.index"></c: out> <c: out value="res.count"></c: out> <c: out value="res.first"></c: out> <c: out value="res.last"></c: out> </c:forEach> </table>
import标签
- 将其他静态或者动态的内容引入到jsp页面中,import可以从其他web应用程序获取资源。<jsp:include>只能引入本工程的。
url标签
- 可以在jsp页面里面构造一个新的地址,达到url重写_
param标签
-可以进行参数的传递(在地址栏中进行传递)
redirect标签 :重定向标签
<c:redirect url="index.jsp">
<c: param name="level" value="123">
</c:redirect> 可以进行跳转