JSP第三篇【JavaBean的介绍、JSP的行为--JavaBean】(一)

简介: JavaBean就是一个普通的java类,也称之为简单java对象--POJO(Plain Ordinary Java Object),是Java程序设计中一种设计模式,是一种基于 Java 平台的软件组件思想JavaBean遵循着特定的写法,通常有以下的规则:有无参的构造函数成员属性私有化封装的属性如果需要被外所操作,必须编写public类型的setter、getter方法上面的文字看起来好像很高大上,javaBean其实非常简单,下面的代码就是按照特定写法、规则编写的一个JavaBean对象

什么是javaBean

  • JavaBean就是一个普通的java类,也称之为简单java对象--POJO(Plain Ordinary Java Object),是Java程序设计中一种设计模式,是一种基于 Java 平台的软件组件思想
  • JavaBean遵循着特定的写法,通常有以下的规则:
  • 有无参的构造函数
  • 成员属性私有化
  • 封装的属性如果需要被外所操作,必须编写public类型的setter、getter方法
  • 上面的文字看起来好像很高大上,javaBean其实非常简单,下面的代码就是按照特定写法、规则编写的一个JavaBean对象
 public class Person {
        private String username ;
        private int age;
        public Person() {
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;

为什么需要使用Javabean

  • 使用javaBean的好处就是:封装,重用,可读
  • 下面引用知乎一段回答:

JaveBean你可以理解为一辆货车,在你的java端和web页面进行数据传递的载体,你当然可以每个变量单独传递,或者使用集合传递,但是javabean可以使你的数据更有可读性,方便开发时明确变量的意义,也使其他阅读你代码的人能直接你的意图

如果把bean类与数据库联合使用,一张表使用bean类,可以使你的代码更加简洁高效,易于理解,现在大多数框架都会使用这种机制。


JSP行为--JavaBean

  • JSP技术提供了三个关于JavaBean组件的动作元素,即JSP行为(标签),它们分别为:
  • jsp:useBean【在JSP页面中查找javaBean对象或者实例化javaBean对象】
  • jsp:setProperty【设置javaBean的属性】
  • jsp:getProperty【获取javaBean的属性】

jsp:useBean

  • <jsp:useBean>标签用于在指定的域范围内查找指定名称的JavaBean对象
  • 存在则直接返回该JavaBean对象的引用
  • 不存在则实例化一个新的JavaBean对象并将它以指定的名称存储到指定的域范围中
  • 语法:

<jsp:useBean id="实例化对象的名称" class="类的全名" scope="保存范围"/>

  • 如果JSP不支持<jsp:useBean>这个行为,我们要使用Person类是这样使用的
 <%--这里需要导入Person类--%>
    <%@ page import="domain.Person" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title></title>
    </head>
    <body>
    <%
        //new出对象
        Person person = new Person();
        person.setName("zhongfucheng");
        System.out.println(person.getName());
    %>
    </body>
    </html>

效果如下47.jpg

我们使用<jsp:useBean>就显得非常简洁,不用导包,不用new出对象

  <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title></title>
    </head>
    <body>
    <jsp:useBean id="person" class="domain.Person" scope="page"/>
    <%
        person.setName("zhongfucheng");
        System.out.println(person.getName());
    %>
    </body>
    </html>

也可以实现同样的效果:48.jpg

  • 有人可能会想,凭什么写一个<jsp:useBean>这样的代码就可以创建出一个对象出来。
  • 现在我把JavaBean中无参的构造函数改成有参的,我们看看会出现什么情况,出现异常了!
 public Person(int age) {
            this.age = age;
        }

49.jpg

<jsp:useBean id="person" class="domain.Person" scope="page"/>内部原理是这样子的:50.jpg

  • 通过上面的代码我们也知道了为什么要有一个无参的构造函数!内部在new 对象的时候是没有传递参数进去的!

jsp:setProperty

  • 语法:

<jsp:setProertyname="对象名称"property="属性名"param="参数名"value="值">

  • 在语法上可分为4种模式
  • 自动匹配
  • 指定属性
  • 指定参数【很少用】
  • 指定内容【很少用】
  • 当我们没有学习到<jsp:setProperty>,我们获取表单的信息,然后导入到javaBean对象中是这样的一种情况:
  • 这是表单的页面代码
   <form action="/zhongfucheng/1.jsp" method="post">
        用户名:<input type="text" name="username">
        年龄:<input type="text " name="age">
        <input type="submit" value="提交">
    </form>

这是处理表单提交过来数据的jsp的代码

    <jsp:useBean id="person" class="domain.Person" scope="page"/>
    <%
        int age = Integer.parseInt(request.getParameter("age"));
        person.setAge(age);
        System.out.println(person.getAge());
    %>

这是可以完成的,但是相对来说,比较麻烦!51.jpg

目录
相关文章
|
9月前
|
Java
学院管理系统【JSP+Servlet+JavaBean】(Java课设)
学院管理系统【JSP+Servlet+JavaBean】(Java课设)
72 3
学院管理系统【JSP+Servlet+JavaBean】(Java课设)
|
9月前
|
Java
排课系统【JSP+Servlet+JavaBean】(Java课设)
排课系统【JSP+Servlet+JavaBean】(Java课设)
106 5
|
9月前
|
Java
仓库管理系统【JSP+Servlet+JavaBean】(Java课设)
仓库管理系统【JSP+Servlet+JavaBean】(Java课设)
210 1
|
8月前
|
Java API
JSP 教程 之 JSP JavaBean 4
**JSP JavaBean教程摘要:** JavaBean是遵循JavaBean规范的特殊Java类,用于JSP中。`jsp:getProperty`读取属性(getter),`jsp:setProperty`设置属性(setter)。
43 0
|
8月前
|
Java API
JSP 教程 之 JSP JavaBean 3
**JSP JavaBean教程简述:** JavaBean是遵循JavaBean规范的特殊Java类,用于JSP中。`&lt;jsp:useBean&gt;`标签声明并实例化Bean,如`&lt;jsp:useBean id=&quot;date&quot; class=&quot;java.util.Date&quot; scope=&quot;page&quot;/&gt;`。`scope`决定Bean的作用域,`id`是变量名。示例显示日期:`&lt;%= date %&gt;`,输出如`Tue Jun 28 15:22:24 CST 2016`。
34 0
|
8月前
|
Java API
JSP 教程 之 JSP JavaBean 2
**JSP JavaBean 简介** JavaBean 是遵循特定规范的 Java 类,用于封装数据和业务逻辑。`StudentsBean.java` 示例展示了属性(firstName, lastName, age)及对应的 getter 和 setter 方法。编译得到 `StudentBean.class`,常放于 `/WebContent/WEB-INF/classes/包路径/` 下,以供JSP使用。
43 0
|
8月前
|
Java API
JSP 教程 之 JSP JavaBean 1
**JSP JavaBean 技术概览:** JavaBean遵循特定规范的Java类,具备默认无参构造器、实现Serializable接口以支持序列化。核心特性包括可读写的属性及对应的getter/setter方法。属性可通过getXXX()和setXXX()访问,如getMyName()和setMyName()对应属性myName。只读属性只有getter,只写属性只有setter。
45 0
|
9月前
|
Java
新闻发布系统【JSP+Servlet+JavaBean】(Java课设)
新闻发布系统【JSP+Servlet+JavaBean】(Java课设)
74 2
|
9月前
|
Java
学校人员管理系统【JSP+Servlet+JavaBean】(Java课设)
学校人员管理系统【JSP+Servlet+JavaBean】(Java课设)
69 2
|
9月前
|
Java
校园帮【JSP+Servlet+JavaBean】(Java课设)
校园帮【JSP+Servlet+JavaBean】(Java课设)
54 1