jsp与javabean

  1. 编写javabean
  2. 创建与使用bean
  3. 获取和修改bean的属性

javabean是一种java类,是通过封装属性和方法成为具有某种功能或处理某个业务的对象,简称bean,javabean是基于java语言的,因此不依赖平台,具有以下特点:

1.可以实现代码的重复利用

2.易编写、易维护、易使用

3.可以在任何安装了java运行环境的平台上使用而不需要重新编译

1.编写javabean

[1]如果类的成员变量的名字为xxx,那么类中必须提供两个方法:

getXxx()用来获取属性xxx

setXxx()用来修改属性xxx

[2]boolean类型的成员变量允许使用is代替get和set

[3]类中声明的方法的访问属性必须是public

[4]类中的构造方法必须是public、无参数的

例:

package pojo;

public class Student {
private String name;
private int age; public Student() { } public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} @Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}

2.创建与使用bean

[1]使用bean

使用JSP动作标记useBean来加载使用

<jsp:useBean id=“bean的名字” class=“创建的bean字节码文件(必须把bean放在包中,并在填写时注明)” scope=“bean的有效范围”></jsp:useBean>

 <jsp:useBean id="student" class="pojo.Student" scope="page"></jsp:useBean>

[2]bean的加载原理

加载原理:JSP引擎将首先根据JSP动作标记useBean给出的bean的id名字以及scope给出的使用范围(bean生命周期),在一个同步块中查找JSP引擎内置pageContent对象中是否含有这样的bean。如果这样的bean存在,JSP引擎就分配这样的bean给用户(这样提高了JSP使用bean的效率),如果pageContent中没有找到JSP动作标记要求的bean,就根据class指定的字节码创建一个JSP动作标记useBean要求的bean,并将所创建的bean添加到pageContent内置对象中

[3]bean的有效范围(生命周期)

(1)scope取值page

只在当前页面有效,有效期直到页面执行完毕(不同用户的取值为page的bean是不同的)

(2)scope取值session

当用户的会话(session)消失,JSP引擎才取消所分配的bean,即用户访问web服务目录下的各个页面都有效,直到用户的会话(session)消失。(不同浏览器的scope取值为session的bean是不同的)

(3)scope取值为request

当前页面有效,直到响应结束(略长于page)

(4)scope取值为application

web服务目录下所有JSP页面有效,直到服务器关闭(不同用户的scope取值为application的bean是相同的)

3.获取和修改bean的属性

[1]setProperty动作标记

第一种设置方式

	<jsp:useBean id="student" class="pojo.Student" scope="application"></jsp:useBean> //记得先用useBean加载出来
<jsp:setProperty name="student" property="age" value="<%=18%>"></jsp:setProperty> //设置bean的属性值

value的值的类型必须与bean的属性的类型一致,如果将字符串设置为bean的属性值,那么这个字符串会自动被转化成bean的属性的类型,如果试图将字符串ab23存到上面的age中,则JSP引擎会有以下操作:

    Integer.parseInt("ab23");

则会出现NumberFormatException异常

另一种设置方法

通过HTTP表单的参数的值来设置bean的值,如:

<form action = "本页面" Method = "post">
<input type = "text" name = "name">
<input type = "text" name = "age">
<input type = "submit" value = "提交">
</form>
<jsp:setProperty name="student" property="name" param="name"></jsp:setProperty>
<jsp:setProperty name="student" property="age" param="age"></jsp:setProperty>

像这种property给出的bean属性名与表单的param(name)名相同的也可以这样写:

<jsp:setProperty name="student" property="*"></jsp:setProperty>

[2]getProperty动作标记

<jsp:useBean id="student" class="pojo.Student" scope="application"></jsp:useBean>
<jsp:setProperty name="student" property="age" value="18"></jsp:setProperty>
<jsp:getProperty name="student" property="age"></jsp:getProperty> //获取bean的age属性的值

JSP学习笔记(三)的更多相关文章

  1. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  2. JAVA WEB学习笔记(三):简单的基于Tomcat的Web页面

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  3. java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象

     JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...

  4. jsp学习笔记:mvc开发模式

    jsp学习笔记:mvc开发模式2017-10-12 22:17:33 model(javabe)与view层交互 view(视图层,html.jsp) controller(控制层,处理用户提交的信息 ...

  5. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  6. JSP学习笔记

    JSP学习笔记 Jsp网页主要分为Elements与Template Data两部分. Template Data:JSP Container不处理的部分,例如HTML内容 Elements:必须经由 ...

  7. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  8. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  9. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  10. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

随机推荐

  1. HelloWorld系列(一)- 手把手教你做JDK环境变量配置

    分下载,配置,验证三个步骤讲解如何进行JDK环境变量配置. 步骤1:首先看配置成功后的效果步骤2:下载,并解压到E:\JDK步骤3:环境变量配置步骤4:Win10 下环境变量Path的配置步骤5:验证 ...

  2. @JsonFormat、@DateTimeFormat注解,读取数据库晚一天问题

    @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss&qu ...

  3. LeetCode37 使用回溯算法实现解数独,详解剪枝优化

    本文始发于个人公众号:TechFlow,原创不易,求个关注 数独是一个老少咸宜的益智游戏,一直有很多拥趸.但是有没有想过,数独游戏是怎么创造出来的呢?当然我们可以每一关都人工设置,但是显然这工作量非常 ...

  4. startUML5.0中的tools下怎么没有java、c等选项

    这也是帮一个直系学妹弄得,哈哈~~~ 具体做法如下: 进入到StartUML\modules目录下,里面有很多文件夹,比如startuml-cpp.startuml-csharp等等, 进入到每个文件 ...

  5. Xml反序列化记录

    1.概述 公司项目遇到一个需要对接webservice的,webservice大部分用的都是xml来传输的,这里记录一下xml反序列化遇到的问题 2.xml工具类 xml序列化: public sta ...

  6. 最新IntelliJ IDEA 2019.3版本永久激活,一步到位!

    简单介绍一下什么是IDEA? IDEA全称 IntelliJ IDEA,是java编程语言开发的集成环境.IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手.代码自动提示.重构. ...

  7. elasticsearch 创建索引

    一.基本概念 索引:含有相同属性的文档的集合. //可以想象成一个数据库 database 类型:索引可以定义一个或多个类型,文档必须属于一个类型. //可以想象成数据库中的表 table 文档:文档 ...

  8. $props, $attrs,$listeners的具体使用例子

    我在这使用属性重新render饿了么ui的tree: <el-tree ref="tree" icon-class="fa fa-caret-right" ...

  9. ajax5

    处理跨域方法 (代理) 一个域名地址的组成: /script/jQuery.js 协议    子域名  主域名   端口号  请求资源地址 当协议,子域名,主域名,端口号中任意一个不相同时,都算作不同 ...

  10. node.js中http.respone.end方法概述

    方法说明: 结束响应,告诉客户端所有消息已经发送.当所有要返回的内容发送完毕时,该函数必须被调用一次. 如果不调用该函数,客户端将永远处于等待状态. 语法: response.end([data], ...