开发者社区> 必须往前走> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

javaBean的相关知识和应用

简介: javaBean JavaBean 简介   JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。
+关注继续查看

javaBean

JavaBean 简介

 

JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。JSP的开发中可以使用javaBean减少重复代码,使整个JSP代码的开发更简洁.JSP搭配JavaBean来使用,有以下优点:

1.可将HTMLjava代码分离,好维护

2.将常用的程序携程javaBean组件,当在JSP要使用时,只要调用就可以,避免编写重复代码

JavaBean开发要求

1.javaBean本身就是一个类,属于java面向对象的编程

2.JSP中如果要应用jsp提供的javabean的标签来啊哦做简单类的话,则此类必须满足如下的开发要求:

01.所有的类必须放在一个包中,web中没有包的是不存在的

02.所有的类必须声明为public class,这样才能够被外部所方位

03.类中所有的属性都必须使用private封装

04.封装的属性如果需要被外部所操作,则必须编写对应的setter.getter方法

05.一个javabean中至少存在一个无参构造方法,此为jsp中的标签所使用

实例:

package cn.bdqn.javaBean;

 

public class Person {

private String name;

private int age;

public void setName(String name){

this.name=name;

}

public void setAge(int age){

this.age=age;

}

public String getName(){

return this.name;

}

public int getAge(){

return this.age;

}

}

对于javabean有几个名词:

VO: 值对象,存放所有所有的传递数据的操作上;

POJO: 简单java对象

PO: persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。

注意:当一个javabean修改后,一定要重启服务器

 

 

 

 

当然Tomcat中提供了自动的加载机制,但是这种加载机制需要通过配置server.xml进行配置

在配置的虚拟目录的,context节点中添加属性reloadable=”true”

 

这样配置后,Tomcat会自动进行检测,如果javabean修改,会自动进行重新加载

由于reloadable一致要处于监视状态,所以服务器真正用于项目运行的时候,此属性一定要设置成false,否则性能会下载.

每当进行完重新加载之后,之前所设置的全部的session范围的属性将彻底消失

JavaBean与表单

Jsp表单页面代码如下:

<form action="control.jsp" method="post">

<table>

<tr>

<td>姓名</td>

<td><input name="name" placeholder="请输入姓名">

</td>

</tr>

<tr>

<td>年龄</td>

<td><input type="password" name="age" placeholder="请输入年龄">

</td>

</tr>

<tr>

<td colspan="2"><input type='submit' value="提交"></td>

</tr>

</table>

</form>

方法一:

使用<%@ page import=”.类名称”%>进行引入,就可以使用new关键字,进行对象的创建了

实例:

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

    <%@ page import="cn.bdqn.javaBean.Person"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

 

<%request.setCharacterEncoding("UTF-8"); %>

<%

Person p=new Person();

p.setName(request.getParameter("name"));

p.setAge(Integer.parseInt(request.getParameter("age")));

%>

<%=p.getName() %>

<%=p.getAge()%>

</body>

</html>

方法二:

使用<jsp:useBean id=”实例化对象的名称” scope=”保存范围(四大作用域)” class=”.类名称”/>

Id是被实例化的对象的名称,这样使用就直接拿这个对象进行使用.

<jsp:useBean id="P2" scope="page" class="cn.bdqn.javaBean.Person"/>

<%--jsp:useBean标签中的id是被实例化的对象,

jsp:setProperty标签中的name属性的值是需要被修改属性值的实例化对象名称

property属性是需要被修改的属性的名称 值为*,表示全部匹配 --%>

<jsp:setProperty name="p2" property=* />

 

通过一个<jsp:Property>标签就可以完成所有请求参数的自动设置,而且可以自动

将输入的String型变为int型的数据,这个标签的语法如下:

 

 

<jsp:setProperty>:表示操作指定javabean中的属性,里面定义了两个属性:

-name:表示使用javabean中的id的定义;

-property:表示的是设置里面的属性内容,如果为*则表示自动匹配,与表单相匹配.

 

如果想要让表单的参数自动设置到javabean之中的化.就需要让参数的名称与属性一致 .但是这种说法并不明确,因为在这之中还包含了一个概念.

在编写简单java类的时候类的属性使用private封装,而且编写了对应的settergetter方法.

使用这种操作.实际上最终调用的是javabean中的setter方法,setter方法又有严格的命名要求.所以可以简单的理解为要想设置.则参数名称必须与属性一致,否则无法完成设置.

这种操作的原理是反射机制,但是这种操作本身存在一个问题.如果要求输入的内容是int型的,则必须输入数字否则会报错

Javabean的优点必须结合表单才能看出来

 

 

方法三:

使用反射机制

 

javaBean设置和取得属性

1设置属性:<jsp:setProperty>

<jsp:setProperty>标签一共有四种使用方法:

-01 自动匹配:<jsp:setProperty name=”实例化对象的名称(:useBaen标签中的id属性的值)”  property=”*”/>

-02 指定属性:<jsp:setProperty name=”实例化对象的名称(:useBaen标签中的id属性的值)”  property=”属性名称”/>

-03 指定参数:<jsp:setProperty name=”实例化对象的名称(:useBaen标签中的id属性的值)”  property=”属性名称” param=”参数名称”/>

-04 指定内容:<jsp:setProperty name=”实例化对象的名称(:useBaen标签中的id属性的值)”  property=”属性名称” value=”内容”/>

建议使用第一种

1取得属性:<jsp:getProperty>

javaBean的操作标签中也提供了专门取得属性的标签:

<jsp:getProperty>,此标签会自动调用JavaBean中的getter()方法,与设置属性的标签相比,取得属性的标签只有一种语法:

<jsp:getProperty name=”实例化对象的名称(useBean标签中id属性的属性值)” 

property=”属性名称”>

 

 

jsp:getProperty 标签将获取属性值并打印到页面

 

 当以后再JSP页面中再也看不到任何的<%%>的时候,基本上jsp的开发标准模式也就形成类

以后只要看见jsp标签上出现类id属性,则不管何种情况基本上都表示一个实例化对象,如果标签上看见类name属性,肯定找的是属性范围中的内容,就是id属性的属性值,如果有类property则表示的就是一个类中的属性

 

jsp:getProperty jsp:setProperty标签都是利用反射机制完成的

 

 

javaBean的保存范围

<jsp:useBean>指令上存在一个scope属性,表示的是一个javaBean的保存范围,保存范围一共有四种:page,request,session,application.:jsp四大作用域

javaBean的删除

 JavaBean虽然使用类<jsp:useBean>标准进行创建,但是其操作依靠的仍然是四种属性范围,如果一个JavaBean不再使用的话,则可以直接使用四中属性范围的removeAttribute()方法进行删除

-1删除page范围的JavaBean可以使用;

pageContext.removeAttribute(JavaBean的实例化对象名称);

-2删除request范围的javaBean可以使用:

request.removeAttribute(JavaBean的实例化对象名称);

-3删除session范围的javaBean可以使用:

session.removeAttribute(JavaBean的实例化对象名称);

-4删除application范围的javaBean可以使用:

application.removeAttribute(JavaBean的实例化对象名称);

 

 

 

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
查看mysql 默认端口号和修改端口号
1. 登录mysql mysql -u root -p //输入密码    2. 使用命令show global variables like 'port';查看端口号 mysql> show global variables like 'port';    3. 修改端口,编辑/etc/my.cnf文件,早期版本有可能是my.conf文件名,增加端口参数,并且设定端口,注意该端口未被使用,保存退出。
10005 0
【区块链之菜鸟入门】区块链发展史:从拜占庭将军问题到智慧契约
本文为是我为大家分享的区块链技术文章系列中的第一部分【区块链之菜鸟入门】的第二篇,在这篇文章中我们探一探区块链技术背后的历史,从上世纪80年代的拜占庭将军问题到今天的复杂的智慧契约,区块链是如何一步步走到今天的呢?
87484 0
JSP JavaBean作用范围
JavaBean的生命周期存在于4种范围之中,分别为page、request、session、application,它们通过标签的scope属性进行设置。这4种范围虽然存在很大的区别,但它们与JSP页面中的page、request、session、application范围相对应。
853 0
【区块链之菜鸟入门】亲,你淘的区块链到了!
本文是我为大家分享的区块链技术文章系列中的第一部分【区块链之菜鸟入门】的第一篇,这篇文章咱们先抛开技术细节,用漫画的形式撩开神秘面纱,和大家聊一聊到底区块链是个啥?
145849 0
JSP开发中的JavaBean的应用以及部署
JavaBean 说白了 就是一个java类,跟VC中的控件类似是JSP开发中组件。 JavaBean分为可视化javabean    和非可视化javabean      ,在JSP中 多用到的是 非可视化javabean   。
892 0
「开源人说」第二期重磅上线!一起走进《从开源中来,到开源中去》
你是否思考过开源的意义?是获取免费种子用户?还是技术贡献社会价值? 开源意义千人千面,最重要的是参与进来和分享出去。贯彻开源精神,龙蜥社区从Linux开源而来,CentOS替换出发,捐赠给开放原子这样的第三方中立开源基金会,到开源中去,最后落地千行百业中去产生实际价值。从开源中来,到开源中去,龙蜥社区曾走过一条怎样的开源之路?
178430 0
【玩转Modelscope】我XXX没有开挂!
本文介绍了一种使用达摩院人体2D关键点检测模型对图片进行处理,识别出图片中人体关键点的方法。此模型可应用于射击游戏中,在达摩院强大图像识别能力的加持下,结合自动截屏和移动鼠标等辅助功能,让你成为射击游戏里的“神枪手”!
24192 0
阿里云PAI DSW实例安装R Kernel
PAI-DSW是一款云端机器学习开发IDE,为您提供交互式编程环境,适用于不同水平的开发者。PAI-DSW集成了开源JupyterLab,并以插件化的形式进行深度定制化开发。您无需任何运维配置,即可进行Notebook编写、调试及运行Python代码。当然也可以通过Conda的方式安装R Kernel,使用jupyter运行R脚本。
11982 0
133
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载