技术开发 频道

Java EE启示录

  3.Java EE体系结构详述

  OK,现在让我们来逐步了解,Java EE每个部件的作用吧。

  (1)Servlet,JSP

  JSP,Servlet同属“web层”,并都属于“动态网页技术”。所谓“动态网页技术”和传统的“静态网页技术”不一样,传统的“静态网页技术”说白就是把做好的html文件直接上传到服务器并直接供客户浏览,而“动态网页技术”则是每次都根据用户请求,动态生成响应页面并返回。“动态网页技术”的好处不言自明,无论从灵活性,数据保密性…等方面说都是“静态网页”所无法媲美的。但“动态网页技术”也是有缺点的,就是相对较慢,现在的解决方案一般是:把“动态网页”中相对固定的部分做缓存,即所谓“静态页面”。(额.…..“静态网页”和“静态页面”本质上没什么区别,都是静态页面,但思想上却有很大区别。而现在的程序员一般会对“静态”这个词赋予一个新的含义:“缓存”)

  【1】Servlet

  Servlet实际上就是按照Servlet规范编写的一个java类,与传统的命令行启动的Java应用程序不同,Servlet位于Web服务器内部,并由Web服务器加载并调用。

  【2】JSP

  JSP全称是:JavaServer Page。这项技术的推出目的其实很简单,为了弥补Servlet一个很重要的缺陷:“麻烦”。

  先看看Servlet到底什么地方让人觉得麻烦,下面是一个Servlet处理Get请求例子:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println(
"处理GET请求ing......");
    response.setContentType(
"text/html;charset=GB2312");
    PrintWriter out
= response.getWriter();
    out.println(
"<HTML>");  // 静态内容
    out.println("<BODY>");  // 静态内容
    out.println("Hyddd's Servlet Demo " + new Date().toString());  // 动态内容
    out.println("</BODY>"); // 静态内容
    out.println("</HTML>"); // 静态内容
}

  从上面这个例子,相信大家已经发现问题了,Servlet主要是把动态内容混合到静态内容中以产生html,这导致Servlet代码中将会输出大量的html标识,哇,地狱,简直就是地狱,同时,这也非常不利于程序员和UI美工的配合(不要指望美工人员会和你一起写html标识)。为了解决这些问题,JSP诞生了。

  JSP是一种建立在Servlet规范之上的动态网页技术,通常做法是:在html页面中嵌入JSP标记和脚本代码。JSP把静态内容和动态内容的分离,实现了内容和表示的分离。

  【3】Servlet与JSP的关系

  上图描述得比较清楚了,JSP文件先是转换为Servlet类,然后编译,并启动Servlet实例响应客户端请求。为什么说JSP是建立在Servlet上的动态网页技术,从这里可以看出来。

  Web层主要就是JSP以及Sevlet这两项技术。

0
相关文章