JSP使用JavaBean

本文介绍了JSP中使用JavaBean的方法,包括<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>标签,并探讨了开发模式和借鉴MVC架构的优势。接着讲解了如何编写无脚本的JSP页面,利用EL表达式简化页面逻辑。最后,详细阐述了标准标记库JSTL的运用,如out、set、remove、catch等标签,以及流程控制和循环标签的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<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
  1. jsp:负责控制逻辑,业务对象的调用,显示数据。
  2. javabean:用于封装数据,处理业务。
  3. 优点:效率高,不需要很复杂的架构模式,开发起来简单。适合开发小程序。
  4. 缺点:项目不好维护

借鉴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
导入标签库
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> 可以进行跳转
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值