javaBean
2016-05-18 00:00
316 查看
##1.javaBean
正常的开发模式:jsp+jdbc、jsp+javaBean
##2.WEB目录的标准结构
Web Root > 根目录,一般虚拟目录会直接在此目录中配置。
WEB-INF : 整个web中的最安全目录
Classes :保存所有的*.class文件,所有的class文件必须放在一个包中。
lib : 可以存放第三方的jar文件
web.xml : web的部署描述符。
Css : 存放所有的*.css文件
Js: 存放所有的*.js文件
Jsp : 存放所有的jsp文件
Index.htm,insex.jsp 欢迎的首页
##3.javaBean的使用
###3.1.javaBean的编写要求
命名规范必须遵守
javaBean有以下要求
所有的javaBean必须放在一个包中;
必须使用public class 声明,文件名称要于类名称一致;
类中的全部属性必须封装;
被封装的属性需要通过setter和setter方法设置和访问;
如果直接使用jsp中提供的javaBean语法,则必须存在一个无参构造方法。
##3.2.编写Simple.java
编写完成之后,生成*.class文件,此文件必须保存在classes文件夹之中。
##3.3使用javaBean
在web中使用javaBean可以通过两种方式完成。
通过page指令导入
通过jsp中定义的javaBean语法访问。
范例:直接在JSP中使用page指令导入
也可以直接使用JSP中提供好的javabean标签指令完成。
范例:
此时,两个程序的运行效果是完全一样的,唯一不同的是,第二种使用了JSP中的语法支持。
此语法解释如下:
<jsp:useBean>表示在JSP中要使用javaBean
Id:表示生成的实例化对象,凡是在标签使用中,看见了id,则肯定表示一个实例化对象。
Class 此对象对应的包,类名称。
Scope 此javaBean的保存范围,四种范围:page ,request, session , application
实际上此时,实例化的操作是使用反射机制完成的。
javaBean每次修改之后,都必须重新启动服务器,因为重新启动服务器之后,才可以将新的类重新加载进来,等待用户使用。
##说明1:
每次修改javaBean都必须重新启动服务器,太累了。。。。
为了解决这样的问题,在Tomcat中提供了自动加载功能,每次重新加载之后,容器中的全部内容全部清空,如果有session的话,也不存在了。
修改server.xml文件
但是,如果配置了此属性,则服务器一直要监视类的修改情况,会降低系统的性能,所以在项目的开发中往往使用此种配置,而在项目的发布后,此配置一定要关闭。
##说明2:
对于以上的javaBean(Simple)有以下几个名字,必须记住:
POJO 定义类的时候的统称
VO 为Bean中的每隔属性赋值之后
TO 传输对象,实现了Serializable接口的对象
##4.javaBean的应用
javaBean的最大作用在于参数接受上。
###1.接受参数
范例:使用表单的方式传递参数,下面通过两种方式进行比较,观察javaBean语法的特点。
####a) 范例:完成一个*.htm页面
####b) 范例:使用原始的方式接受表单的内容
####c) 那么,使用以上的方式是否存在问题呢?
如果现在表单中的参数很多,则要一个一个的接受,费劲。
下面使用javaBean提供的语法完成。
范例:
###2. 设置javaBean中的属性
javaBean定义完成之后,就可以直接使用设置属性的方式,为Bean中的内容赋值,赋值的语句一共有四种:
方法一:通过自省的方式设置内容,是最常用的一种方式。
Name的属性就是找的javaBean中定义的id
Property=”*”以后的所有变化都在此处,此时表示的是根据参数的名称自动进行设置。
方法二:指定一个属性
方法三:将指定的参数给指定的属性(不常用)
方法四:设置指定的值给属性
范例:
综合以上来看,使用”*” 的设置哦方式,是最方便的。
###3.取得指定的属性
###4.四种范围
在整个javaBean同样保存了四种属性范围,而且这四种范围在使用时是不能修改的。即:一个bean如果定义成了page范围,则不要将其再修改为其他范围。
page范围
<jsp:useBean id="count" class="demo.Count" scope="page" />
只在当前页面保存。
每刷新一次页面之后,Count类都要实例化,证明只在当前页面中有效。跳转之后无效。
request范围
<jsp:useBean id="count" class="demo.Count" scope="request" />
一次服务器跳转有效,客户端跳转无效。
session范围
application范围
###5. javaBean编写
一般情况下,要把重复代码放在javaBean中编写,例如:之前在编写程序的时候,可以发现
正常的开发模式:jsp+jdbc、jsp+javaBean
##2.WEB目录的标准结构
Web Root > 根目录,一般虚拟目录会直接在此目录中配置。
WEB-INF : 整个web中的最安全目录
Classes :保存所有的*.class文件,所有的class文件必须放在一个包中。
lib : 可以存放第三方的jar文件
web.xml : web的部署描述符。
Css : 存放所有的*.css文件
Js: 存放所有的*.js文件
Jsp : 存放所有的jsp文件
Index.htm,insex.jsp 欢迎的首页
##3.javaBean的使用
###3.1.javaBean的编写要求
命名规范必须遵守
javaBean有以下要求
所有的javaBean必须放在一个包中;
必须使用public class 声明,文件名称要于类名称一致;
类中的全部属性必须封装;
被封装的属性需要通过setter和setter方法设置和访问;
如果直接使用jsp中提供的javaBean语法,则必须存在一个无参构造方法。
##3.2.编写Simple.java
package demo; public class Simple{ private String name; private String password; private int age; public void setName(String name){ this.name=name; } public String getName(){ return name; } public void setPassword(String password){ this.password=password; } public String getPassword(){ return password; } public void setAge(int age){ this.age=age; } public int getAge(){ return age; } }
编写完成之后,生成*.class文件,此文件必须保存在classes文件夹之中。
##3.3使用javaBean
在web中使用javaBean可以通过两种方式完成。
通过page指令导入
通过jsp中定义的javaBean语法访问。
范例:直接在JSP中使用page指令导入
<%@page contentType="text/html;charset=gbk"%> <%@page import="demo.Simple"%> <% Simple s = new Simple(); s.setName("张三"); s.setPassword("HelloWorld!"); s.setAge(18); %> <h2>姓名:<%=s.getName()%></h2> <h2>密码:<%=s.getPassword()%></h2> <h2>年龄:<%=s.getAge()%></h2>
也可以直接使用JSP中提供好的javabean标签指令完成。
范例:
<%@page contentType="text/html;charset=gbk"%> <jsp:useBean id="s" class="demo.Simple" scope="page"/> <% s.setName("张三"); s.setPassword("HelloWorld!"); s.setAge(18); %> <h2>姓名:<%=s.getName()%></h2> <h2>密码:<%=s.getPassword()%></h2> <h2>年龄:<%=s.getAge()%></h2>
此时,两个程序的运行效果是完全一样的,唯一不同的是,第二种使用了JSP中的语法支持。
此语法解释如下:
<jsp:useBean id="s" class="demo.Simple" scope="page"/>
<jsp:useBean>表示在JSP中要使用javaBean
Id:表示生成的实例化对象,凡是在标签使用中,看见了id,则肯定表示一个实例化对象。
Class 此对象对应的包,类名称。
Scope 此javaBean的保存范围,四种范围:page ,request, session , application
实际上此时,实例化的操作是使用反射机制完成的。
javaBean每次修改之后,都必须重新启动服务器,因为重新启动服务器之后,才可以将新的类重新加载进来,等待用户使用。
##说明1:
每次修改javaBean都必须重新启动服务器,太累了。。。。
为了解决这样的问题,在Tomcat中提供了自动加载功能,每次重新加载之后,容器中的全部内容全部清空,如果有session的话,也不存在了。
修改server.xml文件
<Context path="/demo" docBase="C:\Documents and Settings\Administrator\桌面\webdemo" reloadable="true"/>
但是,如果配置了此属性,则服务器一直要监视类的修改情况,会降低系统的性能,所以在项目的开发中往往使用此种配置,而在项目的发布后,此配置一定要关闭。
##说明2:
对于以上的javaBean(Simple)有以下几个名字,必须记住:
POJO 定义类的时候的统称
VO 为Bean中的每隔属性赋值之后
TO 传输对象,实现了Serializable接口的对象
##4.javaBean的应用
javaBean的最大作用在于参数接受上。
###1.接受参数
范例:使用表单的方式传递参数,下面通过两种方式进行比较,观察javaBean语法的特点。
####a) 范例:完成一个*.htm页面
<form action="jbdemo03.jsp" > 姓名:<input type="text" name="name" /><br/> 密码:<input type="text" name="password" /><br/> 年龄:<input type="text" name="age" /><br/> <input type="submit" value="提交"/> </form>
####b) 范例:使用原始的方式接受表单的内容
<%@ page contentType="text/html;charset=gbk"%> <jsp:useBean id="s" class="demo.Simple" scope="page" /> <% request.setCharacterEncoding("gbk"); s.setName(request.getParameter("name")); s.setPassword(request.getParameter("password")); String age=request.getParameter("age"); s.setAge(Integer.parseInt(age)); %> <h2>姓名:<%=s.getName()%></h2> <h2>密码:<%=s.getPassword()%></h2> <h2>年龄:<%=s.getAge()%></h2>
####c) 那么,使用以上的方式是否存在问题呢?
如果现在表单中的参数很多,则要一个一个的接受,费劲。
下面使用javaBean提供的语法完成。
范例:
<%@page contentType="text/html;charset=gbk"%> <jsp:useBean id="s" class="demo.Simple" scope="page" /> <jsp:setProperty name="s" property="*" /> <% request.setCharacterEncoding("gbk"); %> <h2>姓名:<%=s.getName()%></h2> <h2>密码:<%=s.getPassword()%></h2> <h2>年龄:<%=s.getAge()%></h2>
###2. 设置javaBean中的属性
javaBean定义完成之后,就可以直接使用设置属性的方式,为Bean中的内容赋值,赋值的语句一共有四种:
方法一:通过自省的方式设置内容,是最常用的一种方式。
<jsp:setProperty name=”bean的名称” property=”*” />
Name的属性就是找的javaBean中定义的id
Property=”*”以后的所有变化都在此处,此时表示的是根据参数的名称自动进行设置。
方法二:指定一个属性
<%@page contentType="text/html;charset=gbk"%> <jsp:useBean id="s" class="demo.Simple" scope="page" /> <jsp:setProperty name="s" property="name" /> <jsp:setProperty name="s" property="password"/> <% request.setCharacterEncoding("gbk"); %> <h2>姓名:<%=s.getName()%></h2> <h2>密码:<%=s.getPassword()%></h2> <h2>年龄:<%=s.getAge()%></h2>
方法三:将指定的参数给指定的属性(不常用)
<jsp:setProperty name=”bean的名称” property=”一个具体的属性” param=”参数名称” /> <jsp:setProperty name="s" property="name" param="password"/> <jsp:setProperty name="s" property="password" param="name"/>
方法四:设置指定的值给属性
<jsp:setProperty name=”bean的名称” property=”一个具体的属性” value=”具体的内容” />
范例:
<%@page contentType="text/html;charset=gbk"%> <jsp:useBean id="s" class="demo.Simple" scope="page" /> <% String name="cs" ; String pwd ="pwd"; %> <jsp:setProperty name="s" property="name" value="<%=name%>" /> <jsp:setProperty name="s" property="password" value="<%=pwd%>"/> <h1>姓名:<%=s.getName()%></h1> <h1>密码:<%=s.getPassword()%></h1>
综合以上来看,使用”*” 的设置哦方式,是最方便的。
###3.取得指定的属性
<%@page contentType="text/html;charset=gbk"%> <jsp:useBean id="s" class="demo.Simple" scope="page" /> <% String name="cs" ; String pwd ="pwd"; %> <jsp:setProperty name="s" property="name" value="<%=name%>" /> <jsp:setProperty name="s" property="password" value="<%=pwd%>"/> <h1>姓名:<jsp:getProperty name="s" property="name" /></h1> <h1>密码:<jsp:getProperty name="s" property="password" /></h1>
###4.四种范围
在整个javaBean同样保存了四种属性范围,而且这四种范围在使用时是不能修改的。即:一个bean如果定义成了page范围,则不要将其再修改为其他范围。
page范围
<jsp:useBean id="count" class="demo.Count" scope="page" />
只在当前页面保存。
每刷新一次页面之后,Count类都要实例化,证明只在当前页面中有效。跳转之后无效。
request范围
<jsp:useBean id="count" class="demo.Count" scope="request" />
一次服务器跳转有效,客户端跳转无效。
session范围
<jsp:useBean id="count" class="demo.Count" scope="session" />
application范围
<jsp:useBean id="count" class="demo.Count" scope="application" />
###5. javaBean编写
一般情况下,要把重复代码放在javaBean中编写,例如:之前在编写程序的时候,可以发现
相关文章推荐
- JSP/PHP基于Ajax的分页功能实现
- 开发阶段Jetty运行Jsp报错且响应空白
- jsp简单实现页面之间共享信息的方法
- Apache Web让JSP“动”起来
- JSP学习经验小结分享
- JSP 多条SQL语句同时执行的方法
- 在jsp页面中响应速度提高的7种方法分享
- (jsp/html)网页上嵌入播放器(常用播放器代码整理)
- 使用JSP制作一个超简单的网页计算器的实例分享
- JSP上传excel及excel插入至数据库的方法
- JSP中文乱码常见3个例子及其解决方法
- jsp实现将动态网页转换成静态页面的方法
- JSP避免Form重复提交的三种方案
- 纯jsp实现的倒计时动态显示效果完整代码
- JSP自定义标签入门学习
- JSP实现添加功能和分页显示实例分析
- JSP中param标签用法实例分析
- JSP实现从不同服务器上下载文件的方法