zoukankan      html  css  js  c++  java
  • (九)Javabean与Jsp(来自那些年的笔记)


    目录


    JavaBean

    JavaBean 是一种遵循特定写法的Java类,它通常具有以下特点:

    • 这个 java 类必须有一个 无参 构造函数
    • 属性必须 私有化
    • 私有化的属性,必须通过public类型的方法暴露给其他程序, 并且方法的命名也必须遵守一定的命名规范

    JavaBeanJ2EE开发中,通常用于封装数据 ;

    对于遵循以上写法的JavaBean组件,其他程序可以通过反射技术实例化JavaBean对象,并且通过 反射 那些遵守命名规范的方法,从而获得JavaBean的属性,进而调用其属性对应的方法保存数据;


    在JSP中使用JavaBean

    JSP技术提供了三个关于JavaBean组件的动作元素,即JSP标签,它们分别为:

    1. <jsp:useBean id=””> 标签:

      用于在JSP页面查找或实例化一个JavaBean组件;

    2. <jsp:setProperty name="" property="" >标签:

      用于在jsp页面中设置一个Javabean组件的属性;

    3. <jsp:getProperty name="" property=""> 标签:

      用于在jsp页面中获取一个Javabean组件的属性;

    下面会详细讲解三个标签的用法;


    <jsp:useBean id=""> 标签用法

    用于在 指定的域范围内 查找 指定名称javaBean对象:

    • 如果存在,则直接返回该JavaBean对象的引用;
    • 如果不存在,则实例化一个新的JavaBean对象并将它以指定的名字存储到指定的域范围中;

    常用语法:

    <jsp:useBean id="Javabean实例名" class="实例完整类名" scope="域" ></jsp:useBean>

    id 属性用于指定JavaBean实例化对象的引用名称,该名称也是 Javabean 保存在域中的名称;
    class 属性用于指定JavaBean的完整类名(即必须带完整的包名
    scope 属性用于指定 JavaBean 实例化对象所存储的域范围,默认是page,取值只能是四个域中的一个;

    原理:这个jsp标签 的底层原理是怎么执行的呢?

    首先这是一个jsp页面中的标签,所以它也会被翻译为servlet在写上这个标签以后,翻译过去的servlet中,就会多一个对象 这个对象是以完整包名定义的,名字就是id的值;

    然后pageContext对象,就会在在scope指定的域中寻找这个对象,赋值给id的值,如果没找到这个对象,就会创建一个对象,存进域中,再返回这个值;


    标签体JavaBean 标签

    标签体只在创建JavaBean实例的时候,得到执行;也就是说,如果,JavaBean的实体,之前已经存在了,则不会执行这个标签体了;


    setProperty 标签

    其中name的值是 Javabean实例的名字property 的值是 Javabean实例的属性名字

    有3种赋值方法:

    1. 直接赋值 使用 value

      <jsp:setProperty name = "JavaBean实例名" property = "JavaBean属性名" value = "要赋值的值"/>
    2. 获取 request 请求参数赋值,使用param,这里支持8中 基本数据类型 的转换;

      如果是8种数据类型之外的数据,则需要使用脚本表达式来赋值,比如 <%= new Date()%>

      <jsp:setProperty name = "JavaBean实例名"  property = "Javabean实例的属性名" param = "request对象中的参数名"
    3. 使用 *

      <jsp:setProperty name="Javabean实例的名字" property="*" />

      会将request请求中的参数,按照Javabean属性名字对应的自动的赋值给JavaBean

      其中原理是,利用反射技术,得到JavaBean的字段,进而得到get、set方法,进行赋值;

      request 请求参数中的属性名字不能写错,写错了,就跟Javabean属性对不上了;

    备注(很重要)其中在赋值的时候,使用 request 请求参数赋值的时候(也就是上述的2、3方法),如果 request 并没有参数,则不会产生赋值行为 ;


    getProperty 标签

    语法:

    <jsp:getProperty name="Javabean实例名" property="Javabean实例属性名字">

    会将取出的值,转换为字符串类型如果属性被置为null,则取出的是''null''这个字符串;这里需要注意;一般我们不返回null;


    JSP开发模式

    分两种;

    其一:
    SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+javaBean模式。


    其二:
    JSP+Javabean模式适合开发业务逻辑不太复杂的微博应用程序,这种模式下,Javabean用于封装业务数据,JSP即负责处理用户请求,又显示数据;

    Servlet+JSP+JavaBean (MVC)模式适合开发复杂的web应用,在这种模式下servlet负责处理用户请求,JSP负责数据显示,JavaBean负责封装数据。Web开发推荐这种模式,层次分明。(MVC模式)


    案列:使用 模式一 编写一个在线计算器;

    案例代码(点击下载)

    主要是3个标签的用法;

  • 相关阅读:
    OpenCV3 for python3 学习笔记1
    OpenCV3 for python3 学习笔记2
    python3 requests获取某网站折线图上数据
    python BeautifulSoup的简单使用
    Python爬虫之Cookie和Session(转载)
    python 获取前一天或前N天的日期
    python 进程池pool简单使用
    GitHub for Windows简单使用
    Windows上的git、github部署及基本使用方法
    python unknown error: DevToolsActivePort file doesn't exist 问题解决
  • 原文地址:https://www.cnblogs.com/young-youth/p/11665718.html
Copyright © 2011-2022 走看看