zoukankan      html  css  js  c++  java
  • JavaBean基础

    JavaBean的概念

    JavaBean是一种可重复使用、且跨平台的软件组件。JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。

    JavaBean的优点

    •使得HTML与Java程序分离,这样便于维护代码。如果把所有的程序代码都写到JSP网页中,会使得代码繁杂,难以维护

    •可以降低开发JSP网页人员对Java编程能力的要求

    •JSP侧重于生成动态网页,事务处理由JavaBean来完成,这样可以充分利用JavaBean组件的可重用性特点,提高开发网站的效率

    编写一个JavaBean

    一个标准的javaBean编写规则如下

    1.JavaBean是一个公共的(public)类

    2.JavaBean有一个不带参数的构造方法

    3.JavaBean通过setXXX方法设置属性,通过getXXX方法获取属性,可以用IDE工具的Generate Getters and Setters自动生成。

    例如:myeclipse可以右击编辑区->source->Generate Getters and Setters->Select All->OK,就可以自动生成成员变量的getter and setter方法

    下面是一个JavaBean的示例:

    package com.bean;
    
    public class Person {
        private int IDcard;
        private String name;
        public int getIDcard() {
            return IDcard;
        }
        public void setIDcard(int iDcard) {
            IDcard = iDcard;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }
    

    在JSP页面导入JavaBean类

    通过<%@ page import>指令导入JavaBean类,例如:

    <%@ page import="com.bean.*" %> 

    声明JavaBean对象

    <jsp:useBean>标签用来声明JavaBean对象,例如:

    <jsp:useBean id="person1" class="com.bean.Person" scope="request" /> 
    <jsp:useBean id="person2" class="com.bean.Person" scope="session" /> 

    1.id就是Person类的实例的名字,换这个写法一看就明白

    Person person1=new Person(); 

    2.scope是作用域,取值为JSP的内置对象,详细参见JSP内置对象。作用域从小到大如下:

    >page(默认值)

    客户每次请求访问JSP页面时,都会创建一个JavaBean对象。JavaBean对象的有效范围是客户请求访问的当前JSP网页。JavaBean对象在以下两种情况下都会结束生命期:

    –客户请求访问的当前JSP网页通过<forward>标记将请求转发到另一个文件

    –客户请求访问的当前JSP页面执行完毕并向客户端发回响应。

    >request

    客户每次请求访问JSP页面时,都会创建新的JavaBean对象。JavaBean对象的有效范围为:

    –客户请求访问的当前JSP网页

    –和当前JSP网页共享同一个客户请求的网页,即当前JSP网页中<%@ include>指令以及<forward>标记包含的其他JSP文件

    –当所有共享同一个客户请求的JSP页面执行完毕并向客户端发回响应时,JavaBean对象结束生命周期。

    可以通过JavaBean的id在<JSP:getProperty>和<jsp:setProperty>直接引用JavaBean对象,例如:

    <jsp:getProperty property="IDcard" name="person1"/> 

    JavaBean对象作为属性保存在HttpRequest对象中,属性名为JavaBean的id,属性值为JavaBean对象,因此也可以通过HttpRequest.getAttribute()方法取得JavaBean对象,例如:

    Person personObj1=(Person)request.getAttribute(“person1”); 

    >session

    JavaBean对象被创建后,它存在于整个Session的生存周期内,同一个Session中的JSP文件共享这个JavaBean对象。

    可以通过JavaBean的id在<JSP:getProperty>和<jsp:setProperty>直接引用JavaBean对象,例如:

    <jsp:getProperty property="IDcard" name="person2"/>

    JavaBean对象作为属性保存在HttpSession对象中,属性名为JavaBean的id,属性值为JavaBean对象。除了可以通过JavaBean的id直接引用JavaBean对象外,也可以通过HttpSession.getAttribute()方法取得JavaBean对象,例如:

    Person personObj2=(Person)session.getAttribute(“person2”); 

    >application

    JavaBean对象被创建后,它存在于整个Web应用的生命周期内,Web应用中的所有JSP文件都能共享同一个JavaBean对象。

    JavaBean对象作为属性保存在application对象中,属性名为JavaBean的id,属性值为JavaBean对象,除了可以通过JavaBean的id直接引用JavaBean对象外,也可以通过application.getAttribute()方法取得JavaBean对象,例如:

    Person personObj3=(Person)application.getAttribute(“person3”); 

    访问JavaBean属性

    1.JSP提供了访问JavaBean属性的标签,如果要将JavaBean的某个属性输出到网页上,可以用<jsp:getProperty>标签,例如:

    <jsp:getProperty property="IDcard" name="person1"/> 

    属性:

    name就是bean的名字,由<jsp:useBean>中的id指定。

    property所指定的Bean的属性名。

    2.如果要给JavaBean的某个属性赋值,可以用<jsp:setProperty>标签:

    name:<jsp:useBean>标签中的id属性

    property:Bean实例的属性。

    value:Bean实例属性的值。

    param:表单参数

    语法:

    1)将bean的属性设置为某个字符串或者表达式。如果是字符串,这个字符串会自动转化为bean的属性的类型。如果是表达式,那么值的类型必须和bean属性的类型一致。

    <jsp:setProperty name="bean的名字" property="bean的属性" value=<%=expression%>/> 
    <jsp:setProperty name="bean的名字" property="bean的属性" value=字符串/> 
    <jsp:setProperty property="IDcard" name="person1" value="20130001"/> 

    2)通过表单的参数来设置bean的相应属性的值。

    <jsp:setProperty name="bean的名字" property="*" /> 
    <jsp:setProperty name="bean的名字" property="属性名" param=“参数名”/> 

    表单中的属性和javaBean的属性应该同名。

    注意表单中文参数乱码,可以在Jsp页面顶部加入

    <% 
    request.setCharacterEncoding("UTF-8"); 
    response.setCharacterEncoding("UTF-8"); 
    %> 
  • 相关阅读:
    arr.forEach()与for...in的用法举例
    git
    hql查询
    JAVA Hibernate工作原理及为什么要用
    mysql中key 、primary key 、unique key 与index区别
    aop
    hibernate json数据死循环
    nginx 转帖
    Maven搭建web项目
    ajaxfileupload 附加参数
  • 原文地址:https://www.cnblogs.com/klguang/p/4739517.html
Copyright © 2011-2022 走看看