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的子类,将输出的 ...
随机推荐
- CKEditor4.7怎样实现上传图片,浏览服务器(无需ckfinder),nodejs图片管理,字体居中,图片居中(超详细)
首先是下载CKEditor,下载地址:http://ckeditor.com/download 选择里面的Customize自定义,如图 然后进入配置界面,第一个choose preset一般就选st ...
- Redis(6)——GeoHash查找附近的人
像微信 "附近的人",美团 "附近的餐厅",支付宝共享单车 "附近的车" 是怎么设计实现的呢? 一.使用数据库实现查找附近的人 我们都知道, ...
- 什么是RPM
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux.S.u ...
- Mac上Burpsuite 拦截不到HTTPS流量怎么设置
在百度了一堆以及修修改改下终于拦截到HTTPS流量了. 安装步骤就大致讲一下吧 网上下载burp的安装包,然后Mac上直接打开这个burpUnlimited.jar包就可以了 我直接选择的第一个 ...
- 基于osg的python三维程序开发(二)------向量
上一篇文章展示了如何简单创建一个osg python 程序, 本篇展示了了一些基础数据结构的使用: from pyosg import * vec = osg.Vec3Array() #push ba ...
- MySQL记录操作(增删改)
概览 MySQL数据操作: DML 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 使用INSERT实现数据的插入 UPDATE实现数据的更新 使用DELETE实现数据 ...
- echart图表中legend不显示问题
主要是legend中的name要和series中的name对应上.
- 再说scss
1. CSS预处理器 定义了一种新的专门的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代码的维护等诸多好处 ...
- flex 居中
display: flex; justify-content: space-between; align-items: center;
- 不要再认为Stream可读性不高了!
距离Java 8发布已经过去了7.8年的时间,Java 14也刚刚发布.Java 8中关于函数式编程和新增的Stream流API至今饱受"争议". 如果你不曾使用Stream流,那 ...