动态页面开发基础

动态页面开发基础

1.1  动态网页基础

1.1.1 为什么需要动态网页

静态网页的内容是固定的,不能提供个性化和定制化的服务,因此,动态网页技术逐渐发展并得到广泛的应用。

1.1.2 什么是动态网页

动态网页是指在服务器端运行的使用程序语言设计的交互式网页,它们会根据某种条件的变化,返回不同的网页内容。(例如:当登录各种论坛时,作为普通用户,只能看到帖子的浏览页面,但是,当论坛管理员登录时,同样的页面就会呈现“删除”“修改”等多种操作提示。另外,在不同的时间登录论坛,观察到的帖子列表也是不同的)。

动态网页需要使用服务器端脚本语言。(例如:将要学习的JSP技术,其使用的是Java脚本语言。当用户访问动态页面时,服务器端执行脚本语言,并根据处理结果动态生成页面内容)。

动态网页的优势?

交互性:即网页会根据用户的要求和选择而动态改变和显示内容。(例如,访问者在页面中填写表单信息并提交,服务器经过处理将信息自动存储到后台数据库中,并转到相应的提示页面。因此,采用动态网页技术的网站可以实现与用户的交互功能,如用户注册,用户登录,信息查询,在线调查等)。

自动跟新:即无须改变页面代码,便会自动生成新的页面内容,可以大大节省工作量。(例如:在论坛中成功发布信息后,就可以在页面上看到新发布的帖子列表)。

随机性:即当不同的时间、不同的人访问同一网址时会产生不同的页面效果。(例如:普通用户和管理员登录论坛时所看到的页面内容是不同的)。

1.1.3 如何实现动态网页

动态网页需要使用服务器端的脚本语言,如使用Java脚本语言的JSP技术。

JSP技术为核心。结合其他相关知识,开发Web应用系统。

1.1.4 为什么学习B/S架构技术

C/SClient/sever,客户端/服务器端)架构的系统,其分为客户端和服务器两层,用户在本地安装客户端软件,通过网络与服务器端相互通信。最典型的应用就是腾讯的QQ聊天软件,用户在客户机安装QQ软件,实现与服务器之间的通信。

如果要让其他客户机运行自己开发的应用软件,就需要在这些客户机上分别安装该应用软件。而且,每次对应用软件做微小的改动,都需要对客户端软件升级。

应用系统是基于B/C架构进行开发的,只需要在客户端安装浏览器软件,就可以在Internet范围内实现系统的访问及信息共享。相对于C/S架构应用程序,从维护效率上得到了极大的提高,而且极少受客户端应用的限制,只需能够链接Internet就能实现系统的访问。

1.1.5 什么是B/S架构

随着Internet的普及及大规模应用,受制于C/S架构的应用程序存在很多缺点,B/SBrowser/Sever,浏览器/服务器)架构也随之应运而生,基于B/S架构的Web应用程序由于不再受安装客户端的限制,访问极其简单,因此越来越多地被企业采用。

B/S架构的出现不是对C/S架构的否定,而是对C/S架构的一种变化或者改进。

B/S架构下,应用系统完全放在应用服务器上,并通过应运服务器同数据库服务器进行通讯,系统界面通过浏览器展现。

对于用户而言,只需要能链接Internet,安装完成浏览器就可以访问系统了。对于程序开发,维护人员来说,无论用户身处何地,所要做的就是对服务器的代码进行更新和维护。

1.1.6 B/S架构的工作原理

B/C架构的工作流程:

(1) 浏览器接受用户大的输入。例如:用户在浏览器窗口中输入用户名,密码,单机“登录”按钮。

(2) 浏览器向服务器端发送请求。浏览器把请求消息(包含用户名、密码等信息)发送到服务器端,等待服务器端的响应。

(3) 数据处理。服务器端通常使用服务器端脚本语言(Java)进行数据库访问、查询数据,并输出查询结果。

(4) 发送响应。服务器向浏览器发送响应消息(一般是动态生成的HTML页面),并由浏览器解释HTML文件,呈现结果界面。

1.1.7 什么是URL

URL(Uniform Resource Locator)的意思是统一资源定位符,是用于完整地描述Internet上网页和其他资源的地址的一种标识方法。简单地说,URL就是常说的“网址”(http://www.baidu.com)

1.1.8 URL的组成

URL地址是来“告诉”浏览器要访问的资源地址。

组成结构:

(1) 协议。这里使用的是HTTP(HyperText Transfer Protocol)协议,即超文本传输协议,该协议支持简单的请求和响应会话,当用户发送一个HTTP请求时,服务器就会用一个HTTP响应做出应答,对于Web服务器,最常用的是HTTP协议。

(2) 服务器域名或IP。在讲解B/S架构时,介绍了Web应用的运行是基于Web服务器的,即需要访问Web服务器的服务,由服务器收集用户的请求,经过处理再返回响应到浏览器端,localhost就代表服务器的地址,而在开发阶段通常以开发机作为服务器,因此服务器的地址就可以使用localhost进行标识,当然也可以使用127.0.0.1或者用实际的IP地址替代。

(3) 端口号。端口是服务器用于内外部通信的通道,当从外部访问服务器时就需要通过指定的通道来访问。不同的协议有着不同的默认开发端口,开发人员可以根据实际进行修改。

(在投入正常运行的商业应用中,为了避免记忆复杂的IP地址,通常使用域名来代替。例如,当前百度的IP地址是202.108.22.5.但常常使用它的域名baidu.com

(4) 路径。包含两层含义。以news/index.jsp为例。news代表的是Web应用对外发布时对应的上下文路径,即Web应用的根目录,而index.jsp代表具体的资源,存放在该网站的某个路径下。

URL组成路径:

第一部分:使用的传输协议,如最常用的HTTP协议(目前WWW中应用最广的协议)

第二部分:主机IP地址(有时包含端口号,默认端口号是80),指请求的服务器的IP地址,这个地址是唯一的,也可以使用域名来代替IP地址发送请求。

第三部分:路径(包含请求的资源),由零或多个“/”隔开的字符串表示,一般用来表示服务器上的一个目录或文件地址等。而请求的资源指请求内容的名字,可以是一个HTML页面,也可以是一个图像等服务器能提供的资源。

提示:第一部分和第二部分之间用://”隔开,第二部分和第三部分用“/”隔开。其中,第一部分和第二部分是不可缺少的,第三部分有时可以省略。当第三部分省略时,大多数服务器会访问系统默认的欢迎页面。

1.2  部署简单的Web应用

1.2.1 Tomcat服务器

Tomcat是一个免费的开源的Web容器,它是Apache基金会的Jakarta项目中的一个核心项目。Tomcat作为JSP的容器,是在Sun公司(现被Oracle收购)JSWDK(Java Server Web Development Kit)基础上发展起来的JSP标准实现,随着Web应用的发展,Tomcat被越来越多地应用于商业用途。

说明:Web容器是一种服务程序,为相关技术(JSP)提供运行支持。Web容器在服务器上运行时会监听特定端口,为从客户发出的针对该端口的请求提供相应的处理服务。

1.2.2 Tomcat的获取与安装

Tomcat的获取

可以直接从Apache官方网站上(http://tomcat.apache.org/)获取Tomcat的最新版本,进行免费下载。Tomcat提供了安装版本的文件,可以根据需要进行下载。

安装Tomcat前必须确保在系统中已经正确安装了Java运行环境,然后安装Tomcat

Tomcat的安装

Tomcat的安装比较简单,操作步骤清晰。需要注意的是,解压缩版本在安装完毕后还要设计CATALINA_HOME环境变量,设置的方法与设置Java环境变量的步骤类似。

(1) 添加环境变量,名称为CATALINA_HOME

(2) 设置值为Tomcat的安装目录。

1.2.3 Tomcat的目录结构

Tomcat安装完毕后,其安装目录下存在若干个子目录,包括binconfliblogstempwebappswork、这些子目录分别用于存放不同作用的文件。

注意:Tomcat在不同版本之间的目录结构略有区别。

Tomcat的目录结构

目录

说明

/bin

存放各种平台下用于启动和停止Tomcat的脚本文件

/conf

存放Tomcat服务器的各种配置文件

/lib

存放Tomcat服务器所需的各种JAR文件

/logs

存放Tomcat的日志文件

/temp

Tomcat运行时用于存放临时文件

/webapps

Web应用的发布目录

/work

Tomcat把由JSP生成的Servlet存放于此目录下

 

1.2.4 Tomcat的启动与停止

Tomcat安装版本的启动与停止

(1)通过服务实现启动或停止Tomcat服务

通过执行“控制面板”—》“管理工具”—》“服务”命令,在“服务”窗口中右击“Apache Tomcat 7.0”图标,选择“启动”或“停止”选项。

(2)通过Tomcat菜单中的Monitor Tomcat工具启动或停止Tomcat服务。

通过执行“所有程序”—》“Apache Tomcat 7.0”—》“Monitor Tomcat”—》“General”命令,单击“Start”或“Stop”按钮。

(3) Tomcat解压缩版本的启动与停止

进入Tomcat在本地安装目录下的子目录bin,进行“startup.bat”启动Tomcat,运行“shutdown.bat”关闭Tomcat

Tomcat启动是否成功,可以通过访问浏览器的方法进行检测。在浏览器中输入“http://localhost:8080/”进行检测,一旦Tomcat启动成功,用户将会在浏览器中看到Tomcat的欢迎页面。

1.2.5 Tomcat端口号的配置

通过端口号可以访问应用程序,一旦这个端口号被占用,将无法再启动Tomcat访问,此时只需要对Tomcat服务器的配置文件进行修改,就可以实现端口号的变更。

操作步骤:

(1) Tomcat目录结构下找到其子目录conf

(2) conf目录中打开server.xml文件。

(3) 在打开的文件中,找到<Connection>节点,然后修改端口号。

(4) 保存设置。

1.2.6 Web应用的目录结构

JavaWeb应用是由多种类型的文件构成,这其中包括我们所编写的Java类,JSP页面,各种静态资源,以及发布的描述文件。这些应用目录的存放都是有一定限制和规定的。

目录

说明

/

Web应用的根目录,该目录下的所有文件对客户端都可以访问,包括JSPHTMLJSCSS、图片等

/WEB-INF

存放应用程序所使用的各种资源,该目录及其子目录对客户端都是不可以访问的,其中包括web.xml(部署文件符)

/WEB-INF/classes

存放应用的所有class文件

/WEB-INF/lib

存放Web应用使用的JAR文件

经验:

Tomcat的运行过程中,Tomcat类加载器会首先加载classes目录下的class文件,然后再加载lib目录下的类。需要注意的是,如果在两个目录下存在同名的类,那么classes目录下的类具有优先权。

了解了Web应用的目录结构,就可以根据项目需要在根目录下建立不同资源文件的子目录,以便对应用程序的代码进行管理。

每个Java Web应用都有一个核心文件,即Web.xml,此文件必须保存在WEB-INF目录下,它控制整个应用的行为方式和方法,其中的一些重要配置将会在课程中陆续进行介绍。

1.2.7 创建、部署和发布项目

按照正确的项目开发程序,在进行编码前首先要确定目录结构,确定各类资源文件的存放位置,然后是编码阶段。这样做的目的是方便日后的代码开发和维护。具体步骤如下:

(1) Tomcat目录的webapps子目录下创建应用文件目录。

Tomcat目录结构中的webapps目录用于进行Web项目的发布,在webapps目录中创建Web项目的具体步骤如下。

①找到Tomcat的安装目录,打开webapps子目录。

②在webapps目录下创建一个子目录,命名为news

③在news目录下,按照Web应用的目录结构分别创建对应的子目录,此时/WEB-INF/classes/WEB-INF/lib两个目录可以为空。

④创建一个web.xml文件,添加到/WEB-INF目录下,暂时不进行任何配置。

经验:

在实际工作中,并不一定要通过新建的方式获得web.xml文件,简单的做法是将其他Web应用中的web.xml文件复制过来,然后进行修改。

(2) 编写Web应用的代码

制作一个HTML页面,将其发布在Tomcat中,通过浏览器进行访问。在news目录下完成一个简单的HTML页面制作。代码编写完毕后,将文件保存为index.html

(3)启动Tomcat服务,打开浏览器并输入“http://localhost:8080/news/index.html”进行访问。

1.2.8 配置起始访问页面

如果希望用户在打开浏览器访问应用根路径(http://localhost:8080/news)时自动进入首页面(index.html)而不必输入完整页面地址,方便用户访问,这时就需要在web.xml文件中进行相应的配置,修改web.xml文件设置起始访问页面。保存修改的配置信息,打开浏览器检测是否配置成功。在浏览器中输入访问地址时,直接访问Web应用的根路径(http://localhost:8080/news),此时Tomcat会自动读取在Web.xml文件中的配置信息,然后在浏览器中显示欢迎页面。

1.3 JSP简介

静态页面的显示内容是保持不变的,静态网页既不能提供个性化和定制化的服务,又不利于系统的扩展。而使用动态页面,不仅可以动态地输出页面内容,同用户进行交互,而且可以对网页内容进行在线更新。在B/S架构中浏览器端与服务器端采用请求/响应模式进行交互。实现动态网页地关键在于运行在应用服务器端地服务器端脚本语言,可以根据客户端的不同请求生成相应的HTML页面,然后应用服务器再把这个HTML页面返回给客户端的浏览器作为响应。JSP是由Sun公司倡导、许多公司共同参与,一同建立起来的一种动态网页技术标准。它在动态网页开发中有着强大而特殊的功能,并具有跨平台性、易维护性、易管理性等优点。

 

1.4 JSP页面组成

JSP是通过在HTML中嵌入java脚本语言来响应页面动态请求的,除了HTML标记和Java代码,JSP中还包含其他一些元素,如果把它们细分,则JSP页面由静态内容,指令,表达式,小脚本,声明,标准动作,注释等元素构成。使用JSP实现动态网页开发,要熟悉JSP页面中包含什么元素,不同元素具备什么功能等。

1.4.1 静态内容

静态内容是JSP页面中的静态文本,其基本是HTML文本,与JavaJSP语法无关。

1.4.2 JSP指令元素

JSP指令元素的作用是通过设置指令中的属性,在JSP运行时,控制JSP页面的某些特性。

JSP指令以“<%@”开始,以“%>”结束

page指令是针对当前页面进行设置的一种指令,通常位于JSP页面的顶端在一个JSP页面中可以包含多个page指令。需要注意的是page指令只对当前页面有效。

page指令的语法格式如下。

<%@ page 属性1=”属性值” 属性2=属性值1,属性值2” ······属性n=”属性值”%>

如果没有对page指令中的某些属性进行设置,JSP容器将使用默认指令属性值。如果需要对page指令中的一个属性设置多个属性值,其间以逗号相互隔开。

page指令常用属性

属性

描述

language

指定JSP页面使用的脚本语言,默认为“java

import

通过该属性引用脚本语言中使用到的类文件

contentType

用于指定MIME类型和JSP页面回应时所采用的字符编码方式,默认为“text/html;charset=ISO-8859-1

1.4.3 JSP脚本元素

小脚本(scriptlet)、表达式(expression)、声明(declaeation)统称为小脚本元素

  1. 什么是小脚本?

小脚本可以包含任意的Java片段,形式比较灵活,通过在JSP页面中编写小脚本可以执行复杂的操作和业务处理。编写方法是将Java程序片段插入<% %>标记中。

  1. 什么是表达式?

表达式是对数据的表示,系统将其作为一个值进行计算和显示。

例如:<%=java变量或表达式%>

Web容器遇到表达式时,会先计算嵌入的表达式值或着变量值,然后计算结果输出到页面中。

注意:在Java语法的规定中,每一条语句末尾必须使用分号代表结束。而在JSP中使用表达式输出数据时,不能在表达式结尾处添加分号。

  1. JSP声明

<%! Declaration;[ Declaration;]······%>

1.4.4 JSP中的注释

HTML注释:<!——注释内容——>

JSP注释:<%——注释内容——%>

JSP脚本中使用注释:<%   //单行注释  %><%  /*多行注释*/   %>

1.1 JSP的执行过程

(1) 翻译阶段:当Web容器接收到JSP请求时,首先会对JSP文件进行翻译,将编译好的JSP文件通过JSP容器转换成可识别的Java源代码。

(2) 编译阶段:经过翻译后的JSP文件相当于编写好的Java源文件,此时仅有Java源文件时不够的,必须将Java源文件编译成可执行的字节码文件,所以Web容器处理JSP请求的第二阶段就是编译。

(3) 执行阶段:经过翻译和编译两个阶段,生成了可执行的二进制字节码文件,此时进入执行阶段。当执行结束后,把生成的结果返回客户端浏览器显示。

posted @ 2021-09-27 10:51  愿归零  阅读(509)  评论(0)    收藏  举报