JavaBean简单及使用
一、JavaBean简介
JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁。JSP搭配JavaBean来使用,有以下的优点:
1.可将HTML和Java代码分离,这主要是为了日后维护的方便。如果把所有的程序代码(HTML和Java)写到JSP页面中,会使整个程序代码又多又复杂,造成日后维护上的困难。
2.可利用JavaBean的优点。将日常用到的程序写成JavaBean组件,当在JSP要使用时,只要调用JavaBean组件来执行用户所要的功能,不用再重复写相同的程序,这样以来也可以节省开发所需的时间。
二、JavaBean开发要求
1.JavaBean本身就是一个类,属于Java的面向对象编程。
2.在JSP中如果要应用JSP提供的Javabean的标签来操作简单类的话,则此类必须满足如下的开发要求:
(1)所有的类必须放在一个包中,在WEB中没有包的是不存在的;
(2)所有的类必须声明为public class,这样才能够被外部所访问;
(3)类中所有的属性都必须封装,即:使用private声明;
(4)封装的属性如果需要被外部所操作,则必须编写对应的setter、getter方法;
(5)一个JavaBean中至少存在一个无参构造方法,此为JSP中的标签所使用。
第一个简单JavaBean
- package blog.csdn.joywy;
- public class SimpleBean{
- 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;
- }
- }
如果在一个类中只包含属性、setter、getter方法,那么这种类就成为简单JavaBean。
对于简单的JavaBean也有几个名词:
(1)VO:与简单Java对象对应,专门用于传递值的操作上
(2)POJO:简单Java对象
(3)TO:传输对象,进行远程传输时,对象所在的类必须实现java.io.Serializable接口。
三、WEB开发的标准目录结构
Web项目中各个目录的作用:
|
No. |
目录或文件名称 |
作用 |
|
1 |
WEB ROOT |
Web的根目录,一般虚拟目录直接指向此文件夹,此文件夹下必然直接包含WEB-INF |
|
2 |
WEB-INF |
Web目录中最安全的文件夹,保存各种类、第三方jar包、配置文件 |
|
3 |
Web.xml |
Web的部署描述符 |
|
4 |
classes |
保存所有的JavaBean,如果不存在,可以手工创建 |
|
5 |
lib |
保存所有的第三方jar文件 |
|
6 |
tags |
保存所有的标签文件 |
|
7 |
jsp |
存放*.jsp文件,一般根据功能再建立子文件夹 |
|
8 |
js |
存放所有需要的*.js文件 |
|
9 |
css |
样式表文件的保存路径 |
|
10 |
images |
存放所有的图片,如*.gif或*.jpg文件 |
注:
1.打包编译:编译时直接使用javac -d . SimpleBean.java命令根据package的定义打包编译。
2.Tomcat中classpath的配置:
所有的class要进行访问时都必须在classpath中进行配置,在Tomcat中依然可以使用,在Web开发中,Tomcat安装目录的lib文件夹、WEB-INF\classes和WEB-INF\lib文件夹实际上都表示了classpath,所以直接将类或jar包复制到这些文件夹中就可以直接使用了。
- <%@ page contentType="text/html" pageEncoding="GBK"%>
- <%@ page import="blog.csdn.joywy.*"%> <!-- 导入blog.csdn.joywy包 -->
- <html>
- <head><title>欢迎来到望星空</title></head>
- <body>
- <%
- SimpleBean simple = new SimpleBean(); //声明并实例化SimpleBean对象
- simple.setName("Joywy"); //设置name属性
- simple.setAge(23); //设置age属性
- %>
- <h3>姓名:<%=simple.getName()%></h3> <!-- 输出name属性的内容 -->
- <h3>年龄:<%=simple.getAge()%></h3> <!-- 输出age属性的内容 -->
- </body>
- </html>
四、使用<jsp:useBean>指令
除了使用import的语句之外,也可以使用JSP中提供的:<jsp:useBean>指令完成操作,指令的操作语法如下所示:
1.<jsp:useBean id="实例化对象名称" scope=“保存范围” class=“包.类名称“/>
2.主要属性:
(1)id:表示实例化对象的名称
(2)scope:表示此对象保存的范围,一共有四种属性范围:page、request、session、application
(3)class:对象所对应的包.类名称
样例:
- <%@ page contentType="text/html" pageEncoding="GBK"%>
- <jsp:useBean id="simple" scope="page" class="blog.csdn.joywy.SimpleBean"/>
- <html>
- <head><title>欢迎来到望星空</title></head>
- <body>
- <%
- simple.setName("Joywy");
- simple.setAge(23);
- %>
- <h3>姓名:<%=simple.getName()%></h3>
- <h3>年龄:<%=simple.getAge()%></h3>
- </body>
- </html>
在使用<jsp:useBean/>指令时,实际上会默认调用SimpleBean类中的无参构造方法进行对象实例化,当修改SimpleBean.java文件后,如果要想让其起作用,则需要重新启动服务器,我们可以通过在Tomcat中直接配置自动加载的操作,这样即使不重新启动服务器,JavaBean修改后也可以被立即加载进来。重新加载的配置如下:在Tomcat安装目录下conf/server.xml文件中进行配置
- <Context path="/joywy" docBase="D:\myweb" reloadable="true"/>
以后Tomcat会自动进行检测,如果发现JavaBean修改之后会自动进行重新加载。
注意:
1.直接在配置虚拟目录的位置上增加一个reloadable属性即可,但是这种情况只适合于开发,因为使用reloadable自动加载后,服务器将始终处于监视状态,一旦发现类修改后就要立刻重新加载,运行性能是比较低的,所以,当项目真正发布运行时一定要将reloadable的内容设置成false,以提升入屋企运行性能。
2.还要记住,当Tomcat重新加载了新的内容后,所有的操作都将初始化,所有设置过的session属性都将消失。
四、<jsp:useBean>指令内部实现原理
依靠的是反射机制完成的,在使用<jsp:useBean>指令时需要定义对象所在的“包.类“名称,而且又要求类中存在无参构造方法,这就是反射操作的前提条件,所以<jsp:useBean>的语法实际上属于反射机制的操作实现。
出处:http://blog.csdn.net/joywy/article/details/7773503
JavaBean简单及使用的更多相关文章
- gson和fastjson将json对象转换成javaBean 简单对照
今天在网上看代码时,发现项目使用了Gson,用于将json字符串转换成javaBean. 以前没使用过Gson,随即,简单入了个们, 想起fastjson也有将json字符串转换成javaBean的A ...
- HashMap存储数据赋值javabean简单示例
package com.shb.web; import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** ...
- JavaBean简单示例
本示例说明: 从Login.jsp中输入用户名和密码,提交,在NewFile.jsp中显示信息. ----- 类要放在一个包中!!! UserB 类文件 package model; public c ...
- 什么是JAVAbean
JavaBean 是一种JAVA语言写成的可重用组件.为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器.JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性 ...
- 基于JavaBean编辑器读取peroperties文件
引言 最近在重读<精通Spring+4.x++企业应用开发实战>这本书,看到了有关JavaBean编辑器的部分,了解到PropertyEditor和BeanInfo的使用.不得不说,Bea ...
- javaweb简单登陆例子
JSP+Servlet+JavaBean简单程序例子——用户名密码登陆,摘自<Tomcat&JavaWeb 技术手册>,亲测可用. IDE环境:MyEclipse10 1.建立We ...
- javaBean的理解总结
javaBean简单理解:javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来设置数据的属性和一些行为,然后我会提供获取属性和设置属性的get/set ...
- Java Web开发之详解JSP
JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面.Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用, ...
- json解析—Gson以及GsonFormat插件的运用
最近开始慢慢做毕业设计了,遇到一个功能是获取天气预报的,我选择的是和风天气的api,返回的是JSON数据,所以遇到了解析JSON的问题 首先简单说下JSON,JSON(JavaScript Objec ...
随机推荐
- 关于RF 315MHz
1.https://www.pjrc.com/teensy/td_libs_VirtualWire.html These modules worked very reliably when sitti ...
- php查询汉字的拼音首字母的函数
function getfirst($str, $charset='utf8'){ $dict=array( 'a'=>0xB0C4, 'b'=& ...
- java批量插入或更新的问题
在批量插入或者更新中,setXXX的时候字段类型必须一致.例如:在普通sql中 pstmt8.setBigDecimal(j ,xxx);可以写成pstmt8.setString(j,xxx.toSt ...
- delphi 注册表操作(读取、添加、删除、修改)完全手册
DELPHI VS PASCAL(87) 32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操 ...
- 怎样为EXCEL2010添加下拉列表
注意,下面是Excel2010的步骤和截图,其他版本的Excel类似. 首先用鼠标左键点击你要添加下拉列表的单元格. 如果你只想部分区域有下拉列表,也可以选择部分区域. 下面图片是选择的整个列都是 ...
- Maven安装testNG
1.Maven安装testNG (1)打开网站:http://testng.org/doc/maven.html (2)复制如下代码,粘贴到项目的pom.xml文件: 1 <dependency ...
- loadrunner下检查点乱码情况处理
对于很多用过LR的人来说,乱码一直是很纠结的事情,尤其是对新手来说.网上给的解决方法是在录制的时候勾选UTF-8选项,但是似乎并没有解决. 对于用户名为中文或者检查点为中文的情况,我们又该如何去处理呢 ...
- Independence独立
Independence refers to the degree to which each test case stands alone. That is, does the success or ...
- [转]Java Web乱码过滤器
本文转自http://blog.csdn.net/l271640625/article/details/6388690 大家都知道,在jsp里乱码是最让人讨厌的东西,有些乱码出来的莫名其妙,给开发带来 ...
- motan源码解读:注册中心zookeeper(1)
Apache ZooKeeper is an effort to develop and maintain an open-source server which enables highly rel ...