1. 简介
JavaBean是Java的一个类,如下图所示:
在JSP+JavaBean整合的开发模式中,JavaBean简化了JSP页面,在JSP页面中只包含了HTML代码、CSS代码等,但JSP页面可以引用JavaBean组件来完成某一业务逻辑。如:字符串处理和数据库操作等。
JavaBean有如下规范:
- 一个公共默认的无参构造方法
- set,get方法访问
- 可序列化的
public class User implements Serializable{
private String name;
private String passwd;
public User(){...}
//此处省略set和get方法
}
2 JavaBean应用
2.1 获取和赋值
使用<jsp:useBean>标签实例化JavaBean对象,<jsp:getProperty>获取JavaBean中的属性信息,<jsp:setProperty>对JavaBean的属性进行赋值。
<jsp:useBean id="user" class="com.example.User"></jsp:useBean>
<!--get method-->
<jsp:getProperty property="name" name="user"/>
<!--set method-->
<jsp:getProperty property="name" name="user" value="peter"/>
Notice: jsp中,也可以通过嵌入java代码来对JavaBean进行操作,但是为了让代码看起来不混乱,应尽量使用标签。
2.2 设置生命周期
在jsp页面中,JavaBean的生命周期可以自行设置,分别为:page, request, session, application. 默认情况下,JavaBean作用于page范围内。
<jsp:useBean id="user" class="com.example.User" scope="page"></jsp:useBean>
生命周期 | 范围 |
---|---|
Page | 当前页面 |
Request | 从http请求到服务器处理结束,返回响应的整个过程。一次请求中如果跳转多个页面,则这些页面都可以使用该变量 |
Session | 会话作用域,首次访问至会话超时或关闭 |
Application | 整个应用启动至关闭 |
2.3 解决中文乱码的JavaBean
创建对字符编码进行处理的JavaBean,名称为CharacterEncoding.
public class CharacterEncoding{
public CharacterEncoding(){}
public String toString(String str){
String text="";
if(str!=null || !"".equals(str)){
try{
text = new String(str.getBytes("ISO-8859- 1"),"UTF-8"); //统一编码制式,实际中选择合适的编码制式
}catch(){
e.printStackTrace();
}
}
}
}
在产生中文乱码的jsp页面中使用该JavaBean.
<jsp:useBean id="news" class="com.example.News"></jsp:useBean>
<jsp:useBean id="encoding" class="com.example.CharacterEncoding"></jsp:useBean>
<jsp:setProperty property="*" name="news"/>
<%= encoding.toString(news.getTitle()) %>
3 参考书籍
- JavaWeb从入门到精通