摘要:不存在则实例化一个新的对象并将它以指定的名称存储到指定的域范围中。
什么是javaBean
JavaBean就是一个普通的java类,也称之为简单java对象--POJO(Plain Ordinary Java Object),是Java程序设计中一种设计模式,是一种基于 Java 平台的软件组件思想
JavaBean遵循着特定的写法,通常有以下的规则:
有无参的构造函数
成员属性私有化
封装的属性如果需要被外所操作,必须编写public类型的setter、getter方法
上面的文字看起来好像很高大上,javaBean其实非常简单,下面的代码就是按照特定写法、规则编写的一个JavaBean对象
</>复制代码
public class Person {
private String username ;
private int age;
public Person() {
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
为什么需要使用Javabean
使用javaBean的好处就是:封装,重用,可读!
下面引用知乎一段回答:
</>复制代码
JaveBean你可以理解为一辆货车,在你的java端和web页面进行数据传递的载体,你当然可以每个变量多带带传递,或者使用集合传递,但是javabean可以使你的数据更有可读性,方便开发时明确变量的意义,也使其他阅读你代码的人能直接你的意图
如果把bean类与数据库联合使用,一张表使用bean类,可以使你的代码更加简洁高效,易于理解,现在大多数框架都会使用这种机制。
JSP行为--JavaBean
JSP技术提供了三个关于JavaBean组件的动作元素,即JSP行为(标签),它们分别为:
存在则直接返回该JavaBean对象的引用。
不存在则实例化一个新的JavaBean对象并将它以指定的名称存储到指定的域范围中。
语法:
</>复制代码
如果JSP不支持
</>复制代码
<%--这里需要导入Person类--%>
<%@ page import="domain.Person" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
//new出对象
Person person = new Person();
person.setName("zhongfucheng");
System.out.println(person.getName());
%>
效果如下
我们使用
</>复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
person.setName("zhongfucheng");
System.out.println(person.getName());
%>
也可以实现同样的效果:
有人可能会想,凭什么写一个
现在我把JavaBean中无参的构造函数改成有参的,我们看看会出现什么情况,出现异常了!
</>复制代码
public Person(int age) {
this.age = age;
}
通过上面的代码我们也知道了为什么要有一个无参的构造函数!内部在new 对象的时候是没有传递参数进去的!
jsp:setProperty语法:
</>复制代码
在语法上可分为4种模式
当我们没有学习到
这是表单的页面代码:
</>复制代码
用户名:
年龄:
这是处理表单提交过来数据的jsp的代码
</>复制代码
<%
int age = Integer.parseInt(request.getParameter("age"));
person.setAge(age);
System.out.println(person.getAge());
%>
这是可以完成的,但是相对来说,比较麻烦!
我们来使用
</>复制代码
<%--指定属性名称为age--%>
<%
System.out.println(person.getAge());
%>
也可以完成,并且代码更少,功能更强大!
代码更少可以直观看出来,为什么我说它功能更加强大呢?表单提交过来的数据都是字符串,在我们没有用
我们再来使用一下自动匹配来感受它的强大之处吧
</>复制代码
<%--property的值设置为*就代表自动匹配--%>
<%
System.out.println(person.getAge());
System.out.println(person.getName());
%>
我们再来看一下效果:
看到这里,有人可能会觉得好神奇:只要设置property的值就可以将表单传递过来的数据封装到JavaBean对象中了!这究竟是这样做到的???
细心的朋友会发现,JavaBean的属性名称和表单的name属性设置的名称是一模一样的!
</>复制代码
private String username ;
private int age;
用户名:
年龄:
如果我设置不一样还能不能用?我们试试:表单name属性的username改成是user
</>复制代码
用户名:
我们再来看看还能不能把表单的数据完整地封装JavaBean对象中
我们可以发现:要想能够把表单带过来的数据成功封装到JavaBean对象上,名字要一致!也就是说:JavaBean属性名要和表单的name的名称一致
至于原理,它是通过反射来做的,调用了内省的方法!,我们看编译后的JSP就明白了。
jsp:getProperty
语法:
该jsp行为十分简单,我们来使用一下就知道了。
</>复制代码
<%--使用输出--%>
效果:
原理如下
</>复制代码
如果文章有错的地方欢迎指正,大家互相交流。习惯在微信看技术文章的同学,可以关注微信公众号:Java3y
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/68467.html
摘要:前言由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 前言 由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 由于更新比较频繁,因此隔一段时间才会更新目录导航哦~想要获取最新原创的技术文章欢迎关注我的公众号:Java3y Java3y文章目录导航 Java基础 泛型就这么简单 注解就这么简单 Druid数据库连接池...
摘要:下面是我整理下来的知识点图上的知识点都可以在我其他的文章内找到相应内容。在中,尤其重要的是对象。 下面是我整理下来的JSP知识点: showImg(https://segmentfault.com/img/remote/1460000013229216?w=4962&h=2653); 图上的知识点都可以在我其他的文章内找到相应内容。 JSP常见面试题 jsp静态包含和动态包含的区别 j...
摘要:开发模式的介绍在开发模式中,有两个主要的开发结构,称为模式一和模式二首先我们来理清一些概念吧主要对数据的操作,增加修改删除等原子性操作。 开发模式的介绍 在Web开发模式中,有两个主要的开发结构,称为模式一(Mode I)和模式二(Mode II). 首先我们来理清一些概念吧: DAO(Data Access Object):主要对数据的操作,增加、修改、删除等原子性操作。 Web层...
阅读 1391·2021-11-15 11:37
阅读 2334·2021-09-30 09:55
阅读 4827·2021-09-22 15:51
阅读 3861·2021-09-22 15:46
阅读 2850·2019-08-30 15:52
阅读 574·2019-08-29 16:20
阅读 2972·2019-08-29 15:12
阅读 1238·2019-08-26 18:27