JSP从零开始学(视频教学版)
上QQ阅读APP看书,第一时间看更新

1.4 用JSP进行网页开发

上一节简单介绍了Web开发的一些背景知识,读者已经了解了Web访问的基本原理,HTTP超文本传输协议,静态网页与动态网页的区别,以及主流的浏览器和Web服务器,本节将介绍JSP的基本概念、执行过程等,让读者了解JSP是什么,能做些什么。

1.4.1 JSP与其他语言相比的优势

JSP可以看作是Java Servlet的一种扩展,JSP在使用前必须被编译为Servlet,也就是Java类,然后被调用执行,Servlet所产生的Web页面是不能包含在HTML标签中的,因为它离不开Java类文件的支持。随着学习的深入,使用JSP将带给用户很多明显的优点:

(1)开发简单方便

在JSP中的编辑跟编写HTML文件基本一样,在处理表单方面极为方便。设置HTTP报头,JSP同样提供了丰富的方法。使得JSP开发者在编写通用功能时很便捷,就能有更多的时间花费在业务逻辑上。

(2)跨平台

Java本身就有跨平台的特性,因此JSP程序可以在支持Java的平台上开发运行。显然这对平台移植极其有利。当JSP在更换服务平台时,如若不涉及数据库等相关操作,几乎可以不做任何变动就能完成服务平台的迁移。当需要更换Web服务器时,JSP同样可以做到不修改或者少量修改就能在新的Web服务器中编译、运行。

(3)高效率和高性能

上文提到过,JSP可以是Servlet的扩展,因此Java虚拟机为每一个请求创建一个单独的线程,而不是进程,如此系统能很快地处理请求。同时JSP只会被编译一次,只是在首次的加载时需要编译,这样加快了系统的响应速率。当一个请求处理结束之后,相关的JSP映射的Java类并不会从内存中删除,会被保留在内存中,当下次同样的请求发生时,系统会提供更快的响应速度。

(4)低成本

众所周知Java是开源的开发语言,JSP也是基于Java的开源环境开发的动态网页技术,所以这就省去了商业的付费项目。再有,开发者可以从众多的Java IDE中选择一款适合自己的开发工具来进行项目研发,当然了,也可以直接用文本编辑器直接编写,只是这样比较耗时而且易出错。还有许多的商业软件可以使用,但是通常来说使用JSP开发总成本比采用其他技术要低廉些。

综上所述,采用JSP动态网页技术是目前Web开发者的最佳选择。

1.4.2 JSP网页的执行顺序

在编写JSP程序时,要了解它的执行顺序,这样对于后续的学习会有很大的帮助。JSP程序的执行过程大致如下。

首先,客户端向Web服务器提出请求,然后JSP引擎负责将页面转化为Servlet,此Servlet经过虚拟机编译生成类文件,然后再把类文件加载到内存中执行。最后,由服务器将处理结果返回给客户端。整个流程如图1.3所示。

图1.3 JSP执行顺序

JSP页面代码会被编译成Servlet代码,所以从执行效率上说肯定是没有Servlet快的,但并不是每一次都需要编译JSP页面。当JSP第一次被编译成类文件后,重复调用该JSP页面时,JSP引擎发现该JSP页面没有被改动过,那么就会直接使用编译后的类文件而不会再次编译成新的Servlet。当然,如果页面被修改过,则需要重新加载编译。

1.4.3 实例:第一个Hello JSP网页

本章因为只是熟悉网页的基本机构和浏览器浏览网页的原理,还没有搭建JSP开发的基础环境,所以这里只给一个简单的例子,读者先仔细看看,等搭建完环境后,再来分析具体每段代码的功能。

下面是JSP网页的一个简单例子,功能是循环输出1~10的输出结果,代码如下:

      -----------------------Index.jsp--------------------------
      01   <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
      02   <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      03   <html>
      04    <head>
      05      <title>JSP简单例子</title>
      06    </head>
      07    <body>
      08      <%
      09          int count=0;
      10          for(int i=1; i<10; i++)
      11          {
      12            count+=i;
      13          }
      14         out.print("1到10的相加结果:"+count);
      15       %>
      16    </body>
      17   </html

提示

第1行中,pageEncoding标签可以设定字符类型,在工作中这一行会自动生成。第8~15行为Java代码。

该程序主要作用是利用JSP输出1~10的和,其中代码是由简单的HTML代码和JSP表达式构成,JSP表达式中是一段Java程序段。