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的子类,将输出的 ...
随机推荐
- 【新功能】MaxCompoute禁止Full Scan功能开放
摘要: 2018年1月10日,MaxCompute禁止Full Scan功能开放.对于新创建的project默认情况下执行sql时,针对该project里的分区表不允许全表扫描,必须有分区条件指定需要 ...
- [CSS]CSS Position 详解
一. CSS position 属性介绍 CSS中position属性指定一个元素(静态的,相对的,绝对或固定)的定位方法的类型.有static,relative,absolute和fixed四种取值 ...
- ES6的原始类型数据——Symbol
javascript中原始值,即基本数据类型,像Number,String,Boolean,undefined,Null都是基本类型值,保存在栈中,但是有个疑问: Symbol打印出来明明是个函数,具 ...
- Pocket+Evernote 打造个人知识库体系
俗话说巧妇难为无米之炊,还是那个不太恰当的例子. 写作就好比人类的消化系统,想要持续的输出...那么就要持续的输入... 今天就来说一说如何进行持续有效的输入. 信息处理过程 先放一张图,这是我的整个 ...
- js 行走的小女孩 面向对象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- tempdb 日志文件增长的问题
前两天在一个客户那里发现tempdb log 文件增长很大,已经使用40GB了,而tempdb log 文件总的分配空间是70GB,并且日志空间貌似不能重用,他们使用sql 2012 打的sp4补丁, ...
- 为什么 String 是 immutable 类
二哥,你能给我说说为什么 String 是 immutable 类(不可变对象)吗?我想研究它,想知道为什么它就不可变了,这种强烈的愿望就像想研究浩瀚的星空一样.但无奈自身功力有限,始终觉得雾里看花终 ...
- Jenkins下构建UI自动化之初体验
一.缘 起 笔者之前一直在Windows环境下编写UI自动化测试脚本,近日在看<京东系统质量保障技术实战>一书中,萌生出在jenkins下构建UI自动化测试的想法 二.思 路 首先,在Li ...
- 面向对象第四单元(UML)及期末总结
前言 统一建模语言(英语:Unified Modeling Language,缩写 UML),是软件架构设计建模和规约的语言. 在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功 ...
- Linux nginx安装步骤 centos7
1.安装依赖: yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2.创建一个文件夹cd /usr/localmk ...