Javabean
Javabean简介:它是符合某种特定的规范的Java类。使用Javabeans的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。
Javabean的实现原则:公有类、无参的公有构造方法、属性私有、getter和setter方法。
JSP动作元素:动作元素为请求处理阶段提供信息。动态元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签。
Javabean类别:
² 与存取JavaBean有关的,包括:
<jsp:userBean><jsp:setProperty><jsp:getProperty>
² JSP1.2就开始有的基本元素,包括6个动作元素
<jsp:include><jsp:forward><jsp:param><jsp:plugin><jsp:params><jsp:fallback>
² JSP2.0新增加的元素,主要与JSP Document有关,包括6个元素
<jsp:root><jsp:declaration><jsp:scriptlet><jsp:expression><jsp:text><jsp:output>
² JSP2.0新增的动作元素,主要是用来动态生成XML元素标签的值,包括3个动作
<jsp:attribute><jsp:body><jsp:element>
² JSP2.0新增的动作元素,主要是用在Tag File中,有2个元素
<jsp:invoke><jsp:dobody>
在Jsp页面中使用Javabeans
1) 像使用普通java类一样,创建javabean实例。
2) 在Jsp页面中通常使用jsp动作标签使用javabean。动作标签包括:useBeans动作、setProperty动作、getProperty动作。
n <jsp:useBeans>作用:在jsp页面中实例化或者在指定范围内使用javabean:
<jsp:useBean id=“标识符” class=”java类名” scope=”作用范围”/>
n <jsp:setProperty>作用:给已经实例化的Javabean对象的属性赋值,一共有四种形式。
<jsp:setProperty name=”JavaBean实例名”property=”*”/>(跟表单关联)
<jsp:setProperty name=”JavaBean实例名”property=“JavaBean属性名”/>(跟表单关联)
<jsp:setProperty name=”JavaBean实例名”property=”JavaBean属性名” value=”BeanValue”/>(手工设置)
<jsp:setProperty name=”JavaBean实例名”property=”propertyName” param=”request对象中的参数名”/>(跟request参数关联)
n <jsp:getProperty>作用:获取指定Javabean对象的属性值。
<jsp:getProperty name=”JavaBean实例名”property=”属性名”/>
Javabean的四个作用范围
说明:使用userBeans的scope属性可以用来指定javabean的作用范围。
² page:仅在当前页面有效
² request:可以通过HttpRequest.getAttribute()方法取得JavaBean对象
² session:可以通过HttpSession.getAttribute()方法取得JavaBean对象
² application:可以通过application.getAttribute()方法取得JavaBean对象
Model1简介
Model1模型出现前,整个Web应用的情况是几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应。
弊端:在界面层充斥着大量的业务逻辑代码和数据访问层的代码,Web程序的可靠展性和可维护性非常差。
Javabean的出现可以使jsp页面中使用JavaBean封装的数据或者调用javabean的业务逻辑代码,这样大大提升了程序的可维护性。
Model1模式:JSP + JavaBean模式
JSP状态管理
http协议的无状态性
无状态指:当浏览器发送请求给服务器是,服务器响应客户端请求。但是当同一个浏览器再次发送请求给服务器的时候,服务器并不知道它就是刚才那个浏览器。简单说:即服务器不会记得你,故为无状态协议。
Cookies概述
保存用户的状态的两大机制:Session和Cookie(客户端技术)
Cookies技术:名称为“小甜饼”,是Web服务器保存在客户端的一系列文本信息。应用:判断注册用户是否已经登录网站;购物车的处理。生活应用:系统会自动记录已经浏览过的视频,记住用户名和密码实现自动登录功能。
Cookies作用:
² 对特定对象的追踪
² 保存用户网页浏览记录与习惯
² 简化登录
安全风险:容易泄露用户信息
Jsp中创建与使用Cookie
创建Cookie
Cookie newCookie = new Cookie(String key,Object value);
写入Cookie对象
Response.addCookie(new Cookie);
读取Cookie对象
Cookie[] cookies = request.getCookies();
Jsp中创建与使用Cookie常用方法
方法名称 | 说明 |
Void setMaxAge(int expiry) | 设置cookie的有效期,以秒为单位 |
Void setValue(String value) | 在cookie创建后,对cookie进行赋值 |
String getName() | 获取cookie的名称 |
String getValue() | 获取cookie的值 |
Int getMaxAge() | 获取cookie的有效时间,以秒为单位 |
Session与Cookie对比
Session | Cookie |
在服务器端保存用户信息 | 在客户端保存用户信息 |
Session中保存的是Object类型 | Cookie保存的是String类型 |
随会话的结束而将其存储的数据销毁 | Cookie可以长期保存在客户端 |
保存重要的信息 | 保存不重要的用户信息 |
JSP指令与动作
Include指令
语法:<%@include file=”URL”%>
Include动作动作标签
语法:<jsp:include page=”URL “,flush=”true|false”/>
常用属性包括:page(要包含的页面)和flush(被包含的页面是否从缓冲区读取)
Include指令与include动作区别
| Include指令 | Jsp:include动作 |
语法格式 | <%@include file=”..”%> | <jsp:include page=”..”> |
发生作用的时间 | 页面转换时间 | 请求时间 |
包含的内容 | 文件的实际内容 | 页面的输出 |
转换成Servlet | 主页面和包含页面转换为一个Servlet | 主页面和包含页面转换为独立的Servlet |
编译时间 | 较慢——资源必须被解析 | 较快 |
执行时间 | 稍快 | 较慢——每次资源必须被解析 |
Forward动作
语法:<jsp:forward page=”URL”/>等同于:
request.getRequestDispatcher(“/url”).forward(request,response);
param动作
语法:<jsp:param name=”参数名” value = “参数值”>
常常与<jsp:forward>一起使用,是其子标签。