Java Web技术的发展经历了如下几个阶段:
l Servlet
技术;
l JSP
技术;
l
模型1
:JSP+JavaBean
l
模型2
:JSP+JavaBean+Servlet
l
框架
l
可视化开发
下面分别进行介绍。
Servlet技术阶段
Servlet
是Java
技术中最早的Web
解决方案,Servlet
与普通Java
类的编写非常类似。使用Servlet
技术,页面中的所有信息需要通过输出语句来生成。下面的代码(部分代码)生成的页面的内容就是“HelloWorld
!”。
public void doGet(HttpServletRequest request,HttpServletResponse)
throws IOException,ServletException
{
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>Hello World
!
</title></head>");
out.println("<body>");
out.println("<p>Hello World
!
</p>");
out.println("</body></html>");
}
如果采用HTML
语言直接生成相同功能的界面,将非常简单。正因为此,Java
推出了JSP
技术,JSP
可以有效解决Servlet
生成页面比较困难的问题。
JSP技术阶段
JSP
技术的目标是快速开发网站,在网页中嵌入Java
代码完成网站。例如下面的代码就是1
个简单的JSP
例子:
<html>
<head><title>
测试</title></head>
<body>
第一阶段<% String str = “test” ; out.println(str); %>
</body>
</html>
如果希望进行一些处理,直接在界面中使用<% %>
脚本标识嵌入Java
代码。如果要开发具有大量网页内容的网站效率比较高,可以先使用网页编辑工具编写网页,然后在网页中嵌入处理代码即可。但是缺点是:网站的输入输出、处理、控制全部夹杂在一起,维护不方便。当网站中需要进行大量的处理代码的时候,JSP
文件将很难维护,并且代码也不容易共享。
因为JSP
在编写网页方面具有优势,而编写处理代码存在很多问题,所以产生了模型1
,把JSP
中的处理代码使用JavaBean
来实现。
模型1:JSP+JavaBean阶段
JavaBean
是使用Java
语言编写的组件,简单的理解,可以认为JavaBean
是比较特殊的Java
类。JavaBean
会把网站中处理过程进行封装,这样的结果就是在JSP
文件中仅仅是输入输出功能和控制功能,处理过程放在JavaBean
中,然后在JSP
中调用JavaBean
的功能,JSP
提供了若干标签支持调用。下面的例子展示了这种模型。
JavaBean
文件:
package test;
public class PrintMessage
{
public String print()
{
return “
使用JavaBean
返回信息”;
}
}
页面文件:
<%@ page import=”test.*” %>
<jsp:useBean id=”printMessage” class=”test.PrintMessage” scope=”request”/>
<html>
<head><title>
测试</title></head>
<body>
第一阶段<% out.print(printMessage.print()); %>
</body>
</html>
这种模型的优点是:业务处理由JavaBean
完成,减少了页面中的代码。缺点是:页面中仍然有用于控制的代码。
模型2:JSP+JavaBean+Servlet阶段
在模型2
中,把JSP
中的控制功能提取出来使用Servlet
实现。这样,JavaBean
强调的是功能,Servlet
主要用于控制。从完成的功能来说,JSP
和Servlet
是相同的,但是JSP
主要以标签(HTML
标签和JSP
标签)为主,Servlet
是Java
代码。JavaBean
和Servlet
都是Java
代码,但是Servlet
能够接收请求,用户能够直接访问,JavaBean
不能接收请求,需要由JSP
或者Servlet
调用。
这种模型的特点:JSP
完成输入和输出,主要使用HTML
标签和JSP
标签。Servlet
主要完成控制,接收请求,调用业务处理(JavaBean
),根据调用的结果找到一个JSP
页面对用户进行响应。JavaBean
完成所有的处理过程。
这种方式实际上是MVC
模式的采用。MVC
模式由3
部分组成:M
表示模型(模拟现实事物),主要用于处理过程;V
表示视图,实际上就是输入和输出功能;C
表示控制器,主要控制程序的流程。
框架阶段
随着Java Web
应用技术的发展,出现了大量的框架包括Web
层框架和持久层框架。
Web
层框架通常可以提供一些Web
应用的通用功能,用户在编写应用的时候只需要关注自己比较特殊的东西即可。例如,Servlet
作为控制器完成的功能包括:获取用户的输入信息;对信息进行验证、转换;使用这些信息调用业务逻辑(JavaBean
的方法);然后选择界面对用户响应。如果把获取的信息设置成变量、要进行的验证和转换进行配置、要调用的方法进行配置、要响应的界面进行配置,这样Servlet
就可以通用了。在本书的第二部分对流行的Web
层框架Struts2
和JSF
进行了介绍,并自己实现了1
个简单的框架。
持久层框架,主要是解决数据库访问问题,同样是把数据库访问中通用的内容提取出来,在编写应用的时候只编写特殊的东西。例如,要把用户信息和图书信息添加到数据库中,采用JDBC
技术,编写的两段代码的区别是表名不同,列与属性的对应关系不同。持久层框架就可以完成这个添加工程,用户只需要提供表名并且提供列与属性的对应关系。书中第二部分持久性部分将对持久层框架进行介绍。
可视化开发
随着集成开发环境对于Web
应用支持的增强,可视化Web
应用开发(JSF
技术)应该是未来的发展趋势。这种方式的开发就像以前在C++Builder
或者VB
中开发应用一样方便。
上一讲:
第七讲 Servlet运行原理
下一讲:第九讲 Web应用配置