精华内容
下载资源
问答
  • 2013-05-16 20:02:00
    JavaBean,只是在MVC模式中部同层次的叫法不一样。
    1...vo类。 Vo (Value Object)值对象。用于存放数据的操作。
    2...pojo类。 POJO(Plain Old Java Objects)是简单java对象,他并不继承任何类(继承Object),实现任何接口,只有属性跟get set方法。
              简单无规则的java对象。
    3...PO(Persisent Object)持久化对象 。po一般要实现序列化接口,有时也继承一些类。存到数据库里。。数据库里的数据


    po是在持久层所使用的 用来封装原始数据 而VO则主要在视图层活动 两个JAVABEAN的使用范围不同 假如你从数据库取出来的原始数据 你可以通过业务层将数据进行封装 再通过VO发到页面上去
    ---------------------------------------------------------------------------------------------
    POJO = pure old java object or plain ordinary java object or what ever.

    PO = persisent object 持久对象

    就是说在一些Object/Relation Mapping工具中,能够做到维护数据库表记录的persisent object完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。全都是这样子的:

    public class User {
      private long id;
      private String name;
      public void setId(long id) {
    this.id = id;

    public void setName(String name) {
    this.name=name;
    }
    public long getId() {
    return id;

    public String getName() {
    return name;
    }


    --------------------------------------------------------------------------------

    首先要区别持久对象和POJO。

    持久对象实际上必须对应数据库中的entity,所以和POJO有所区别。比如说POJO是由new创建,由GC回收。但是持久对象是insert数据库创建,由数据库delete删除的。基本上持久对象生命周期和数据库密切相关。另外持久对象往往只能存在一个数据库Connection之中,Connnection关闭以后,持久对象就不存在了,而POJO只要不被GC回收,总是存在的。

    由于存在诸多差别,因此持久对象PO(Persistent Object)在代码上肯定和POJO不同,起码PO相对于POJO会增加一些用来管理数据库entity状态的属性和方法。而ORM追求的目标就是要PO在使用上尽量和POJO一致,对于程序员来说,他们可以把PO当做POJO来用,而感觉不到PO的存在。

    JDO的实现方法是这样的:

    1、编写POJO

    2、编译POJO

    3、使用JDO的一个专门工具,叫做Enhancer,一般是一个命令行程序,手工运行,或者在ant脚本里面运行,对POJO的class文件处理一下,把POJO替换成同名的PO。

    4、在运行期运行的实际上是PO,而不是POJO。

    该方法有点类似于JSP,JSP也是在编译期被转换成Servlet来运行的,在运行期实际上运行的是Servlet,而不是JSP。

    Hibernate的实现方法比较先进:

    1、编写POJO

    2、编译POJO

    3、直接运行,在运行期,由Hibernate的CGLIB动态把POJO转换为PO。

    由此可以看出Hibernate是在运行期把POJO的字节码转换为PO的,而JDO是在编译期转换的。一般认为JDO的方式效率会稍高,毕竟是编译期转换嘛。但是Hibernate的作者Gavin King说CGLIB的效率非常之高,运行期的PO的字节码生成速度非常之快,效率损失几乎可以忽略不计。

    实际上运行期生成PO的好处非常大,这样对于程序员来说,是无法接触到PO的,PO对他们来说完全透明。可以更加自由的以POJO的概念操纵PO。另外由于是运行期生成PO,所以可以支持增量编译,增量调试。而JDO则无法做到这一点。实际上已经有很多人在抱怨JDO的编译期Enhancer问题了,而据说JBossDO将采用运行期生成PO字节码,而不采用编译期生成PO字节码。

    另外一个相关的问题是,不同的JDO产品的Enhancer生成的PO字节码可能会有所不同,可能会影响在JDO产品之间的可移植性,这一点有点类似EJB的可移植性难题。

    转载于:https://www.cnblogs.com/keia/archive/2013/05/16/3082486.html

    更多相关内容
  • javabean分类和作用

    2021-10-22 10:26:09
    线程是否要锁住同步资源 锁住?悲观锁 不锁住?乐观锁 锁住同步资源失败 线程是否要阻塞 阻塞 不阻塞自旋锁,适应性自旋锁 多个线程竞争同步资源的流程细节有没有区别 不锁住资源,多个线程只有一个能修改资源成功,...

    线程是否要锁住同步资源
    锁住?悲观锁
    不锁住?乐观锁
    锁住同步资源失败 线程是否要阻塞
    阻塞
    不阻塞自旋锁,适应性自旋锁
    多个线程竞争同步资源的流程细节有没有区别
    不锁住资源,多个线程只有一个能修改资源成功,其它线程会重试无锁
    同一个线程执行同步资源时自动获取资源偏向锁
    多个线程竞争同步资源时,没有获取资源的线程自旋等待锁释放?轻量级锁
    多个线程竞争同步资源时,没有获取资源的线程阻塞等待唤醒?重量级锁
    4.多个线程竞争锁时是否要排队
    排队公平锁
    先尝试插队,插队失败在排队非公平锁
    一个线程的多个流程能不能获取同一把锁
    能?可重入锁
    不能非可重入锁
    多个线程能不能共享一把锁
    能?共享
    不能排他锁
    悲观锁与乐观锁
    悲观锁与乐观锁时一种广义的概念,体现的是看待线程同步的不同角度。

    悲观锁
    悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,在获取数据的时候会先加锁,确保数据不会被别的线程修改。 锁实现:synchronized?接口Lock的实现类 适用场景:写操作多,先加锁可以保证写操作时数据正确。java培训

    乐观锁
    乐观锁认为自己在使用数据时不会有别的线程修改数据,所以不会添加锁,只是在更新数据的时候去判断之前有没有别的线程更新了这个数据。 锁实现:CAS算法,例如AtomicInteger类的原子自增时通过CAS自旋实现。 适用场景:读操作较多,不加锁的特点能够使其读操作的性能大幅度提升。 乐观锁的执行流程: 线程A获取到数据以后直接操作,操作完数据以后准备更新同步资源,更新之前会先判断内存中同步资源是否被更新: 1.如果没有被更新,更新内存中同步资源的值。 2.如果同步资源被其他线程更新,根据实现方法执行不同的操做(报错or重试)。

    CAS算法
    全名:Compare And Swap(比较并交换) 无锁算法:基于硬件原语实现,在不使用锁(没有线程被阻塞)的情况下实现多线程之间的变量同步。 jdk中的实现:java.util.concurrent包中的原子类就是通过CAS来实现了乐观锁。 算法涉及到的三个操作数:

    需要读写的内存值V
    进行比较的值A
    要写入的新值的B


    CAS存在的问题
    1.ABA问题 线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题。 举例:一个小偷,把别人家的钱偷了之后又还了回来,还是原来的钱吗,你老婆出轨之后又回来,还是原来的老婆吗?ABA问题也一样,如果不好好解决就会带来大量的问题。最常见的就是资金问题,也就是别人如果挪用了你的钱,在你发现之前又还了回来。但是别人却已经触犯了法律。 但是jdk已经解决了这个问题。 想追下源码来着,但是一追发现直接到c了。

     

    2.循环时间长开销大

    3.只能保证一个共享变量的原子操作

    展开全文
  • JavaBean的介绍及属性分类

    千次阅读 2021-02-26 14:37:38
    1.什么是JavaBeanJavaBean是可复用的平台独立的软件组件,开发者可以在软件构造器工具中对其直接进行可视化操作;软件组件就是指可以进行独立分离、易于重复使用的软件部分。JavaBean就是一种基于Java平台的软件...

    1.什么是JavaBean?

    JavaBean是可复用的平台独立的软件组件,开发者可以在软件构造器工具中对其直接进行可视化操作;

    软件组件就是指可以进行独立分离、易于重复使用的软件部分。

    JavaBean就是一种基于Java平台的软件组件思想;

    JavaBean也是一种独立于平台和结构的应用程序编程接口(API)。JavaBean保留了其他软件组件的技术精华,并添加了被其他软件组件技术忽略的技术特性,使得它成为完整的软件组件解决方案的基础,并可移植的Java平台上方便的用于网络世界中。

    通俗地讲,bean,保存数据的实体类,通常与数据库中的表对应,也称为,pojo、entity、domain。比如Person,Apple等,只有private属性和public setxxxx和getxxx;具体实例就是对应表中的一行,那些Hibernate,ibatis等orm框架,都支持它们和表的互相映射。

    2.如何使用JavaBean?

    使用javabean必须满足下面两种条件:

    提供无惨构造器;

    提供getter和setter方法访问它的属性;

    此外,可能还需要实现序列化,待考证。

    3.JavaBean的分类:

    JavaBean可分为两种:

    一种是有用户界面(UI,User Interface)的JavaBean;

    一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。

    JSP通常访问的是后一种JavaBean。

    4.JavaBean属性的分类及使用:

    1) 简单属性(simple property):

    定义:

    简单属性是非数组类型的属性,它的修改器必须接受一个参数,参数类型由属性的特性决定,可以是任意类型;

    而简单属性的访问器仅仅是用于返回属性的值,它不接受任何参数,但它要返回一个值,返回值的类型必须与修改器所接收的参数类型一致。

    public class Student {

    private String name;

    private String age;

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public String getAge() {

    return age;

    }

    public void setAge(String age) {

    this.age = age;

    }

    }

    2) 索引属性(indexed property):

    定义:

    索引属性是数组类型的属性,JavaBean中需要对索引索性提供两对setter和getter方法;

    一对用于设置和获取数组本身,另一对用于设置和获取数组中的元素。

    public class Student {

    private String[] hobbies;

    //设置或获取属性本身

    public String[] getHobbies() {

    return hobbies;

    }

    public void setHobbies(String[] hobbies) {

    this.hobbies = hobbies;

    }

    //设置或获取属性中的元素

    public String getHobbies(int i) {

    return hobbies[i];

    }

    public void setHobbies(int i,String hobby) {

    this.hobbies[i] = hobby;

    }

    }

    3) 绑定属性(bound property):

    定义:

    Bound属性是指当该种属性的值发生变化时,要通知其它的对象。每次属性值改变时,这种属性就点火一个PropertyChange事件(在Java程序中,事件也是一个对象)。事件中封装了属性名、属性的原值、属性变化后的新值。

    Bound属性是观察者模式在JDK中应用,PropertyChangeSupport类中得以实现。

    使用步骤:

    第一步:要使用这个类,bean必须有此类的数据域;

    private PropertyChangeSupport listeners = new PropertyChangeSupport(this);

    第二步:注册监听器,bean要实现下面两个方法:

    void addPropertyChangeListener(PropertyChangeListener listener);

    void removePropertyChangerListener(PropertyChangerListener listener);

    第三步:将变化的bean属性事件传递给监听器:

    isteners.firePropertyChange(String propertyName, Object oldString, Object newString);

    注意:该方法有三个参数:属性的名字、旧的值以及新的值。属性的值必须是对象,如果是简单数据类型,则必须进行包装。

    下面用SWT举个实际例子:

    PropertyChangeSupport的方法可以写在Bean类中,但是在实际项目中,Bean类太多,我们一般把PropertyChangeSupport写在单独的类中,然后让所有的Bean类继承它即可。

    第一步:

    PropertyChangeSupport类:

    public class Model {

    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);

    public void addPropertyChangeListener(PropertyChangeListener listener) {

    changeSupport.addPropertyChangeListener(listener);

    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {

    changeSupport.removePropertyChangeListener(listener);

    }

    protected void firePropertyChange(String propertyName, Object oldValue,Object newValue) {

    changeSupport.firePropertyChange(propertyName, oldValue, newValue);

    }

    }

    第二步:

    JavaBean类:

    public class Student extends Model{

    private String name;

    private String age;

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.firePropertyChange("name", this.name, this.name = name);

    }

    public String getAge() {

    return age;

    }

    public void setAge(String age) {

    this.firePropertyChange("age", this.age, this.age = age);

    }

    }

    第三步:用SWT/Jface画的界面,需要绑定属性字段:

    import org.eclipse.jface.action.MenuManager;

    import org.eclipse.jface.action.StatusLineManager;

    import org.eclipse.jface.action.ToolBarManager;

    import org.eclipse.jface.window.ApplicationWindow;

    import org.eclipse.swt.SWT;

    import org.eclipse.swt.graphics.Point;

    import org.eclipse.swt.widgets.Composite;

    import org.eclipse.swt.widgets.Control;

    import org.eclipse.swt.widgets.Display;

    import org.eclipse.swt.widgets.Shell;

    import org.eclipse.swt.layout.GridLayout;

    import org.eclipse.swt.widgets.Label;

    import org.eclipse.swt.widgets.Text;

    import org.eclipse.swt.layout.GridData;

    import org.eclipse.swt.widgets.Button;

    import org.eclipse.core.databinding.DataBindingContext;

    import org.eclipse.core.databinding.observable.value.IObservableValue;

    import org.eclipse.jface.databinding.swt.WidgetProperties;

    import org.eclipse.core.databinding.beans.BeanProperties;

    import org.eclipse.core.databinding.observable.Realm;

    import org.eclipse.jface.databinding.swt.SWTObservables;

    import org.eclipse.swt.events.SelectionAdapter;

    import org.eclipse.swt.events.SelectionEvent;

    public class StudentDesign extends ApplicationWindow {

    private DataBindingContext m_bindingContext;

    private Text text;

    private Text text_1;

    Student student = new Student();

    private int flag = 0;

    /**

    * Create the application window.

    */

    public StudentDesign() {

    super(null);

    createActions();

    // addToolBar(SWT.FLAT | SWT.WRAP);

    // addMenuBar();

    // addStatusLine();

    }

    /**

    * Create contents of the application window.

    * @param parent

    */

    @Override

    protected Control createContents(Composite parent) {

    Composite container = new Composite(parent, SWT.NONE);

    container.setLayout(new GridLayout(5, false));

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    Label label = new Label(container, SWT.NONE);

    label.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));

    label.setText("\u59D3\u540D\uFF1A");

    text = new Text(container, SWT.BORDER);

    GridData gd_text = new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1);

    gd_text.widthHint = 100;

    text.setLayoutData(gd_text);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    Label label_1 = new Label(container, SWT.NONE);

    label_1.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));

    label_1.setText("\u5E74\u9F84\uFF1A");

    text_1 = new Text(container, SWT.BORDER);

    GridData gd_text_1 = new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1);

    gd_text_1.widthHint = 100;

    text_1.setLayoutData(gd_text_1);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    new Label(container, SWT.NONE);

    Button button = new Button(container, SWT.NONE);

    button.addSelectionListener(new SelectionAdapter() {

    @Override

    public void widgetSelected(SelectionEvent e) {

    flag++;

    student.setName("张三"+flag);

    student.setAge("十八岁"+flag);

    }

    });

    GridData gd_button = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);

    gd_button.widthHint = 80;

    button.setLayoutData(gd_button);

    button.setText("\u6309\u94AE");

    new Label(container, SWT.NONE);

    m_bindingContext = initDataBindings();

    return container;

    }

    /**

    * Create the actions.

    */

    private void createActions() {

    // Create the actions

    }

    /**

    * Create the menu manager.

    * @return the menu manager

    */

    @Override

    protected MenuManager createMenuManager() {

    MenuManager menuManager = new MenuManager("menu");

    return menuManager;

    }

    /**

    * Create the toolbar manager.

    * @return the toolbar manager

    */

    @Override

    protected ToolBarManager createToolBarManager(int style) {

    ToolBarManager toolBarManager = new ToolBarManager(style);

    return toolBarManager;

    }

    /**

    * Create the status line manager.

    * @return the status line manager

    */

    @Override

    protected StatusLineManager createStatusLineManager() {

    StatusLineManager statusLineManager = new StatusLineManager();

    return statusLineManager;

    }

    /**

    * Launch the application.

    * @param args

    */

    public static void main(String args[]) {

    Display display = Display.getDefault();

    Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {

    public void run() {

    try {

    StudentDesign window = new StudentDesign();

    window.setBlockOnOpen(true);

    window.open();

    Display.getCurrent().dispose();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    });

    }

    /**

    * Configure the shell.

    * @param newShell

    */

    @Override

    protected void configureShell(Shell newShell) {

    super.configureShell(newShell);

    newShell.setText("New Application");

    }

    /**

    * Return the initial size of the window.

    */

    @Override

    protected Point getInitialSize() {

    return new Point(475, 352);

    }

    protected DataBindingContext initDataBindings() {

    DataBindingContext bindingContext = new DataBindingContext();

    //

    IObservableValue observeTextTextObserveWidget = WidgetProperties.text(SWT.Modify).observe(text);

    IObservableValue nameStudentObserveValue = BeanProperties.value("name").observe(student);

    bindingContext.bindValue(observeTextTextObserveWidget, nameStudentObserveValue, null, null);

    //

    IObservableValue observeTextText_1ObserveWidget = WidgetProperties.text(SWT.Modify).observe(text_1);

    IObservableValue ageStudentObserveValue = BeanProperties.value("age").observe(student);

    bindingContext.bindValue(observeTextText_1ObserveWidget, ageStudentObserveValue, null, null);

    //

    return bindingContext;

    }

    }

    此时,我们无论是修改界面,还是修改bean,都能动态的获取值和变化值。

    4)约束属性(constrained property):

    定义:

    约束属性是指当该种属性的值发生变化时,要通知其它的对象,但是该对象可否决属性值的变更。

    约束属性用到的类是VetoableChangeSupport,用法和绑定属性类似,在此我就不详细介绍了…

    展开全文
  • JavaBean技术

    2020-06-04 22:31:33
    2.JavaBean种类 在传统应用中,JavaBean主要用于实现一些可视化界面,如一个窗体、按钮和文本框等,这样的JavaBean被称为可视化的JavaBean。 随着技术的发展与项目的需求,现在的JavaBean主要用于实现一些业务逻辑或...

    1.JavaBean技术简介

    1.JavaBean概述

    在这里插入图片描述
    JavaBean的应用简化了JSP页面,在JSP页面中只包含了HTML代码、CSS代码等,但JSP页面可以引用JavaBean组件来完成某一业务逻辑,如字符串处理、数据库操作等。

    2.JavaBean种类

    在传统应用中,JavaBean主要用于实现一些可视化界面,如一个窗体、按钮和文本框等,这样的JavaBean被称为可视化的JavaBean。
    随着技术的发展与项目的需求,现在的JavaBean主要用于实现一些业务逻辑或封装一些业务对象,由于这样的JavaBean没有可视化界面,所以又被称为非可视化的JavaBean。
    非可视化JavaBean又分为值JavaBean和工具JavaBean。
    值JavaBean严格遵守JavaBean的命名规则,通常用来封装表单数据,作为信息的容器。
    例:创建一个用来封装用户登录时表单中的用户和密码的值JavaBean。

    public class UserBean{
    	private String name;
    	private String password;
    	public String getName(){
    		return name;
    	}
    	public void setName(String name){
    		this.name=name;
    	}
    	public String getPassword(){
    		return password;
    	}
    	public void setPassword(String password){
    		this.password=password;
    	}
    }
    

    工具JavaBean则可以不遵循JavaBean规范,通风常用于封装业务逻辑、数据操作等,例如连接数据库,对数据库进行增删改查和解决中文乱码操作。
    例:工具JavaBean的展示

    public class MyTools{
    	public String change(String source){
    		source=source.replace("<","&lt;");
    		source=source.replace(">","&gt;");
    		return source;
    	}
    }
    

    2.JavaBean的应用

    1.获取JavaBean属性

    在JavaBean对象中,为了防止外部直接对JavaBean属性进行调用,通常将JavaBean属性设置为私有的(private),但需要为其提供公共的(public)调用方法,也就是所说的getter方法。

    • 说明:使用<jsp:useBean>动作标识可以实例化JavaBean对象,使用<jsp:getProperty>动作标识可以获取JavaBean中的属性信息。

    2.对JavaBean属性赋值

    编写JavaBean对象要遵循JavaBean规范,JavaBean规范中的访问器setter方法用于对JavaBean中的属性赋值,如果对JavaBean对象的属性提供了setter方法,在JSP页面中就可能通过<jsp:setProperty>对其进行赋值。

    3.如何在JSP页面中应用JavaBean

    在JSP页面中应用JavaBean主要通过JSP动作标识<jsp:useBean>、<jsp:getProperty>、<jsp:setProperty>来实现对JavaBean对象的操作,但所编写的JavaBean对象要遵循JavaBean规范。只有严格遵循JavaBean规范,在JSP页面中才能够方便的调用及操作JavaBean。
    将JavaBean对象应用到JSP页面中,JavaBean的生命周期就可以自行进行设置,它存在于page、request、session和application共4种范围之内。默认情况下,JavaBean作用于page范围内。

    例:在办公自动化系统中实现录入员工信息功能,主要通过在JSP页面中应用JavaBean进行实现。
    (1)编写名称为Person的类,将其放置于com.wgh包中,实现对用户信息的封装,其关键代码如下:

    package com.wgh;
    
    public class Person{
    	private String name;//姓名
    	private int age;//年龄
    	private String sex;//性别
    	private String address;//住址
    	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;
    	}
    	public String getSex(){
    		return sex;
    	}
    	public void setSex(String sex){
    		this.sex=sex;
    	}
    	public String getAddress(){
    		return address;
    	}
    	public void setAddress(String address){
    		this.address=address;
    	}
    }
    

    在Person类中包含4个属性,分别代表姓名、年龄、性别与住址,此类在实例中充当员工信息对象的JavaBean。
    (2)编写程序的主页面index.jsp,在此页面中放置录入员工信息所需要的表单,其具体代码如下:

    <%@ page language="java" contentType="text/html;charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>录入员工信息页面</title>
    <style type="text/css">
    ul{
    	list-style: none;/*设置不显示项目符号*/
    	margin:0px;/*设置外边框*/
    	padding:5px;/*设置内边距*/
    }
    li{
    	padding:5px;/*设置内边距*/
    }
    </style>
    </head>
    <body>
    	<form action="register.jsp" method="post">
    		<ul>
    			<li>姓 名:<input type="text" name="name"></li>
    			<li>年 龄:<input type="text" name="age"></li>
    			<li>性 别:<input type="text" name="sex"></li>
    			<li>住 址:<input type="text" name="address"></li>
    			<li><input type="submit" value="添 加"></li>
    		</ul>
    	</form>
    </body>
    </html>
    

    (3)编写名称为register.jsp的JSP页面,用于对index.jsp页面中表单的提交请求进行处理,此页面将获取表单提交的所有信息,然后将所有所获取的员工信息输出到页面之中,其关键代码如下:

    <%@ page language="java" contentType="text/html;charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <% request.setCharacterEncoding("UTF-8");%>
    <jsp:useBean id="person" class="com.wgh.Person" scope="page">
    	<jsp:setProperty name="person" property="*"/>
    </jsp:useBean>
    <html>
    <head>
    <meta charset="utf-8">
    <title>录入员工信息页面</title>
    <style type="text/css">
    ul{
    	list-style: none;/*设置不显示项目符号*/
    	margin:0px;/*设置外边框*/
    	padding:5px;/*设置内边距*/
    }
    li{
    	padding:5px;/*设置内边距*/
    }
    </style>
    </head>
    <body>
    		<ul>
    			<li>姓 名:<jsp:getProperty property="name" name="person" /></li>
    			<li>年 龄:<jsp:getProperty property="age" name="person" /></li>
    			<li>性 别:<jsp:getProperty property="sex" name="person" /></li>
    			<li>住 址:<jsp:getProperty property="address" name="person" /></li>
    		</ul>
    	</form>
    </body>
    </html>
    

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • javaBean

    千次阅读 多人点赞 2019-03-28 18:03:17
    起初,JavaBean的目的是为了将可以重复使用的代码进行打包,在传统的应用中,JavaBean主要用于实现一些可视化界面,如一个窗体、按钮、文本框等,这样的JavaBean称之可视化的JavaBean。随着技术的不断发展与项目的...
  • Web Service就是我们自己项目中的前端界面。(举个例子:VO就是表单提交的封装对象) API Service就是其他项目的接口(举个例子:DTO就是... PS: 在项目中不一定需要严格区分这些JavaBean的,按实际所需区分即可。
  • JavaBean封装

    2022-04-11 01:19:16
    一、Javabean是什么? javaBean封装就是把java代码和jsp代码分离 理解: 使用 javabean 和不用 javabean 的区别: 一个 javabean就是为 jsp 页面上的元素一一开辟一个空间,然后根据需要赋值、读值。 而如果...
  • JSP和JavaBean

    2021-01-01 19:26:51
    Javabean分类(1). 封装业务逻辑的Javabean(LoginDao.java封装了登录逻辑)(2). 封装数据的Javabean(实体类)三. 解决部分错误的方法1. 出现的问题2. 解决的办法(1). a. 可能是JDK、tomcat版本问题(2). b. 清空...
  • 什么javabean

    千次阅读 2019-06-14 08:40:01
    1.什么是javabean 简单笼统的说就是一个类,一个可复用的类。 javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来设置数据的属性和一些行为,然后我会提供获取属性和设置...
  • JavaBean

    2019-10-11 17:31:00
    JavaBean 并不是什么神奇的东西。它只是一种命名规则,在该种类中能够通过getter和setter来定义属性。 class JbStudent{ private String name; public void setName( String name ){ this.name = name; } ...
  • JavaBean 理解

    2022-05-19 18:52:36
    一、什么是JavaBean? 1、定义: JavaBean是Java开发语言中一个可以重复使用的软件组件,它本质上就是一个Java类,通 过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称 Bean。 2、出现的介绍: 在...
  • JavaBean详解

    2019-08-01 20:56:11
    JavaBean是一种可重用的Java组件,它可以被Applet、Servlet、SP等Java应用程序调用.也可以可视化地被Java开发工具使用。它包含属性(Properties)、方法(Methods)、事件(Events)等特性。 ***JavaBean是一种软件组件...
  • JavaBean与表单处理

    千次阅读 2020-08-28 22:22:44
    定义:JSP负责表示显示和控制逻辑,JavaBean负责业务逻辑。JSP程序开发经典设计模式之一,适合中小型网站开发。 优点: 纯净的JSP页面 可重用的组件 方便进行调试 易维护易扩展 缺点:表现逻辑和
  • JavaBean简单及使用

    2021-03-04 01:23:16
    一、JavaBean简介JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁。JSP搭配JavaBean来使用,有以下的优点:1.可将HTML和Java代码分离,这...
  • 什么是JavaBean、bean?

    2021-11-29 14:58:57
    什么是JavaBean、bean? 什么是POJO、PO、DTO、VO、BO ? 什么是EJB、EntityBean? 前言: 在Java开发中经常遇到这些概念问题,有的可能理解混淆,有的可能理解不到位,特此花了很多时间理顺了这些概念。不过有些概念...
  • javabean

    2017-09-04 18:50:49
    一、JavaBean简介 JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁。JSP搭配JavaBean来使用,有以下的优点: 1.可将HTML和Java代码...
  • javabean规范

    2012-11-22 11:48:25
    导读:JavaBean 不是语法规范,是习惯性编程规范,用这个规范写的类使用方便。有时候JavaBean的类也称为:POJO Plan Old Java Object java开发必备知识,长总结才会更熟悉!
  • JavaBean 简述与代码示例

    千次阅读 2020-04-23 21:05:05
    本文介绍了 JavaBean 简述与代码示例的相关内容。。。
  • javabean的规范是什么

    2021-06-19 09:06:14
    事情是这样的 前段时间面试了阿里,大家也都清楚,如果你在简历上面写着你精通XX技术,那面试官就会跟你死磕到底。 我就是在自己的简历上写了精通MySQL,然后就开启了和阿里面试官的死磕之路,结果就是拿到了一份...
  • 统名称:jsp+servlet+javabean新闻发布系统 大家好,这是我搜集整理好并且测试通过的的一个新闻发布系统,有程序,设计详细文档和ppt演示,我现在把程序共享给大家,有需要完整文档的朋友请再联系我!! 系统角色:...
  • JSP+Sevlet+javabean实现网站商品分类

    热门讨论 2013-06-30 19:56:18
    网站后台MVC管理,运用JSP+servlet+javabean实现商品的分类管理,分类展示,类别编辑,子类添加等
  • 本程序采用jsp+javabean+servlet结构开发,包含登录、商品管理两大模块;用到的技术包括:jsp、servlet、javabea、过滤器、EL表达式、JSTL标签库、jdbc技术。
  • 5.1.1 JavaBean简介

    2021-03-17 23:00:32
    5.1.1 JavaBean简介JavaBean是用于封装某种业务逻辑或对象的Java类,此类具有特定的功能,即它是一个可重用的Java软件组件模型。由于这些组件模型都具有特定的功能,将其进行合理的组织后,可以快速生成一个全新的...
  • JSP之JavaBean技术·笔记

    千次阅读 2020-12-27 00:40:50
    JavaBean概述 JavaBean组件是用java语言编写的组件,它好比一个封装好的容器,...JavaBean种类 JavaBean按功能可分为两类: (1)可视化JavaBean (2)不可视化JavaBean 不可视化JavaBean又可分为值JavaBean和工具Ja
  • JavaBean为何物?

    2022-05-14 22:07:08
    JavaBean为何物? 摘要:初学SSM框架之后,我对JavaBean这个东西开始有了简单的接触,在很久以前听见JavaBean这个词一直以为是一个非常高大上的东西,但是在仔细研究之后发现其本质并没有那么复杂,这篇笔记将主要对...
  • 介绍JavaBean 是Java的可重用组件,是一种特殊的Java类,采用Java语言编写,并且遵守JavaBean API的规范,为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的...
  • JavaBean技术与JSP 开发模型 在Java Web的实际开发中,为了使得JSP页面中的业务逻辑变得更加清晰,程序中的实体对象和业务逻辑可以单独封 装到Java类中,提高程序的可读性和易维护性,需要用到JavaBean技术、JSP...
  • JavaBean组件(一)

    千次阅读 2019-08-11 22:59:04
    JavaBean分类 JavaBean特点 JavaBean属性分类 编写JavaBean遵循的原则 javaBean组件是java类,这些类遵循特定的接口格式,以便于容器使用方法命名,底层行为来按照标准的方式来构造和访问JavaBean对象。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,778
精华内容 8,711
关键字:

javabean的种类

java 订阅