javaweb开发之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的声明使用
(1)通过导入相应的包文件,并进行类初始化来声明javaBean
<%@ page import="javaBean所在的包"%>
<%
SimpleBean simple = new SimpleBean(); //声明并实例化SimpleBean对象
simple.setName("jack"); //设置name属性
simple.setAge(23); //设置age属性
%>
(2)通过jsp的useBean命令来实现。格式如下:
<jsp:useBean id="实例化对象名称" scope=“保存范围” class=“包.类名称“/>
<jsp:useBean id="simple" scope="page" class="javaBean的包名"/>
<%
simple.setName("Joywy");
simple.setAge(23);
%>
在使用<jsp:useBean/>指令时,实际上会默认调用SimpleBean类中的无参构造方法进行对象实例化,当修改SimpleBean.java文件后,如果要想让其起作用,则需要重新启动服务器,我们可以通过在Tomcat中直接配置自动加载的操作,这样即使不重新启动服务器,JavaBean修改后也可以被立即加载进来。需要配置相关的xml文件。<jsp:useBean>的语法实际上属于反射机制的操作实现。
四、javaBean的属性获取和设置
(1)通过getter和setter方法来实现属性操作
<%
simple.setName("Joywy");
simple.setAge(23);
%>
(2)通过<jsp:getProperty name="javaBean的名称" property="javaBean的属性名称"/>和<jsp:setProperty name="javaBean的实例名称" property="javaBean的属性名称" value="属性值"/>实现属性的获取和赋值。
推荐使用第二种,通常我们应尽力避免在jsp页面中使用java代码
(3)有时我们将表单提交的数据封装为一个javaBean,在进行表单提交时可以进行javaBean的属性赋值。推荐把表单提交的参数名name和javaBean的属性名保持对应,这样我们可以用一条语句实现表单数据的全部赋值。
<jsp:setProperty name="javaBean实例名称" property="*"/>
也可以使用
<jsp:setProperty name="javaBean实例名称" property="javaBean的属性名" param="request中的请求参数名"/>来一一赋值。注意到param是利用request请求参数进行javaBean的赋值,而value是直接对javaBean进行赋值。
以上还是通过反射完成的操作。在反射机制中可以通过getMethod()方法取得一个指定名称方法的Method对象,在这里传入的是属性的名称,可以根据属性名称找到对应的setter()方法,完成属性内容的设置。
五、删除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名称);
javaweb开发之javaBean的更多相关文章
- JAVAWEB开发之Session的追踪创建和销毁、JSP具体解释(指令,标签,内置对象,动作即转发和包括)、JavaBean及内省技术以及EL表达式获取内容的使用
Session的追踪技术 已知Session是利用cookie机制的server端技术.当client第一次訪问资源时 假设调用request.getSession() 就会在server端创建一个由 ...
- JAVAWEB开发之JSTL标签库的使用、 自己定义EL函数、自己定义标签(带属性的、带标签体的)
JSTL JSTL简单介绍: JSTL的全称:JSP Standard Tag Library,JSP标准标签库 JSTL的作用: 提供给Java Web开发者一个标准通用的标签函数库 和E ...
- Javaweb开发之路
本文作者:DavidLin 欢迎转载,但请保留文章原始出处→_→ 本文地址:http://www.cnblogs.com/univeryinli/p/programming-skill-yinli.h ...
- JavaWeb开发之Servlet
1. Servlet有关概念和前置知识 1.1 什么是动态网页 如果浏览器在不同时刻或不同条件下访问web服务器上的某个页面,浏览器所获得的页面内容可以发生变化,那么这个页面就称之为动态页面. 动态网 ...
- JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(上)(各种乱码、验证码、重定向和转发)
HttpServletResponse简介 Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 request和re ...
- javaweb开发之EL表达式
一.EL简介 EL全名为Expression Language,它主要用于替换JSP页面中的脚本表达式<%= %>,从各种类型的Web域中检索Java对象.获取数据.它可以很方便地访问Ja ...
- javaweb开发之jsp
一.WEB应用的目录结构 通常我们是在IDE中创建web应用程序,IDE自动为我们实现了WEB的目录结构,下面来看如何徒手创建一个WEB程序. 首先来看一下Tomcat自带的一个web应用的目录结构 ...
- JavaWeb开发之HttpServletResponse
1. HttpServletResponse简介 Web服务器回送给Web客户端的HTTP响应消息分为三个部分:状态行,响应消息头,响应体. Servlet API中定义了ServletRespons ...
- JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(下)(各种乱码、验证码、重定向和转发)
HttpServletRequest获取请求头信息 (1)获取客户机请求头 String getHeader(String name) Enumeration<String> getHe ...
随机推荐
- 【kindeditor】KindEditor获取多个textarea文本框的值并判断非空
kindeditor官网:http://kindeditor.net/demo.php 如何获取多个KindEditor中textarea文本框的值,方式很多种(带有HTML标签). var intr ...
- ABP开发框架前后端开发系列---(2)框架的初步介绍
在前面随笔<ABP开发框架前后端开发系列---(1)框架的总体介绍>大概介绍了这个ABP框架的主要特点,以及介绍了我对这框架的Web API应用优先的一些看法,本篇继续探讨ABP框架的初步 ...
- SSL/TLS协议
今天闲着给自己的网站申请了一个免费证书,顺便复习下SSL/TLS协议 (https 就是在http+ssl协议) SSL介绍: 安全套接字(Secure Socket Layer,SSL)协议是 ...
- Extjs grid 单元格编辑
实现grid勾选后出现编辑按钮,通过增加一个字段checked来控制 事件如下: selectionchange: function (thi, selected, eOpts) { for (var ...
- javascript --- 继承小结
回顾之前学到的知识,大体上可以分为两类: 1. 基于构造器工作的模式. 2. 基于对象的工作模式. 3. 是否使用原型 4. 是否执行属性拷贝. 5. 两者都有(执行原型属性拷贝) 下面我们把之前的知 ...
- 简单配置PonyDebugger
OS的Debug 系统在github上还是有不少. PonyDebugger是看上去比较牛气的一个.尝试一下 Logo PonyDebugger 可以监控网络 NetworkTrafficDebugg ...
- SilverLight-DataControls:四、The PagedCollectionView(分页的集合视图) 对象
ylbtech-SilverLight-DataControls-PagedCollectionView:The PagedCollectionView(分页的集合视图) 对象 1.A, Buildi ...
- Linux Distribution
来自为知笔记(Wiz)
- angular 资源路径问题
1.templateUrl .component("noData",{ templateUrl:"components/noData.html" // 注意相对 ...
- c# 时间相关
1.求时间差,两种方式(时间是否小于1800秒) 第一种: DateTime startTime = DateTime.Now; ... DateTime.Now.Subtract(startTime ...