博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javaBean
阅读量:5874 次
发布时间:2019-06-19

本文共 3987 字,大约阅读时间需要 13 分钟。

  hot3.png

##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的编写要求

  1. 命名规范必须遵守
  2. 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);%>

姓名:<%=s.getName()%>

密码:<%=s.getPassword()%>

年龄:<%=s.getAge()%>

也可以直接使用JSP中提供好的javabean标签指令完成。

范例:

<%@page contentType="text/html;charset=gbk"%>
<% s.setName("张三"); s.setPassword("HelloWorld!"); s.setAge(18);%>

姓名:<%=s.getName()%>

密码:<%=s.getPassword()%>

年龄:<%=s.getAge()%>

此时,两个程序的运行效果是完全一样的,唯一不同的是,第二种使用了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) 范例:使用原始的方式接受表单的内容

<%@ page contentType="text/html;charset=gbk"%>
<% request.setCharacterEncoding("gbk"); s.setName(request.getParameter("name")); s.setPassword(request.getParameter("password")); String age=request.getParameter("age"); s.setAge(Integer.parseInt(age));%>

姓名:<%=s.getName()%>

密码:<%=s.getPassword()%>

年龄:<%=s.getAge()%>

####c) 那么,使用以上的方式是否存在问题呢?

如果现在表单中的参数很多,则要一个一个的接受,费劲。

下面使用javaBean提供的语法完成。

范例:

<%@page contentType="text/html;charset=gbk"%>
<% request.setCharacterEncoding("gbk"); %>

姓名:<%=s.getName()%>

密码:<%=s.getPassword()%>

年龄:<%=s.getAge()%>

###2. 设置javaBean中的属性

javaBean定义完成之后,就可以直接使用设置属性的方式,为Bean中的内容赋值,赋值的语句一共有四种:

  • 方法一:通过自省的方式设置内容,是最常用的一种方式。

  Name的属性就是找的javaBean中定义的id   Property=”*”以后的所有变化都在此处,此时表示的是根据参数的名称自动进行设置。

  • 方法二:指定一个属性
<%@page contentType="text/html;charset=gbk"%>
<% request.setCharacterEncoding("gbk");%>

姓名:<%=s.getName()%>

密码:<%=s.getPassword()%>

年龄:<%=s.getAge()%>

  • 方法三:将指定的参数给指定的属性(不常用)
  • 方法四:设置指定的值给属性

范例:

<%@page contentType="text/html;charset=gbk"%>
<% String name="cs" ; String pwd ="pwd";%>

姓名:<%=s.getName()%>

密码:<%=s.getPassword()%>

综合以上来看,使用”*” 的设置哦方式,是最方便的。

###3.取得指定的属性

<%@page contentType="text/html;charset=gbk"%>
<% String name="cs" ; String pwd ="pwd";%>

姓名:

密码:

###4.四种范围

在整个javaBean同样保存了四种属性范围,而且这四种范围在使用时是不能修改的。即:一个bean如果定义成了page范围,则不要将其再修改为其他范围。

  1. page范围 <jsp:useBean id="count" class="demo.Count" scope="page" /> 只在当前页面保存。 每刷新一次页面之后,Count类都要实例化,证明只在当前页面中有效。跳转之后无效。

  2. request范围 <jsp:useBean id="count" class="demo.Count" scope="request" /> 一次服务器跳转有效,客户端跳转无效。

  3. session范围

  1. application范围

###5. javaBean编写

一般情况下,要把重复代码放在javaBean中编写,例如:之前在编写程序的时候,可以发现

转载于:https://my.oschina.net/csmw00/blog/676984

你可能感兴趣的文章
十进制、十六进制、二进制的转换
查看>>
双网卡centos7 iptables防火墙与/etc/rc.d/rc.local开机运行
查看>>
tomcat PermGen space 不足的解决方法
查看>>
STM32系统滴答_及不可不知的延时技巧 - (上)
查看>>
Linux下企业级分区方案
查看>>
CentOS下LAMP一键yum安装脚本
查看>>
拖来拖去今天终于重装系统了
查看>>
NestJS 脑图
查看>>
我的友情链接
查看>>
Html body的滚动条禁止与启用
查看>>
Tengine新增nginx upstream模块的使用
查看>>
多媒体工具Mediainfo
查看>>
1-小程序
查看>>
CentOS图形界面和命令行切换
查看>>
HTML5通信机制与html5地理信息定位(gps)
查看>>
Mind_Manager_2
查看>>
手动升级 Confluence - 规划你的升级
查看>>
汽车常识全面介绍 - 悬挂系统
查看>>
电子政务方向:We7.Cloud政府云门户
查看>>
虚拟机Centos7连接Internet
查看>>