zoukankan      html  css  js  c++  java
  • 从零开始学Java 第22章 JSP技术简介

    第22章  JSP技术简介
    Internet已经发展成为电子商务、电子政务、应用系统等Web应用的基础设施。基于Web的应用程序称为浏览器/服务器模式,即B/S模式。跟传统的服务器/客户端模式相比,B/S结构的管理和部署都非常简单。要开发Web应用程序,传统的HTML已经不能满足要求,需要一些语言用于动态的处理用户请求。目前,生成动态网页的方法有CGI、ASP、PHP和JSP。其中JSP是基于Java的,本章主要介绍JSP的知识。
    22.1  JSP综述
    JSP是Java Server Page的缩写。它是SUN公司推出的一门基于Java的Web动态页面技术。JSP为创建动态的Web应用程序提供了简介快速的方法,而且继承了Java“一次编写,处处运行”的特性。它既与硬件平台无关,也同操作系统和Web服务器无关。
    22.1.1  什么是JSP技术
    JSP是Java Server Page的缩写。它是SUN公司推出的一门基于Java的Web动态页面技术。JSP为创建动态的Web应用程序提供了简介快速的方法,而且继承了Java“一次编写,处处运行”的特性。它既与硬件平台无关,也同操作系统和Web服务器无关。

    22.1.2  JSP技术和ASP技术比较
    JSP技术和ASP技术有许多相似的地方,二者将页面逻辑设计和页面布局设计分离开。但二者的不同点也有很多,ASP是微软公司独自开发的,通常仅能运行在Windows平台,与微软的服务器IIS搭配使用。对每个客户端请求,ASP解释程序都会产生一个新的线程解释和执行。ASP都采用COM技术实现软件的重利用,但是由于COM技术非常复杂,开发难度比较高。在数据库处理方面,ASP采用ADO技术,通过ODBC来访问数据库。
    JSP的核心技术是Servlet。对于Servlet程序,服务器仅需要加载一次,后续的请求用一个线程处理。当收到第一次请求时,先将其转换为Servlet,然后解释为Java字节码,在由Java虚拟机解释执行,当再次接受到请求的时候,不需要再次转换和编译而直接执行其字节码。软件构建方面,JSP主要采用JavaBean,相比较COM技术简单了很多。
    22.1.3  JSP技术和PHP技术比较
    PHP是一种开放源代码的、跨平台的、服务器端嵌入的动态网页开发技术。PHP通过在不同的平台上重新编译来适应不同平台之间的差异,以此来满足跨平台型的要求。
    JSP技术的跨平台性是基于Java技术的。构建在Java虚拟机平台之上,几乎不需要对其进行改动。JSP技术是采用JDBC来访问数据库的,对于不同的数据库操作只需要改动很少的部分,甚至是不需要修改。表21.1是对这几种技术的比较。
    22.2  JSP技术开发环境
    JSP的运行环境的除了Java环境外还需要有一个服务器,本节使用服务器是Tomcat。本节主要介绍JSP开发环境的搭建,使用的服务器是Tomcat,并用JSP实现了简单的HelloWorld程序。搭配完配置环境后就可以进行JSP的开发了。
    22.2.1  Tomcat的安装及配置
    Tomcat是一个开源项目,它是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器,本书使用的就是该服务器。
    22.2.2  简单的JSP小程序
    本小节通过一个简单的程序来说明JSP的各个元素。
    (1)在C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT(当然前提是Tomcat安装在默认的目录下面,如果安装在别的目录当然不同)下建立Test.jsp。
    22.3  JSP基本语法
    JSP是基于Java的,它的大部分特性跟Java是相同的。所以对于它的基本语法就不再需要介绍,本节将会介绍在JSP的的一些基本语法元素。读者需要仔细的了解这些内容,这些内容在前面是没有介绍过的。
    22.3.1  注释
    在JSP中语法有两种,一种是输出到客户端的注释,另一种是不输出到客户端的注释。
    1.输出到客户端的注释
    2.不输出到客户端的注释

    22.3.2  声明元素
    在JSP中,Java脚本是放在“<%%>”中的,所有的代码都可以放在其中,但是JSP提供了更专业一点的声明格式:
    <%!  声明的内容 %>
    在这个声明块中,可以声明变量,也可以声明方法。
    1.声明变量
    2.声明方法

    22.4  JSP指令元素
    JSP指令元素用来和JSP引擎进行交流。主要用来说明如何处理JSP页面,如错误处理、包含文件以及对文件文件编码的指定。JSP指令元素主要包括page指令和include指令,本节会对这两种指令进行介绍。
    22.4.1  page指令
    page指令用来指定JSP页面的属性,如脚本语言、编码方式、错误处理页面等。
    1.page指令格式
    2.page指令内容

    22.4.2  include指令
    include指令用于将另一个文件的内容添加到当前页面中。添加的文件可以是HTML文件也可以JSP文件或是txt等文件。
    22.5  JSP动作元素
    JSP动作元素是用来控制JSP引擎的行为。例如将请求转到另一个页面,设置页面提交的参数,使用JavaBean等。主要的动作有param、forward、include、useBean、setProperty和getProperty等动作,它们在JSP编程中是非常重要的。
    22.5.1  param动作
    param动作用于为页面重定向提供参数值,主要用于后边涉及到的几个动作。其一般使用的格式如下:
    <jsp: param name=属性名 value=属性值/>
    设置的属性值可以用requset.getParameter(属性名)获得参数的值,例如:
    <jsp: param name=”name” value=”lancy”/>
    可以通过requset.getParameter(name)得到值“lancy“。
    22.5.2  forward动作
    通过forward动作,可以从一个页面转到另一个页面。即结束一个页面而转到另一个网页,它一般的使用格式如下:
    <jsp: forward page=文件名>
    param元素
    </jsp:forward>

    22.5.3  include动作
    include动作用于在动态生成页面的时候,插入另一个文件的内容。
    include指令和include动作都能把另一个文件的内容插入到当前文件中来。但是由于include指令是在将JSP编译成Servlet的时候,所以另一个文件的改动内容不会反映到当前文件中。而include动作是发生在页面请求的时候,它可以把另一个文件的改动内容反映到当前文件中。
    22.5.4  useBean动作
    在JSP中可以使用Java类,在JSP中可以使用它的功能。本小节通过一个简单的程序来演示它的使用。
    22.5.5  setProperty动作
    setProperty用来设定javaBean属性的值,它的使用格式如下:
    <jsp:setProperty name=javaBean名称
    property=属性名
    value=属性值
    />
    name指定使用的JavaBean名,property是JavaBean里属性值,通过value给该属性赋值。
    22.5.6  getProperty动作
    通过getProperty动作可以取出javaBean的属性值,并转换为字符串输出到当前页面。getProperty动作的语法格式如下:
    <jsp:getProperty name=javaBean名称 property=属性名>

    22.6  JSP内建对象
    在JSP页面中,用户可以建立自己的对象。除此之外,JSP规范中还预先定义了一些规范,用户不需要创建就存在的对象,即JSP内建对象。JSP中共有9种内建对象,本节内容会对这9种对象就行简单的介绍。
    22.6.1  request对象
    与request相联系的是HttpServletRequest类。它是触发该页面请求的类,代表了进入页面的数据,提供可与请求相关的全部信息。包括源代码、头信息和cookie等与请求有关的参数,作用范围是一个页面。


    22.6.2  response对象
    response对象与HttpServletResponse相联系。在JSP中response对象一个关键应用就是通过response.addCookie()函数将cookie对象加入response中,通过response.sendRedirect()将响应传递至另一个JSP页面。
    22.6.3  out对象
    out对象是使用PrintWriter类来将信息发送输出到客户端。起作用范围是在页面内,可以利用指令元素page属性来调整缓冲区大小。

    22.6.4  session对象
    session对象用来代表当前会话,是用户和服务器间进行交互的消息。包括了用户的请求,只要服务器能收到用户的请求,这个session就会一直存在,session有一定的生命时间,超过这段时间用户没有发出新的请求,则当前session就会自动关闭。
    session对象主要用来存放会话的信息,如用户名等信息,也可以用它来实现购物车的应用,把用户想要订购的东西放入到session中,保存下来就是。
    22.6.5  application对象
    application对象代表了JSP页面的应用,是ServeletContext类的对象。可以通过如下格式来建立application对象的变量。
    application.setAttribute(变量名,变量值)
    取得application对象的变量值使用如下格式:
    application.getAttribute(变量名)
    22.6.6  config对象
    config对象是ServletConfig类的一个对象。它以初始化参数的形式存储,由JSP页面编译而成的servlet配置参数,由于JSP页面很少和初始化参数打交道,所以该对象很少被使用到。
    22.6.7  pageContext对象
    pageContext对象是javax.servlet.jsp.PageContext类的一个对象。通过该对象可以访问其它的内建对象,如getResponse()能返回当前的response对象,getRequest()能返回当前request对象。也可以建立pageContext对象变量,使用下面的格式进行设置和访问:
    pageContext.setAttribute(变量名,变量值)
    取得application对象的变量值使用如下格式:
    pageContext.getAttribute(变量名)
    21.6.8  page对象
    page对象用来表示JSP页面本身,表示将JSP编译成servlet的一个对象,通过该对象可以调用servlet中的所有方法,其作用相当于Java中的this,该对象很少被用到。
    22.6.9  exception对象
    该对象代表了JSP页面中的异常处理,仅仅在处理错误的页面有效,可以用它来捕获异常并进行处理。跟Java不同的是,该对象实际很少被使用。
    22.7  小结
    本章的内容主要是JSP技术,实际上JSP技术现在已经很少被单独的使用,而是和流行的struts等框架结合使用。但是JSP是这些技术的基础内容,只有掌握了这些基础的知识,才能更深入的了解那些高级的知识并能举一反三,否则学到的东西只能是空中楼阁。作为一门完整的技术,想用短短一章的内容来介绍完全几乎是不可能的事情。但是本书通过一些简单小例子对JSP中的主要的内容进行了简单的介绍,虽然是比较简单,但是已经涵盖了它们的基本功能,读者如果想深入了解JSP技术,可以阅读其它的相关专门的JSP教程。

  • 相关阅读:
    又到一年高考时
    嵌套母版页中的控件访问
    用临时表改善嵌套SQL语句的执行速度
    利用图片进行定位
    CSS样式嵌套
    触摸MVP
    抱SQL SERVER大腿之从巨大表中提炼非重复数据
    用参数来控制用户控件的缓存
    Understand static/global data completely in C++
    VS资源(基础)
  • 原文地址:https://www.cnblogs.com/yoogoo/p/2467290.html
Copyright © 2011-2022 走看看