java web开发——第五章JSP与JavaBean


主要内容
1.编写和使用javabean
2. 获取和修改Bean的属性
3. Bean的辅助类
4. jsp与Bean结合的简单例子

5.1 编写和使用javabean

JavaBean是一种符合JavaBean规范的Java类,它具有以下特点:

  1. 公共的无参构造方法
  • getXXX()
  • setXXX()
  1. 类中定义的方法方法访问权限都是public
  2. 类中必须有一个构造方法方法访问权限是public,无参的

下面是一个简单的JavaBean示例:

public class Person {
   String name;
   int age;
    public Person() {
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

5.1.2. 保存bean的字节码

在Tomcat目录下,JavaBean的字节码通常保存在WEB-INF/classes目录下。根据包名对应的路径,可以在该目录下建立相应的子目录。

5.1.3 创建与使用bean

  1. 使用bean
    使用jsp动作标记usebean加载使用bean的格式如下:
<jsp:useBean id="beanName" class="packageName.className" scope="scopeType" />

其中,id为指定的JavaBean对象的名称,class为JavaBean类的全限定名,scope为JavaBean对象的作用域,可以取值为page(页面作用域)、request(请求作用域)、session(会话作用域)和application(应用程序作用域)。

例如,以下代码加载了一个名为user的JavaBean对象:

<jsp:useBean id="user" class="com.example.User" scope="session" />

这个JavaBean对象的类为com.example.User,作用域为会话作用域。在jsp页面中,可以通过${user}来访问这个JavaBean对象。

  1. bean的加载原理

当使用jsp:useBean标记加载JavaBean对象时,JSP容器会检查是否已经存在指定名称和作用域的JavaBean对象。如果存在,则直接返回该对象;如果不存在,则创建一个新的JavaBean对象,并将其存储到指定作用域中。

具体的加载过程如下:

  • 检查指定名称和作用域的JavaBean对象是否已经存在。
  • 如果存在,则返回该JavaBean对象。
  • 如果不存在,则创建一个新的JavaBean对象。
  • 根据指定作用域,将新创建的JavaBean对象存储到相应作用域中。
  • 返回新创建的JavaBean对象。
  1. bean的有效范围和生命周期

JavaBean对象的有效范围和生命周期取决于所指定的作用域。常见的作用域有以下三种:

  • page:JavaBean对象只在当前JSP页面中有效,一旦离开该页面就会被销毁。
  • request:JavaBean对象在同一次HTTP请求中有效,即在同一次请求中的多个JSP页面或Servlet中都可以使用该对象。一旦请求结束,该对象就会被销毁。
  • session:JavaBean对象在整个用户会话期间有效,即用户在浏览器中打开网站期间都可以使用该对象。一旦用户关闭浏览器或会话超时,该对象就会被销毁。

5.2 获取和修改bean的属性

5.2.1 getProperty动作标记

getProperty动作标记是JSP页面中用于获取JavaBean对象属性值的标记。它的语法格式为:

<jsp:getProperty name="beanName" property="propertyName"/>

其中name属性指定JavaBean对象的名称,property属性指定需要获取的属性名称。

5.2.2 setProperty动作标记

JSP页面中用于设置JavaBean对象属性值的标记。它的语法格式为:

<jsp:setProperty name="beanName" property="propertyName" value="propertyValue"/>

其中name属性指定JavaBean对象的名称,property属性指定需要设置的属性名称,value属性指定需要设置的属性值。

5.3 bean的辅助类

JavaBean是一种符合特定规范的Java类,它通常用于封装数据,提供对数据的访问和操作方法。在JSP页面中使用JavaBean对象时,可以通过辅助类来简化代码编写和管理。
辅助类通常包含用于创建和管理JavaBean对象的方法,例如创建、获取、销毁等方法。在JSP页面中使用辅助类可以更加方便地操作JavaBean对象,同时也可以减少代码冗余和错误。

例如,假设有一个名为PersonHelper的辅助类,其中包含创建和获取Person对象的方法:

public class PersonHelper {
    public static Person createPerson() {
        return new Person();
    }
    
    public static Person getPerson(HttpServletRequest request) {
        HttpSession session = request.getSession();
        Person person = (Person) session.getAttribute("person");
        if(person == null) {
            person = createPerson();
            session.setAttribute("person", person);
        }
        return person;
    }
}

在JSP页面中可以使用以下代码来创建和获取Person对象:

<jsp:useBean id="person" class="com.example.Person" scope="session" />
<%
    Person person = PersonHelper.getPerson(request);
    person.setName("John");
%>

在上面的代码中,首先使用<jsp:useBean>标记创建名为person的JavaBean对象,并将其作用域设置为session。然后使用PersonHelper辅助类的getPerson方法获取Person对象,并设置其名称为John。

5.4 JSP与bean结合的简单例子

下面简单以一个例子来实现JSP和bean的结合
例:使用request bean(Triangle类负责创建)完成三角形的有关数据的处理。

例子中的jsp页面提供一个form表,单用户可以通过form表单将三角形的三边的长度提交给该页面用户,提交form表单后,jsp页面将计算三角形面积的任务交给一个request
bean去完成。

JavaBean
Triangle.java(负责创建request bean)

package red.star;
public class Triangle {
   double sideA=-1,sideB=-1,sideC=-1;
   String area;
   boolean isTriangle;
   public void setSideA(double a) {
      sideA=a;
   }
   public double getSideA() {
      return sideA;
   }
   public void setSideB(double b) {
      sideB=b;
   }
   public double getSideB() {
      return sideB;
   }
   public void setSideC(double c) {
      sideC=c;
   }
   public double getSideC() {
      return sideC;
   }
   public String getArea() {
      double p=(sideA+sideB+sideC)/2.0;
      if(isTriangle){
         double result= Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));
         area = String.format("%.2f",result);//保留2位小数。
      }
      return area;
   }
   public boolean getIsTriangle(){
      if(sideA<sideB+sideC&&sideB<sideA+sideC&&sideC<sideA+sideB)
         isTriangle=true;
      else   
         isTriangle=false;
      return isTriangle;
   }
}

JSP页面
example5_6.jsp

<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<style>
   #textStyle{
      font-family:宋体;font-size:36;color:blue 
   }
</style>
<% request.setCharacterEncoding("utf-8");
%>
<jsp:useBean id="triangle" class="red.star.Triangle" scope="request"/>
<HTML><body id = textStyle bgcolor=#ffccff>
<form action="" method="post" >
输入三角形三边:
边A:<input type=text name="sideA" id = textStyle value=0 size=5/>
边B:<input type=text name="sideB" id = textStyle value=0 size=5/>
边C:<input type=text name="sideC" id = textStyle value=0 size=5/>
<br><input type=submit id = textStyle value="提交"/>
</form>
<jsp:setProperty name="triangle" property="*"/>
三角形的三边是:
<jsp:getProperty name="triangle" property="sideA"/>,
<jsp:getProperty name="triangle" property="sideB"/>,
<jsp:getProperty name="triangle" property="sideC"/>.
<br><b>这三个边能构成一个三角形吗?<jsp:getProperty name="triangle" property="isTriangle"/>
<br>面积是:<jsp:getProperty name="triangle" property="area"/></b>
</body></HTML>

运行结果:
在这里插入图片描述

总结

JSP与JavaBean的结合可以方便地实现数据的封装和操作,提高代码的可维护性和可读性。JSP与JavaBean的结合是Web开发中常用的技术,掌握它们可以让我们更加高效地开发Web应用程序。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【内容简介】<br>  本书深刻且通俗地揭示Java Web开发内幕,使您由内而外地明白使用Java进行Web应用开发的全过程——从XML基础知识到HTTP详述及相关体验,从用Tomcat配置Web站点到HttpServletResponse和HttpServletRequest的应用,以及JSPJavaBeanJava Web开发相关方面都讲解得深入浅出、通俗易懂。<br>  本书适合所有Web应用的开发人员、Java程序员在工作和学习中参考阅读,也适合作为相关专业本科生、研究生的学习参考资料,也可作为相关培训机构的培训教材。<br>【作者简介】<br>  张孝祥中国著名IT培训教育专家,具有多年软件开发和教学经验,直接面授培训过数以万计的软件开发人员,深受学员们的好评和喜爱,现任北京传智播客教育科技有限公司(www.itcastn.cn)的教学总监。<br>【下载说明】<br>  《深入体验Java Web开发内幕——核心基础》一书在网上评价极高,非常适合广大Java Web开发人员。本资料是该书PDF格式的高清晰电子版,可用Adobe Reader7.0或兼容阅读工具打开,推荐Java爱好者下载!<br>【图书目录】<br>第1章 XML基础<br> 1.1 XML技术概述<br> 1.2 XML的基本语法<br> 1.3 XML的约束模式<br> 1.4 DTD<br> 1.5 DTD的语法细节<br> 1.6 XML Schema<br> 1.7 名称空间<br> 1.8 引入XML Schema文档<br> 1.9 思考与实践<br>第2章 用Tomcat构建Web站点<br> 2.1 Web应用的相关知识<br> 2.2 安装Tomcat<br> 2.3 Tomcat的启动与停止<br> 2.4 配置Web站点的虚拟目录<br> 2.5 配置虚拟主机<br> 2.6 与专用Web服务器的集成<br> 2.7 思考与实践<br>第3章 HTTP协议详解<br> 3.1 了解HTTP<br> 3.2 请求行与状态行<br> 3.3 通用信息头<br> 3.4 请求头<br> 3.5 响应头<br> 3.6 实体头<br> 3.7 扩展头<br> 3.8 思考与实践<br>第4章 Servlet开发基础<br> 4.1 Servlet的有关概念与前置知识<br> 4.2 Servlet开发入门<br> 4.3 Servlet的特点及运行过程<br> 4.4 ServletConfig接口<br> 4.5 GenericServlet与HttpServlet类<br> 4.6 ServletContext接口<br> 4.7 思考与实践<br>第5章 HttpServletResponse的应用<br> 5.1 准备实验环境<br> 5.2 HttpServletResponse简介<br> 5.3 产生响应状态行<br> 5.4 构建响应消息头<br> 5.5 响应消息头的实用案例<br> 5.6 创建响应正文<br> 5.7 请求重定向与请求转发<br> 5.8 思考与实践<br>第6章 HttpServletRequest的应用<br> 6.1 HttpServletRequest简介<br> 6.2 获取请求行的相关信息<br> 6.3 获取网络连接信息<br> 6.4 获取请求头信息<br> 6.5 浏览器传递参数信息的细节<br> 6.6 获取请求参数<br> 6.7 获取请求消息的实体内容<br> 6.8 利用请求域属性传递信息<br> 6.9 请求参数的中文读取问题<br> 6.10 思考与实践<br>第7章 会话与状态管理<br> 7.1 Web应用中的会话与会话状态<br> 7.2 Cookie<br> 7.3 在Servlet程序中使用Cookie<br> 7.4 Session<br> 7.5 Session的典型案例<br> 7.6 Session的持久化管理<br> 7.7 思考与实践<br>第8章 JSP<br> 8.1 JSP入门<br> 8.2 JSP基本语法<br> 8.3 JSP指令<br> 8.4 out对象<br> 8.5 pageContext对象<br> 8.6 JSP标签<br> 8.7 JSP的中文乱码问题<br> 8.8 思考与实践<br>第9章 JavaBeanJSP中的应用<br> 9.1 JavaBean简介<br> 9.2 JavaBean的属性<br> 9.3 JavaBeanJSP中的应用<br> 9.4 JSP开发模式<br> 9.5 思考与实践<br>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值