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的子类,将输出的 ...
随机推荐
- css 进度条的文字根据进度渐变
需求 1.进度条里面的文字需要根据进度的长度而变化 原理 用两个一模一样的样式的 div 重叠起来 效果 字体开始为 蓝色,跟随进度条变为 白色 在线预览: https://jsfiddle.net/ ...
- spring——AOP原理及源码(四)
前情回顾: 上文我们一路分析了从容器创建开始直到我们的AOP注解导入的核心组件AnnotationAwareAspectJAutoProxyCreator执行postProcessBeforeInst ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(6.1)- FlexSPI NOR连接方式大全(RT600)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT600的FlexSPI NOR启动的连接方式. 痞子衡前段时间一鼓作气写完了三篇关于i.MXRT1xxx系列Flex ...
- Python 【绘制图及turtle库的使用】
前言 最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,整理了一下,挑了一些觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~赶快去试一下吧) one ...
- 网页中三角型的CSS实现
我们在使用CSS框架的时候,经常会用到下拉框组件,一般该组件里面有个下三角.很多网上用到三角形,如图所示,这个三角形是如何实现的呢? 1.使用CSS可以实现,先来复习一CSS盒子模型相关知识.给出如下 ...
- 利用border-radius画椭圆
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Scrapy同时启动多个爬虫
1. 在项目文件夹中新建一个commands文件夹 2. 在command的文件夹中新建一个文件 crawlall.py 3.在crawlall.py 中写一个command类,该类继承 scrapy ...
- @on-row-click="$emit('on-row-click', arguments[0], arguments[1])" 行内返回事件的一种写法
@on-row-click="$emit('on-row-click', arguments[0], arguments[1])"
- 【spring springmvc】springmvc使用注解声明控制器与请求映射
目录 概述 壹:注解说明 贰:实现注解声明控制器与请求映射 一:使用controller 二:配置包扫描与视图解析器 1.配置包扫描 2.配置试图解析器 三:配置部署描述符 1.读取spring-mv ...
- EPX Studio开发平台简介
大家问我最多的问题就是“EPX 是什么?”“EPX 能够用来做什么?”“EPX 有什么优势?”“EPX 与其它开发平台的区别是什么?” 问题林林总总,总也回答不完,希望通过正文前面的这段文字,来简要回 ...