一、JavaBean出现的目的
由于只用JSP开发会发现使用了很多的Scriptlet(java脚本),会使得jsp文件非常混乱。如果使用JavaBean,则可以大大减少JSP中代码量。JSP的理想状态是只负责显示,而不负责处理。
二、JavaBean介绍
JavaBean说的通俗点就是一个Java类用于JSP中。通过<jsp:useBean>或者import导入。
JavaBean导入的类的约定:
(1)类必须是public的;
(2)必须有无参构造;
(3)属性必须是private的;
(4)必须有get和set方法,类的字段必须通过get和set方法来访问。
三、JavaBean存放位置
在tomcat中的理想目录结构如下:
JavaBean存放在WEB-INF/classes内。
注意:
(1)每次修改classes文件或web.xml后必须要重启服务器。
如果觉得很麻烦,则在开发过程中可以通过在Server.xml中设置虚拟目录的位置添加:
<Context path="..." docBase="..." reloadable="true"/>,这样就会变成自动导入模式,不必重启服务器。
但是有一个缺点,就是服务器必须时刻监视,会降低性能。
(2)在classes中放入的是class文件。
(3)类必须要有所在的包。
四、<jsp:useBean>用法:
一般的形式:<jsp:useBean id="实例化名称" scope="page" class="包.类名"/>,id是实例化对象;scope中可以是
(1)page:在一页中保存
(2)request:服务器端跳转仍保存;
(3)session:跳转仍保存;
(4)application:服务器没有关闭仍保存;
class为实例化对象的类的完整名称;
使用<jsp:useBean>的好处是自动帮助你创建一个名为id的值的对象。
注意:JavaBean中一定要有无参构造函数。
五、<jsp:setProperty>用法:
一般形式有四种:
(1)<jsp:setProperty name="实例化名称" property="*"/>:自动调用set方法;
(2)<jsp:setProperty name="实例化名称" property="name1"/>:对于name1属性自动调用set方法;
(3)<jsp:setProperty name="实例化名称" property="name1" value="value1"/>:对于name1属性赋予value1值;
(4)<jsp:setProperty name="实例化名称" property="name1" param="param1"/>:把param1的值赋给name1属性;
但是一般使用第一种方法最多。
六、<jsp:getProperty>用法
一般形式:<jsp:getProperty name="c1" propety="name1"/>自动调用c1对象的getName1()方法,并返回;
其实效果和getter方法是一样的;
七、JavaBean删除
通过pageConext.removeAttribute("JavaBean名称");删除scope为page的JavaBean对象。依次类推。
八、有了JavaBean以后,我们怎么在JSP页面中访问它呢?
方法有2种: 直接访问和JSP标签访问 (不过我们推荐通过标签来访问)
1)直接访问
a) 声明bean
在页面顶部导入JavaBean类: <%@ page import="mytrain.formbean.userBean" %>
在JSP段实例化类: <% userBean user = new userBean(); %>
b) 访问bean
<% user.setXXX(aa); %>
<%=user.getXXX();%>
2)标签访问(推荐)
a) 声明bean
使用userBean标签:
<jsp:useBean id="user" class="mytrain.formbean.userBean"/>
b) 访问bean
通过setProperty标签来设置:<jsp:setProperty name="user" property="name" param="mUserName"/>
通过getProperty标签来取得:<jsp:getProperty name="user" property="name"/>
下面我们来看一下完整的代码。
package mytrain.formbean; 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; } }
login.html:
<%@ page language="java" pageEncoding="GBK"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>表单Bean例子2</title> </head> <body> <form action="register.jsp" method="post"> 用户名: <input type="text" name="mUserName" size="20"> <br> 密码: <input type="password" name="mPassword" size="20"> <br> <input type=submit value="submit" /> </form> </body> </html>
标签访问法:register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <jsp:useBean id="user" class="mytrain.formbean.UserBean" /> <jsp:setProperty name="user" property="name" param="mUserName" /> <jsp:setProperty name="user" property="password" param="mPassword" /> <hr /> 用户名:<jsp:getProperty name="user" property="name" /> <br> 密 码:<jsp:getProperty name="user" property="password" /> </body> </html>
标签访问法:register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="mytrain.formbean.UserBean" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <% UserBean user = new UserBean(); user.setName(request.getParameter("mUserName")); user.setPassword(request.getParameter("mPassword")); %> <hr /> 用户名:<%=user.getName()%> <br> 密 码:<%=user.getPassword()%> </body> </html>
相关推荐
一个基于JAVABEAN的BBS系统!
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
利用Javabean、servlet、jsp实现用户添加、修改、删除
javaee 实验1 JSP+Servlet+JavaBean编程 实验目的 掌握MVC开发模式,熟悉JSP、Servlet、JavaBean、JDBC编程。 实验任务 要求:使用JSP+Servlet+JavaBean的MVC开发模式实现下面功能: 数据库:users; 数据表:users( ...
采用jsp+servlet+javabean,jsp负责少量的页面处理,以servlet为主。 结构清晰明了,未对页面做美工处理,因此html和javascript代码很少, 详细介绍了jdbc的常用api以及数据库中的表的级联。 开发调试平台...
在本实例中分别创建了保存商品信息的JavaBean---GoodsSingle和工具JavaBean---MyTools和实现购物车的JavaBean---ShopCar。
这是一个以JSP、servlet、JavaBean实现MVC三层架构的简单例子,使用XML作为数据库连接的配置文件。 使用环境:eclipse_3.2、myeclipse_5.1、jdk_6.0、tomcat_5.5、sql server 2005 <br>----------------------...
Jsp+Servlet+JavaBean 实现MVC模式的留言本 声明:本留言本所有源代码开源,使用者可以自由修改和传播,但仅限于非商业用途。 作者:梁龙 博客:http://www.lianglong.net.cn 由于这是本人学习JAVA的第一个项目,...
进销存系统:JSP+javabean进销存系统:JSP+javabean进销存系统:JSP+javabean进销存系统:JSP+javabean进销存系统:JSP+javabean进销存系统:JSP+javabean进销存系统:JSP+javabean进销存系统:JSP+javabean
毕业设计大作业基于的JavaBean+Servlet+jsp的网上购物系统毕业设计源码.zip 该系统是对我们原有JAVA大作业进行的扩展,应用到持久化管理、模版管理和视图管理等一些模式。 需求规定 a. 系统功能:采购图书 b.系统性能...
登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+...
自动生成Javabean的Excel工具
javabean(DB)javabean(DB)
一、实验目的 1.熟悉JavaBean的开发过程。 2.掌握Servlet的开发过程。 二、实验学时 2H 三、实验性质 综合性实验
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
一直以来根据数据库表结构自动生成JavaBean、自动生成MyBaits的Mapper映射配置文件、自动生成数据库设计文档都是一件让人很头痛的事情,既浪费时间又很繁琐,看着几十上百个表的成千上万个字段,真是一件让人痛苦的...
一直以来把数据库的表转换成JavaBean和数据库设计文档都是一件让人很头痛的事情,既浪费时间又很繁琐,看着几十上百个表的成千上万个字段,真是一件让人痛苦的事情。 我们也想过很多办法解决这个问题,包括用...
Jsp中利用JavaBean技术实现分页功能 Jsp中利用JavaBean技术实现分页功能
问题描述:存在一个JavaBean,它包含以下几种可能的属性: 1.boolean/Boolean 2.int/Integer 3.String 4.double/Double 属性名未知, 现在要给这些属性设置默认值, 以下是要求的默认值:String类型的默认值为字符串 ...
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...