JSP学习_02
JavaBean是特殊的Java类,使用Java语言编写,遵守JavaBean规范
JavaBean同其他Java类一些独一无二的属性:
拥有一个默认的构造函数
需要被序列化并实现Serializable接口
可能有一些列的可读写属性
可能有一系列的setter和getter方法
JavaBean对象的属性是可访问的,可读写、只读、只写,对象的属性通过JavaBean提供的两个方法获得:
setPropertyName():如果属性名为:myName,则这个方法名就要写成setMyName()设置属性,又称为写入器
getPropertyName();如果属性名为:myName,则这个方法名就要写成getMyName()获取属性,又称为访问器
package com.runoob;
public class StudentsBean implements java.io.Serializable
{
private String firstName = null;
private String lastName = null;
private int age = 0;
public StudentsBean() {
}
public String getFirstName(){
return firstName;
}
public String getLastName(){
return lastName;
}
public int getAge(){
return age;
}
public void setFirstName(String firstName){
this.firstName = firstName;
}
public void setLastName(String lastName){
this.lastName = lastName;
}
public void setAge(int age) {
this.age = age;
}
}
---------------------------------
访问JavaBean
<jsp:useBean>:标签可以在Jsp声明一个JavaBean,然后使用它,声明之后JavaBean就成了脚本变量,
可以通过脚本元素和其他自定义标签来访问
<jsp:useBean>标签的语法格式如下:
<jsp:useBean id="bean的名字" scope="bean的作用域">
根据具体情况,bean的作用域可以是page,request,session或application;
id值只要不和同一个页面中的JavaBean的id值一样就可以
例子:
<jsp:useBean id="date" class="java.util.Date" />
<%= date %>
访问JavaBean对象的属性:
在<jsp:useBean>中,使用标签<jsp:getProperty>来调用getter方法;使用标签<jsp:setProperty>来调用setter方法
<jsp:useBean id="bean的名字" class="bean编译的类" scope="bean的作用域">
<jsp:setProperty name="bean的id" property="bean的属性名" value="value">
<jsp:getProperty name="bean的id" property="bean的属性名" value="value">
</jsp:useBean>
property可以理解为属性名字,value是该属性名对应的值
如:
<jsp:useBean id="students" class="com.itheima.StudentsBean">
<jsp:setProperty id="students" property="firstName" value="王"/>
<jsp:setProperty id="students" property="lastName" value="小强"/>
<jsp:setProperty id="students" property="age" value="24"/>
</jsp:useBean>
jsp表达式语言
表达式语言(EL)使得访问JavaBean中的数据非常简单,既可以创建算数表达式,也可以创建逻辑表达式\
JSP EL 允许使用一个表达式来表示属性的值
语法:${expr}
expr是表达式
最常用的通用操作符就是.和{},这两个操作符通过内嵌的JSP中象来访问JavaBean中各式各样的属性值
param request对象的参数
pageContext 当前页的pageContext的值
pageContext对象是JSP中pageContext对象的引用,通过pageContext对象可以访问request对象
如访问request输入的查询字符串:${pageContext.request.queryString}
param (返回字符串)和 paramValues(返回字符串数组)对象
param 和 paramValues对象用来访问参数值,使用request.getParameter方法和request.getParameterValues方法
比如访问名为order的参数:${param.order}
toString()方法是类名加地址的形式
碰到println等输出时,打印对象会自动调用toString()方法
StringBuffer sb = new StringBuffer();
sb.append("hello");
System.out.println(sb.toString());
若希望将StringBuffer在屏幕上显示出来,必须首先调用toString()方法将其转变为字符串常量,因为PrintStream的方法println()不接受StringBuffer参数
异常:检查性异常(编译期不能忽略)、运行时异常(编译期间忽略)、错误(编译期间忽略)
Exception对象:exception对象是Throwable子类的一个实例,只在错误页面中使用。Throwable的一些重要方法
1.pubic String getMessage()
返回异常信息,在Throwable构造函数中初始化
2.public ThrowablegetCause()
返回造成异常的原因
3.public String toString()
返回类名
4.public String printStackTrace()
将异常站轨迹输出到System.err
JSP通过可选项为每个JSP页面指定错误页面,无论何时页面出现了异常,JSP容器就会自动地调用错误页面
<%@page errorPage="abc.jsp"%>指定一个错误页面
<%@page isErrorPage="true"%>指令确定本页面是一个错误显示页面,JSP容器会创建一个异常实例变量
国际化(i18n):表明一个网页的内容根据访问者的语言和国家呈现出不同的翻译版本
本地化(l10n):向网站中添加资源,以使它能够适应不同的地区和文化
区域:是一个特定的地区和文化,通常认为是语言标志和国家标志通过下划线链接起来,如en_US代表美国英语地区
JSP能够使用request的locale属性显示正确的页面版本
使用request对象获取Locale对象的语法:
java.util.Locale request.getLocale()
Action,Service,Dao
Action:传菜生,服务于客人,客人点什么菜,给那个客户上菜有他来管。管理业务调度和管理跳转
Service:厨师,负责具体的做菜功能,给传菜生提供服务,将菜都给他。管理具体功能
Dao:厨房的小工,与原材料相关的都有他来管,服务于厨师。完成数据的增删改查
解耦:解出组件之间的联系
持久化:将瞬间的数据(内存数据)转换为持久的数据(持久化到数据库中)
时刻记着自己要成为什么样的人!