JSP学习笔记(三)
jsp与javabean
- 编写javabean
- 创建与使用bean
- 获取和修改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学习笔记(三)的更多相关文章
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- JAVA WEB学习笔记(三):简单的基于Tomcat的Web页面
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象
JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...
- jsp学习笔记:mvc开发模式
jsp学习笔记:mvc开发模式2017-10-12 22:17:33 model(javabe)与view层交互 view(视图层,html.jsp) controller(控制层,处理用户提交的信息 ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- JSP学习笔记
JSP学习笔记 Jsp网页主要分为Elements与Template Data两部分. Template Data:JSP Container不处理的部分,例如HTML内容 Elements:必须经由 ...
- [Firefly引擎][学习笔记三][已完结]所需模块封装
原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读: 笔记三主要就是各个模块的封装了,这里贴 ...
- java之jvm学习笔记三(Class文件检验器)
java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...
- VSTO学习笔记(三) 开发Office 2010 64位COM加载项
原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...
- Java IO学习笔记三
Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...
随机推荐
- 一起了解 .Net Foundation 项目 No.11
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. Microsoft Web ...
- JS基础入门篇(十八)—日期对象
1.日期对象 日期对象: 通过new Date()就能创建一个日期对象,这个对象中有当前系统时间的所有详细信息. 以下代码可以获取当前时间: <script> var t = new Da ...
- LeetCode 278.First Bad Version(E)(P)
题目: You are a product manager and currently leading a team to develop a new product. Unfortunately, ...
- getBoundingClientRect的实用场景
在用vue开发项目时候,遇到一个问题,首页有代办列表,是固定定位,滚动时候需要监听距离页面顶部的距离,如果很接近顶部则将代办列表展示,首页隐藏,如果再网上翻动则又回到首页. 因为是是fixed定位,所 ...
- iPhone UIButton图标与文字间距设置【转】
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 150, 50)]; [button setTitle:@& ...
- C#桌面开发的未来WebWindow
目录 WebWindow 源码 作者博客 基于Chromium的Edge 体验 体验方式一: 体验方式二: 遗留的问题 WebWindow WebWindow是跨平台的库. Web Window的当前 ...
- linux最常用命令记录(一)
一.vim个人最常用设置: vim .vimrc 然后添加以下内容 set nu set tabstop=4 set encoding=utf-8 二.查看磁盘空间相关命令 1.df -h 查看硬 ...
- 认识Nginx
无论你用浏览器还是APP访问多数网站,到达的第一站就是Nginx. 后来者居上的Nginx 千禧年前后,互联网业务迎来了高速发展,老牌的Web服务器都无法满足高性能.高可靠的市场需求. 一个开源的(遵 ...
- 解决使用 el-table 中使用多选框 Checkbox 不刷新问题
问题 在 el-table 中使用 Checkbox 仅作为展示时,v-model 双向绑定就变得不那么适用了,这时候我们会使用 checked 属性来代替v-model. 问题来了当使用 filte ...
- jvm 性能调优工具之 jps 命令详解
JPS名称:jps - Java Virtual Machine Process Status Tool命令用法:jps [options] [hostid] options:命令选项,用来对输出格式 ...