Java Web开发模式一(JSP+JavaBean)
Java Web开发方案有多种可供选择,例如:JSP+JAVABEAN开发模式,JSP+Servlet+JavaBean开发模式,Struts开发方案,Spring开发方案等,本文讲解比较经典的JSP+JAVABEAN开发模式。
JSP+JAVABEAN开发模式:
特点:该模式将业务逻辑与页面表现进行分离,在一定程度上增加了程序的可调试性和维护性。
缺点:页面将控制与显示集于一身。
结论:简单,适合小型项目的快速构建与运行。
一、JavaBean概述
JavaBean 是一种JAVA语言写成的可重用组件。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。
JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean,本文讲解用来封装数据的“值JavaBean”。
JavaBean本质是符合Java语法的类,只不过在此基础上,对它还有更为细致的要求。在Web应用程序中使用的JavaBean,一般要满足如下要求:
- 必须有一个访问权限为public的无参的构造方法
- 属性的访问权限为private
- 属性类型必须是String或者基本类型
- 属性名和类型是由获取方法(getter)和设置方法(setter)推导而出
- 必须按照命名约定规则来命名权限为public的获取方法和设置方法(首字母必须小写)
- 设置方法的参数类型和获取方法的参数类型必须一样
下面在NetBeans IDE中,编写一个名为Student的JavaBean,用来封装学号和学生姓名信息,操作如下:
在Java Web项目中新建Student.java类,编写代码如下:
public class Student {
String sno="";
String sname="";
}
接下来在代码处点击右键,依次选择:重构——封装字段——全选——重构,IDE会自动生成代码如下:
public class Student {
private String sno="";
private String sname="";
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
}
二、在JSP页面使用JavaBean的例子
在JSP页面上使用任何对象都是这样一个过程,实例化对象——初始化对象——使用该对象,使用JavaWeb也不例外,只不过按照JSP设计的意图,力求在整个过程中尽可能避免使用java脚本,而代之以标准的动作标记。下面描述在JSP页面上使用JavaBean的两种方式:通过java脚本语言方式和使用标准动作标记的方式。
1、通过Java脚本使用JavaBean
首先按照前文方法在Java web项目中新建Student.java类,再新建JSP页面useScriptlet.jsp,在jsp页面上实现“实例化对象——初始化对象——输出该对象属性信息”的业务逻辑,代码如下:
<%@ page import="example.Student" %>
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<% Student s=new Student();%>
<% s.setSno%>
<% s.setSname("晚秋星辰");%>
<! --输出学生信息-- >
<%=s.getSno()%>
<%=s.getSname()%>
</body>
</html>
运行结果:
2、使用标准动作标记使用JavaBean
新建JSP页面useScriptTag.jsp,通过使用 <jsp:useBean>,<jsp:setProperty>,<jsp:getProperty>分别实现实例化对象、初始化对象和输出对象信息,代码如下:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<jsp:useBean id="s" class="example.Student" scope="page"/>
<jsp:setProperty name="s" property="sno" value="scdn"/>
<jsp:setProperty name="s" property="sname" value="晚秋星辰"/>
<jsp:getProperty name="s" property="sno"/>
<jsp:getProperty name="s" property="sname"/>
</body>
</html>
运行结果: