Javaweb程序设计教案_第1页
Javaweb程序设计教案_第2页
Javaweb程序设计教案_第3页
Javaweb程序设计教案_第4页
Javaweb程序设计教案_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课题:第一章JavaWeb概述

【教学目的】

驾驭JSP运行环境的搭建,能进展简洁的JSP程序编写与运行。

【教学重点】

Eclipse+Dreamweaver工具、工程的导入、导出、发布打包

【教学难点】

Eclipse+Dreamweaver工具、工程的导入、导出、发布打包

【教学方法】讲解、探讨

【教学地点】教学楼、综合楼

【课时支配】4课时

【教学过程】

1.1配置JSP运行环境

1.1.1任务描绘与实现正确安装Tomcat效劳器,并显示其欢送页面。如图1T所示。

图1-1运用Tomcat欢送页面

实现过程:

1.安装JDK

安装Tomcat效劳器前首先安装JDK(JavaDevelopmentKit),其包括了Java运行环境,Java

工具和Java根底的类库。目前,供给下载的最新版本为JDK7。读者可到官方网站下载,下载

地址为。

下载后双击安装,画面如图1-2所示,按“下一步”操作直到完成。

Java(Tl)SEDevelopmentKit7一设置

£Java

ORACLE

欢迎使用Java(IW)SEDevelopmentKit7安装向导

此向导将引导您完成JavaSEDevelopmentKit7的安装过程。

j-产步⑼取消

图1-2JDK安装界面

2.安装Tomcat

Tomcal官方网站下载地址:。本书采纳的版本是Tomcat-7.0.20。

下载后,双击安装,如图-3所示。点击Next到第一步,进展安装组件选择,如图14所

示。第二步选择途径,根据系统默认途径即可。第三步为配置Tomcat端口信息和账号信息,

如图1-5所示,根据实际配置即可.第四步为选择JDK的安装途径,如图1-6所示,选择在之前

第1步操作中安装的JDK所在的位置。之后单击“Next”开场安装。安装完毕后,提示安装完

成,如图如7所示。单击“Finish”完成Tomcat的安装。

安装完成之后,在程序菜单中可以看到Tomcat的选项,如图1-8所示。点击MonitorTomcat,

可在任务栏看到Tomcat的效劳图标,如图「9所示,双击该图标,弹出如图1T0所示的Tomcat

启动界面,在此界面中可以选择启动或停顿Tomcat效劳。

启动Tomcat后,在地址栏中输入,若出现图1T的显示效果,则Tomcat已正常安装并运行。

图1-3Tomcat安装:欢送界面

1.1.2新学问点一一JSP概述、Tomcat书目构造、虚拟书目配置

1.1.2.1JSP概述

1.动态网页

动态网页是在效劳器运行的程序或者网页,它们会随不同用户、不同时间、不同需求,

返回不同的内容。如:当登录到论坛时,作为论坛管理员身份,就可以看到''删除"、“修

改”等操作;作为论坛一般用户身份,则只能看到帖子的阅读页面。

动态网页会运用效劳器端脚本语言,比方目前流行的JSP等,访问动态网页时会获得最新

内容显示,这就是为什么不同时间访问网页显示内容会发生变更的缘由。

动态网页的特点:

交互性好:即网页会根据用户需求和选择而动态变更和响应。例如用户在网页中填写表

单信息并提交,效劳器经过处理将信息自动存储到后台数据库中,并转到相应提示页面。因

此,采纳动态网页技术的网站可以实现与用户的交互功能,如用户注册、用户登录、信息查

询等。

自动更新:对于网页设计者来说,无需每次修改页面内容,只需在后台添加或者删除要

显示的信息即可。例如,在论坛发布信息,后台效劳器将自动生成新的网页内容。

2.B/S技术

运用动态网页技术开发网站事实上是B/S技术的一种应用,因此,要更好地理解动态网页

的开发原理,首先需要理解B/S技术的一些根本概念。

B/S技术跟C/S技术的区分:

C/S(客户机/效劳器)构造分为客户机和效劳器两层,一般将应用软件安装在客户机端,

通过网络与效劳器互相通信,实现交互,如QQ、飞信、MSN等软件。对于这类系统的构造如图

1T1所示。

对于C/S构造的应用软件,若要在客户机运行,就必需在先安装,而且每次对系统做了微小

的改动,全部客户机的应用软件都需要更新。

3.JSP简介

(1)什么是JSP

JSP(JavaServerPages)是由SunMicrosystems公司提倡、很多公司参加一起建立的一种动

态网页技术标准。它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)

和JSP标记(tag),从而形成JSP文件(*.jsp)。Web效劳器在遇到访问JSP网页的恳求时,首先

对其中的Java代码进展处理,然后将执行结果连同JSP文件中的HTML代码一起返回给客户的阅

读器。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的

功能。

4.JSP的特点

JSP最大的优点是开发的跨平台构造,它可以运行在几乎全部的操作系统平台。

JSP的优势:

一次编写,到处运行。在这一点上Java比PHP更精彩,除了系统之外,代码不用做任何更

改。

系统的多平台支持。根本上可以在全部平台上的随意环境中开发,在随意环境中进展系

统部署,在随意环境中扩展。相比ASP/PHP的局限性是自不待言的。

强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台效劳器进

展集群和负载平衡,到多台Application进展事务处理,消息处理,一台效劳器到多数台效劳

器,Java显示了一个宏大的生命力。

多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了很多特别优秀的开

发工具,而且很多可以免费得到,并且其中很多已经可以顺当的运行于多种平台之下。

JSP的优势:

与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了

极度的伸缩实力,所以极大的增加了产品的困难性。

Java的运行速度是用class常驻内存来完成的,所以它在一些状况下所运用的内存比起用

户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列

的.java文件和.class文件以及对应的版本文件。

5.JSP开发及运行环境要求

①操作系统要求

操作系统可以选择Windows操作系统、Unix操作系统和Linux操作系统等。

②软件环境要求

集成开发工具:集成开发工具有NetBeans、Eelipse等。本书选用Eelipse。

Web效劳器:JSP运行时需要安装JDK和Web效劳器,目前运用较多的Web效劳器有Tomcat.

WebLogic>Jboss和Resin等。本书选用Tomcat。Tomcat是Apache软件基金会(Apache

SoftwareFoundation)的Jakarta工程中的一个核心工程,由Apache、Sun和其他一些公

司及个人共同开发而成。本书选用目前最新版本Tomcat7.0。

1.1.2.3虚拟书目配置

配置JavaWebExample的虚拟书目,方法如下:

1.前期打算工作

①在D盘建立D:\WorkSpace\JavaWebExample的文件夹(也可以建立在其他磁盘)。

②在JavaWebExample文件夹中新建index.html文件,输入“欢送”二字。

2.配置Tomcat虚拟书目

①翻开Tomcat的安装书目下conf文件夹的server,xml文件。在<11。51>和</Host>标签之

间加上虚拟书目配置标签,即<Contextpath="/JavaWebExamp1e,,

docBase="D:\WorkSpace\JavaWebExample”/>,其中path属性值为虚拟书目名称,docBase

属性值为虚拟书目指向的物理书目。修改后如图1-16所示。这里path保存的值是你在阅读器

中输入的值即虚拟书目,docBase保存的值是你要访问的文件的物理肯定途径。

1.2利用开发工具制作Hello.jsp

1.2.1任务描绘与实现任务描绘:

利用Dreamweaver、Eclipse搭配开发一个简洁的JSP网页。

开发过程采纳Eclipse和Dreamweaver搭配开发,设计显示界面部分用Dreamweaver实现,

代码在界面制作自动生成根底上在Eclipse中编写,最终在Eelipse中测试运行实现过程:

1.下载安装Eclipse

至ijEclipse的官方网站下载EelipseIDEforJavaEEDevelopers,下载后解压即可运用。

Eelipse官方网站。

2.下载并安装DreamWeaver8

3.配置Eclipse开发环境

启动后,配置Web工程测试效劳器。翻开Window-Preferences菜单,选择ServerfRuntime

Environments选项,然后选择添加效劳器,添加已经安装的Tomcatv7.0。

4.在Eclipse中创立JavaWebExample工程

在新建工程选择对话框,选择DynamicsWebProject,如图1-24所示。单击“Next”按

钮后,出现如图1-25所示的对话框,填写工程名称JavaWebExample,选择与工程相关的信息。

在本例中,工程文件都置于D:'workspace\JavaWebExample中,因此以默认选项配置;测试

用效劳器选择Tomcat7.0,其它部分按默认配置,之后单击“Finish”按钮。

5.在Dreamweaver中创立JavaWebExample站点

在Dreamweaver中创立站点时,其站点根书目指向在Eelipse中创立的工程的WebContent

书目,本例的根书目为D:\workspace、JavaWebExample\WebContent,如图1-29所示。此外,

设置站点为JSP站点,并指定前缀。

6.测试。

测试在Dreamweaver中编写的Web页面,在Eclipse中运行。本例中为了便利演示,在

Dreamweaver的JavaWebExample站点的Chapterl文件夹创立一个简洁的JSP页面

examl_l_Hello.jsp

1.2.2新学问点Eclipse.Dreamweaver工具简介

1.2.2.1Eelipse简介

Eclipse是闻名的跨平台的自由集成开发环境(IDE),最初主要用于Java语言开发,目前

也有人通过插件使其作为其他计算机语言(如C++和Python)的开发工具。虽然Eelipse本身只

是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具

有的敏捷性。很多软件开发商以Eelipse为框架开发自己的IDE。

Eclipse就其本身而言,它只是一个框架和一组效劳,但可通过插件组件构建集成开发环

境。Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)1.

Eclipse最初是由IBM公司开发的替代商业软件VisualAgeforJava的下一代IDE

Eclipse,2001年11月奉献给开源社区,如今它由非盈利软件供给商联盟Eclipse基金会

(EclipseFoundation)管理。

1.2.2.2Dreamweaver简介

Dreamweaver,简称DW,是一款有着多年历史和良好口碑的可视化网页编辑工具,它最大

的优点就是所见即所得,对W3c网页标准化支持特别到位。同时它还支持网站管理,包含HTML

检查、HTML格式限制、HTML格式化选项、HomeSite/BBEdit捆绑、图像编辑、全局查找交换、

全FTP功能、处理Flash和Shockwave等多媒体格式和动态HTML,以及支持ASP、JSP、PHP、

ASP.NET、XML等程序语言的编写与调试。

1.2.2.3工具结合开发调试工程

运用Eelipse开发程序时,虽然系统框架构造会给你带来便利,但并不太合适于开发Web

显示界面,而Dreamweaver开发Web页面时可以实现所见即所得的效果,页面也遵循W3c国际标

准。因此,可以利用这些开发工具各自的优点,结合开发Web程序,从而进步开发效率。

1.2.3扩展——现有工程导入、导出、发布打包

对于程序员来说,有时需要将现有工程导入、导出和发布打包,下面介绍如何将工程导

入、导出和发布打包。

1.2.3.1工程导入

工程导入可干脆将文件拷贝至相应文件夹中,也可导入War文件。下面先来介绍第一种

方法。

1.文件拷贝

(1)新建工程

在Eclipse中新建project,参考1.2.2中介绍新建工程。新建工程test,此时src及

WebContent均为空,

【教学小结】

本章介绍了进展JavaWeb应用开发的特点,B/S架构的优势,介绍了JavaWeb程序的效劳

器运行的安装配置及开发工具的搭配运用,重点介绍了JDK、Tomcat的安装与配置,以及利用

DreamWeaver与Eelipse搭配开发工程。

通过本章的学习,读者可以创立简洁的JSP文件,并且进展测试。

课题:第二章JSP语法

【教学目的】

驾驭JSP的页面组成,驾驭JSP简洁网站的制作

【教学重点】

page指令、include指令、lablib指令、<jsp:include>动作指令、<jsp:forward>动作指令

【教学难点】

page指令、include指令、tablib指令、<jsp:include>动作指令、<jsp:forward>^J作指令

【教学方法】讲解、探讨

【教学地点】教学楼、综合楼

【课时支配】4课时

【教学过程】

2.1制作第一个JSP页面

2.1.1任务描绘与实如今Jsp文件中定义方法实现两个数的加法

定义方法实现两个数的加法,调用其计算1+2并显示结果,如图2-1所示。

JavaEE-hiip://localhost:8080/JavaYebExaaple/chapter2/exaa2_l_swB....

FileEditNavigateSearchProjectRunWindowHelp

•J器,。的心JavaEI

j多日夕甲J.•qs,

卜;exam2_l_sum.jsphttp:"localhost:8080/Ja“aWebExam=B

f|j:8080/JauaWebExample/chapter2/exa/n2_l_swn.jsp▼]>

两个数的求和结果:1+2=3

二J

3Harkers[口Prop«rti«(3%ServersSnippets|国Console

目exam2_l_sum.jsp-a/WebContent/chapter2

J

图2-1求和效果

实现过程:

1.新建JSP文件。在工程的chapter2文件夹中,单击右键选择New-JSPFile选项,

弹出如图2-2所示的对话框,在中输入exam21sum.jsp,单击Finish之后进入JSP页面编

辑窗口,输入代码如程序2-1。

2.1.2新学问点一一JSP页面组成、声明、代码段、表达式、注释

JSP页面由两部分组成,一部分为静态部分,即HTML标记,用来完成数据页面显示;另一

部分为动态部分,用来完成数据处理,包括脚本元素、指令元素和动作元素。

脚本元素用来嵌入Java代码,这些Java代码将成为转换得到的Servlet的一部分;JSP指

令元素用来从整体上限制Servlet的构造;动作元素用来引入现有的组件或者限制JSP引擎的

行为。

2.1.2.1声明朗!%>

JSP中声明部分可以进展变量、方法和类的声明,其一般在<%!%>标签中进展。其语法格

式为<%!声明1;声明2;……%>。

如在程序2-1中,进展了求和方法的声明。下边进展一个变量的声明,如程序2-2。

2.1.2.2代码段<%%>

在JSP页面中嵌入Java代码来执行特定的功能,其放置在设%>标记中。

格式为:

<%

Java代码段1

Java代码段2

%>

这种Java代码在Web效劳器响应恳求时就会运行。如程序2-3,定义2个变量并输出。

2.1.2.3表达式<%=%>

JSP表达式可以把JSP页面中的数据干脆输出到页面,其格式为:

<%=表达式%>

表达式一次只能运用一个表达式,并且该表达式是完好的。在表达式的语句中不能运用

分号。如程序2-4,进展了变量输出

这种代码段的主要功能是输出一个变量或常量,有时候将其叫做表达式输出。运用方法见程

序2-5所示。

2.1.2.4注释

在JSP中支持两种注释,一种是显式注释,这种注释客户端允许查看的;另一种是隐式注

释,这种注释客户端是看不到的。

1.显式注释语法(HTML注释)

<!-这是显式注释

2.隐式注释语法

(1)//Java供给的单行注释

(2)/*Java供给的多行注释*/

(3)<%--JSP注释~%>

2.1.3扩展——代码编写标准

好的代码应当简洁理解,并且见名知意的,因此大家都需要遵守一些约定,下面介绍一

些常规的编写标准。

1.JSP文件命名

JSP文件名称要以小写字母命名,名称要表达出该页面的意义,最好可以与模块名称联络

在一起。

例如:

login.jsp一登录页面

register,jsp一注册页面

message,jsp一消息页面

2.JavaWeb工程文件夹组织标准

JavaWeb工程的书目构造为:

src—存放java源文件的文件夹

WebContent-web站点文件存放文件夹

I-images一图片文件夹

|—css一款式文件夹

|"js—js文件夹

I-……一其他功能模块文件夹(存放与某个功能模块相关的资源)

I—WEB-INF一网站配置及类和库文件夹

I-classes-存放类编译后的字节码文件的文件夹

I—lib—存放jar文件的文件夹

2.2制作一个带包含文件的JSP页面

2.2.1任务描绘与实现

实现静态包含功能,编写三个不同类型的文件,然后将这三个不同类型的文件静态包含

于某一JSP文件中

2.2.2新学问点JSP指令:page指令、include指令

JSP指令是为JSP引擎而设计的。它们并不干脆产生任何可见的输出,而只是告知引擎如

何处理其余的JSP页面。JSP指令有三种,分别为页面设置指令page、页面包含指令include和

标记指令taglib。

JSP指令一般语法形式为:

<%©指令名称属性="值”%>

1.page指令

page指令就是通过设置内部的多个属性来定义JSP文件中的全局特性。需要留意的是,

page指令只能对当前自身页面进展设置,即每个页面都有自身的page指令。假设没有对属性

进展设置,JSP将运用默认指令属性值。

2.include指令

在JSP开发中,可以将一些重用的代码写入一个单独的文件中,然后通过include指令引

用该文件,从而缓解代码的冗余问题,修改也比拟便利。Include指令语法格式为:

<%©includefile="被包含的文件途径”%>

inlcude也被称为静态包含指令,包含的文件可以是JSP文件、HTML文件、文本文件和Java

程序段。静态包含指令只是简洁的将内容合在一起显示,所以,在一个完好的页面中,对于

<html>><head>、<title>>〈body>等元素只能出现一次,假设重复出现,则会造成HTML错误。

在2.2.1节任务中,其主要采纳include指令完成不同类型文件的包含。

2.2.3扩展——taglib指令的运用

运用<%@taglib%>指令在JSP文件中导入标签,以便在JSP中运用标签便利地完成一些动

作。

Taglib指令的语法为:

<%@tagliburi="tagLibraryURI"prefix="tagPrefix"%>

uri是一个URI标识标记库描绘器。一个标记库描绘器用来唯一的命名一组定制的标记,

并且告知包涵器如何处理特别的标记。

Prefix定义一个prefix:tagname形式的字符串前缀,用于定义定制的标记。

2.3制作一个简洁的JSP网站

2.3.1任务描绘与实现

2.3.1.1制作一个简洁的JSP网站

制作一个简洁的JSP网站。网站主题为产品网站,主要包括网站首页、产品和下载页面等,

效果如图2T0~2T2所示。要求公共部分采纳单独文件,并被包含。开发过程采纳Eclipse和

Dreaimveaver搭配开发,设计显示界面部分全部用Dreamweaver实现,JSP程序部分在Eelipse

中编写,最终在Eelipse中测试运行。

2.3.2新学问点——JSP动作指令、<jsp:include>

在JSP中,还存在另外一类标记,其符合XML的语法格式。利用这些标记可以到达限制

Servlet引擎的作用,如动态的插入文件,调用JavaBean,页面重定向等,这类标记称为JSP

动作标记。

JSP的常用动作标记有<jsp:include>、<jsp:useBean>><jsp:setProperty>,

<jsp:getProperty>、〈jsp:forward〉、<jsp:plugin>><jsp:params〉等。

2.3.3扩展--<jsp:forward〉的运用

<jsp:forward〉动作指令表示把当前的页面限制权转向另外一个对象,该对象可以是一个

HTML文件、JSP文件或者一个Servlet文件。

<jsp:forward》的语法格式:

<jsp:forwardpage二”转向的文件途径I<%=表达式%>”/>

或者

<jsp:forwardpage二”转向的文件途径|〈断表达式%>”>

<jsp:paramname二»paraml»value=»valuel»/>

<jsp:paramname=»param2»value=»value2»/>

</jsp:forward>

在上述格式中,page属性为一个字符串或者一个表达式,用来表示转向文件的途径;

<jsp:param》字句指令为传递参数,name指定参数名,value指定参数值。

【教学小结】

本章主要介绍了JSP页面的组成、指令、动作等技术,重点介绍了JSP的page指令、include

指令的运用,<jsp:include>><jsp:forward)等动作指令的运用。

通过本章的学习,读者可以建立一个简洁功能的JSP网站。

课题:第三章JSP内置对象

【教学目的】

驾驭JSP常用内置对象及运用方法

【教学重点】

JSP内置对象

【教学难点】

JSP内置对象

【教学方法】讲解

【教学地点】教学楼、综合楼

【课时支配】4课时

【教学过程】

3.1获得客户端数据

3.1.1任务描绘与实现

3.1.1.1实现用户注册信息获得及显示

编写用户注册功能,注册信息包括用户名、密码、性别、E-mail,娴熟开发语言,如图

3T所示,提交后,显示用户输入的数据。

为了进步开发效率,开发过程采纳Eelipse和Dreamweaver搭配开发,设计显示界面部分

全部用Dream出eaver实现,代码在界面制作自动生成根底上在Eelipse中编写,最终在Eelipse

中测试运行。

3.1.2新学问点——JSP内置对象、request

3.1.2.1JSP内置对象概述

为了简化Web页面的开发过程,JSP供给了一些由容器实现和管理的对象,这些对象在JSP

中可以干脆运用,不需要JSP页面编写进展实例化,可以干脆运用,此类对象称之为JSP的内

置对象。

JSP中标准定义了9个内置对象,分别是request、response>session、application,out>

page、pageContext和exception。其说明见表3T。

表3-1JSP内置对象对象所属类说明

requestjavax.servlet..封装了客户端的恳求信息

ServletRequest

responsejavax.servlet..包含了响应客户恳求的相关信息

ServletResponse

sessionjavax.servlet..与当前恳求相关的会话

Session

applicationjavax.servlet.ServletContext存放全局变量,实现用户间的数据

共享

outjavax.servlet,jsp.JspWriter向客户端输出数据的对象

pagejava.lang.Object指当前JSP页面本身,作用类似于

this

pageContextjavax.servlet,jsp.PageContext供给了对JSP页面内全部的对象及

名字空间的访问

configjavax.servlet.servletConfigServlet初始化时,向其传递配置

参数的对象

exceptionjava.lang.Throwable页面运行中发生异样而产生的对

3.1.3扩展——中文乱码处理、request中其他信息获得

3.1.3.1获得显示含有中文的信息

客户端提交数据当含有中文时,JSP不能正常显示。如将3.1.1.1节的表单增加个人简介

后,程序为exam31reg2.jsp,此处略,运行效果如图3-6,其提交后显示会是乱码,如图

3-7所示。因此,要对含有中文的表单数据,要进展编码设置。其主要方法为在获得程序中设

置字符集,使request其字符集与页面字符集保持一样。

3.1.3.2获得客户端恳求的相关信息

ServletRequest包含很多可以获得与当前恳求相关信息的方法,具体可查看API文档,下

面的例子将展示其中一部分方法的运用,exam3_l_request.jsp是提交恳求的页面,

exam3_l_showlnfo.jsp是处理恳求的页面,在此页面中将调用request对象的各种方法,以获

得与当前恳求相关的一些信息。

3.2处理效劳器响应

3.2.1任务描绘与实现

3.2.1.1实现四则运算测试功能

针对刚学会整数四则运算的小学生,开发一个测试网站。要求在测试页面中能随机产生

一个四则运算式,当用户在userAnswer表单域内填写答案并提交后,获得用户所填的答案,

推断答案的对错后,假设错误则进入错误提示页面:假设正确则进入正确页面

3.2.2新学问点response,out

3.2.2.1response

JSP的内置对象response代表效劳器端返回给客户端的相应,其主要用于处理响应数据。

该对象的方法主要包括处理响应头的相关属性的方法、设定响应状态码的方法、重定向方法、

设置响应体相关内容和属性的方法等等。其常用方法见表3-3所示。

表3-3response对象的常用方法方法说明

voidsetHeader(Stringname,Stringvalue)为名为name的响应头设定值为value

ooleancontainsHeader(Stringname)推断响应对象中是否出名为name的头

voidaddCookie(Cookiecookie)将参数指定的cookie添加到response对

象中

voidsendRedirect(Stringlocation)将页面重定向到参数所指定的URL

voidsetContentType(Stringtype)设置响应的MIME类型

PrintWritergetWriter()得到返回客户端的打印流

3.2.2.2out对象

out对象是javax.servlet.jsp.JspWriter类的实例,表示一个输出流,用于向客户端输出数

据。查阅API文档可知,JspWriter对象和由ServletResponse的getWriter()方法得到的

Printwriter对象是有依靠关系的。假设页面没有缓冲区,那么写入JspWriter对象的数据将

干脆通过PrintWriter对象进展输出;假设页面有缓冲区,则直到缓冲区满且如

setContentType()等操作都合法时才创立PrintWriter对象,由PrintWrtier对象进展输出。

3.2.3扩展——设置响应的MIME类型

任务:将一个文本文件包含在jsp页面中,且在显示页面内容之前先让用户选择查看文件

所运用的方式,将三种可选方式(文本方式、网页方式、word文档方式)放在下拉框中供用

户选择。当用户选择并点击“查看按钮”后,按用户所选方式呈现内容。

3.3存储用户会话

3.3.1任务描绘与实现

3.3.1.1推断用户是否已登录

实现如下功能:用户胜利登录后,只要未关闭阅读器的状况下,可随时访问本站点的任

何页面(当然此处本站点只有登录页面和欢送页面),假设用户在未登录的状况下访问欢送

页面的话,给出相应的提示,并在5秒后跳转到登录页面。

实现:当用户在登录页面(exam3_3」ogin.jsp)输入用户名和密码并点击登录后,在处

理页面exam3_3_login_do.jsp(代码如程序3T2所示)中推断用户名和密码是否正确,假设

正确,即登录胜利,则将名为“username”,值为用户所输入的用户名的属性添加到session

对象中,然后进入exam3_3_welcome.jsp(代码如程序3T3所示)中;假设用户名或密码不正

确,则输出提示“用户名或密码不正确,5秒后为您跳转回登录页面”,并在5秒后跳转回登

录页面。假设用户没有登录,而干脆访问exam3_3_welcome.jsp,则输出提示“您必需先登录,

5秒后为您跳转回登录页面”,并在5秒后跳转回登录页面。

3.3.2新学问点session、aplication

3.3.2.1session

session(会话)是用来在访问一个网站时发出的多个页面恳求或者在屡次页面跳转之间

识别同一个用户并且存储这个用户的相关信息的一种方式。通常从一个客户连接到某个效劳

器开场,直到他关闭阅读器分开这个效劳器为止,称之为一次会话。Servlet容器运用

javax.servlet..Session这个接口在客户端和效劳器端之间创立一个会话,JSP

的内置对象session就是这个接口的一一个实例。一个session通常只对应一个用户,它有肯定

的生存时间,它可以使同一个用户在访问同一个Web站点时在多个页面连接和恳求之间共享数

据。效劳器通常通过cookie或者重写URL的方式来维持session,不过开发者无需关切这些细

微环节。

Session接口的方法主要分为两类,一类是查看和操作关于这个session的信息的方

法,如session的ID、创立时间、最近访问时间等;另一类方法是将对象绑定到session中,

以可以运用户信息在客户端与效劳器端的屡次连接中可以共享。

3.3.2.2application

JSP内置的app]ication对象是javax.servlet.ServletContext类的一*个实例,可以通过

它和Servlet容器进展通信,如获得一个文件的MIME类型,转发恳求,写日志文件等等;也可

以通过它共享一些全局信息。

Application对象表示Servlet的上下文,每台Java虚拟机上的同一个Web应用只有一个上

下文,即当Web应用被部署到效劳器上,效劳器启动时就创立一个application对象,全部访

问该应用的客户都共享同一个application对象,直到效劳器关闭。因此可以通过将一些信息

放在application对象里,以实现全局共享,当然要留意这个“全局”只是相对的,因为不同

的Java虚拟机上的Servlet上下文也是不同的。

3.3.3扩展cookie

3.3.3.1记录用户以往访问当前站点的相关信息

任务描绘:当用户访问本网站的登录页面时,可以自动显示出该用户以前访问本网站时

曾经运用过的用户名。

实现过程:这样的功能一般都是基于cookie实现的。首先创立一个web应用,当用户访问

本网站的登录页面exam3_3_c。okie」ogin.jsp(代码如程序3T7所示)时,该页面读取客户

端的cookie,假设cookie中存在username记录,则在登录表单的用户名一栏中自动填入该

username值。当用户胜利登录后,将该username存入cookie中。

3.3.3.2学问点:Cookie简介

Cookie是Web效劳器发送给客户端的一小段信息。假设效劳器需要在客户端记录某些数

据时,就可以向客户端发送Cookie,客户端接收并保存该Cookie,而且客户端每次访问该效

劳器上的页面时就会将Cookie随恳求数据一同发送给效劳器。下面从向客户端发送Cookie

以及从客户端读取Cookie两方面来介绍Cookie的运用方法。

L向客户端发送Cookie

首先需要创立Cookie对象:Cookiec=newCookie(ucookieName,“cooki先alue");

然后需要调用setMaxAge(longtime)为Cookie对象设置有效时间(该时间参数以秒为单位),

不然阅读器关闭时Cookie就会被删除;最终运用ServletResponse对象的

addCookie(Cookiec)方法把Cookie对象添加到响应头中发送到客户端。

2.从客户端读取Cookie

首先获得客户端上传的Cookie数组:调用ServeltRequest对象的getCookies()得到

一个Cookie对象的数组;然后遍历该数组,找寻需要的Cookie对象:通过Cookie的getNameO

方法,获得Cookie对象的name属性,通过getValueO方法获得Cookie对象的值。

【教学小结】

本章介绍了JSP的各个内置对象,并着重讲解了request>response、session、

application,out这几个最常用的对象,这些对象在JSP开发中具有很重要的地位,盼望读

者可以结合本章任务理解这些对象,并可以驾驭其用法。对于其它未详解的对象,可参考相

关的API文档。

课题:第四章JDBC与数据库应用

【教学目的】

驾驭通过JDBC连接数据库并进展数据操作的方法

【教学重点】

连接数据库和读取数据库、写入数据库

【教学难点】

连接数据库和读取数据库、写入数据库

【教学方法】讲解、演示

【教学地点】教学楼、综合楼

【课时支配】4课时

【教学过程】

4.1连接数据库并读取数据

4.1.1任务描绘与实现

通过JDBC连接Mysql数据库,查询hncst数据库中users数据表中的数据,并以表格形式

显示,如表4T所示。Users表的构造如表4T所示。

表4-1任务执行结果用户名密码性别Email娴熟开发语

leiyanrui123456femaleJAVA,C,C#

・・・・・・….・・.・・

4.1.2新学问点——JDBC概述、JDBC连接Mysql数据库

4.1.2.1JDBC简介

JDBC的英文名称是JavaDatabaseConnecivity,中文名称是Java数据库连接,它是一种

用于执行SQL语句的JavaAPI类包,由一组用Java语言编写的类和接口组成,通过它可以构建

更高级的工具和接口,使数据库开发人员可以用纯JavaAPI编写数据库应用程序。

JDBC是Java操作数据库的方法,由SUN供给。有了JDBC,向各种关系数据发送SQL语句就

是一件很简洁的事。换言之,有了JDBCAPI,就不必为访问MySQL数据库特地写一个程序,为

访问Oracle数据库又特地写一个程序。运用JDBCAPI,程序员只需用JDBCAPI写一个程序就

够了,它可向相应数据库发送SQL调用,这和Microsoft的ODBC技术是类似的,ODBC是由

Microsoft公司提倡并得到业界普遍响应的数据库连接技术,通过它可以运用一组通用的接口

与各种数据库进展连接,但这仅限于Windows平台;而JDBC不同,运用Java编写的应用程序可

以在任何支持Java的平台上运行,程序员甚至不必在不同的平台上编写不同的应用。这也是

Java语言”编写一次,到处运行”的优势。

4.1.2.2Mysql数据库简介

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16

日被Sun公司收买。2009年,Sun又被Oracle收买。目前MySQL被广泛地应用在Internet上的中

小型网站中。由于其体积小、速度快、总体拥有本钱低,尤其是开放源码这一特点受到了众

多中小型网站制作者的青睐。MySQL的开发也得到了很多闻名厂商和技术团队支持。

4.1.2.3JDBC连接Mysql数据库的根本步骤

1.下载驱动。要通过JDBC连接数据库需要运用数据库厂商供给的JDBCDriveo在Mysql

官方网站下载其JDBC驱动,官网地址:,下载页面如图4-2所示。2.将下载好的驱动

mysql-connector-java-5.1.17-bin.jar文件(此处的5.L17为驱动版本号),复制到当前工

程的WEB-INF的lib书目中,如图4-3、图4-4所示。3.编写数据库连接程序。

(1)加载驱动。

Class.forName(ucom.mysql.jdbc.Driver").newlnstance();

(2)建立连接对象。

Stringurl="jdbc:mysql:〃localhost:3306/hncst”;〃连接字符串Connection

conn=DriverManager.getConnection(url);

(3)建立Statement对象或PreparedStatement对象。

Statementstmt=conn.createStatement();//^JALStatement对象Stringsql="select*

fromuserswhereoolean=Andpassword=";PreparedStatement

pstmt=conn.prepareStatement(sql);//仓4立Preparedment对象

pstmt.setString(l,"admin”);pstmt.setString(2,"liubin");

Statement是PreparedStatement的父接口。Statement对象用于执行不带参数的简洁SQL

语句;PreparedStatement对象用于执行预编译SQL语句;也就是说,Statement接口供给了

根本方法,而PreparedStatem6nt接口添加了处理IN参数的方法。对于需屡次执行的SQL语

句,用PreparedStatement即可以减轻编码负担,又可以进步系统效率。

(4)执行SQL语句。

执行SQL查询O1

Stringsql="select*fromusers”;

ResultSetrs=stmt.executeQuery(sql);

执行insert,update,delete等语句,先定义sql02

stmt.executeUpdate(sql);

Statement接口供给了三种执行SQL语句的方法:executeQueryexecuteUpdate和

executeo运用哪一个方法由SQL语句所产生的内容确定。

(5)关闭对象,释放资源。

Rs.close();

stmt.closeO;

conn,close();

通过上面五个步骤,就可以完成JDBC连接数据库,执行SQL语句,并在执行完后释放数据库资

源。

4.1.3扩展--JDBC连接SQLServer、Oracle

4.1.3.1JDBC连接SQLServer

SQLServer是一个关系型数据库管理系统。SQLServer运用集成的商业智能工具供给企

业级的数据管理,可以为不同规模的企业供给不同的数据管理解决方案。下边以SQL

Server2005为例,介绍JDBC连接SQLServer数据库。

实现过程:

通过JDBC连接SQLServer的hncst数据库,实例文件为exam4_2_sqlserver.jsp,具体步

骤如下:

1.在MicrosoftSQLServer的官网下载SQLServerJDBC驱动(不同版本的数据库对应不

同驱动程序)。将下载好的驱动sqljdbc.jar文件复制到网站的lib书目中。

2.将SQLServer的验证方式改为混合验证方式,并设置合法用户名和密码。翻开MicrosoftSQL

ServerManagementStudioExpress,通过右键点击数据库“效劳器属性"面板,在"平安”

选项里进展配置,重启SQLServer后生效,

4.1.3.2JDBC连接Oracle

与JDBC连接Mysql、SQLServer类似,需要先下载Oracle数据库的JDBC驱动,并将其放置

在网站的lib书目下。在此不再具体描绘。其次,创立连接文件JDBCOracleConnection.jsp,

代码如程序4-3所示。

4.2写入数据库

4.2.1任务描绘与实现

编写程序完成用户注册功能,即通过JDBC连接数据库,并向users表中添加一条新记录。

注册的资料包含姓名、密码、性别、娴熟开发语言、个人简介。

4.2.2新学问点Connection、Statement、ResultSet等对象的常用方法

在Java语言中供给了丰富的类和接口用于数据库编程,利用它们可以便利地进展数据的

访问和处理。下面主要介绍Java.sql包中供给的常用类和接口。1.Driver接口

每个数据库驱动程序必需实现Driver接口,对于JSP开发者来说只要运用Driver接口就可

以了。在编程中要连接数据库必需要装载特定的数据库驱动程序(Driver),格式如下:

Class.forName(“数据库商供给的驱动程序名称”);

在运用Class.forName之前,应先运用Import语句导入java,sql包,即

在Java源程序中为:importjava.sql.*;

在JSP程序中为:<%©pageimport="java.sql.*"%>

2.DriverManager接口

java.sql.DriverManager类负责管理JDBC驱动程序的根本效劳,是JDBC的管理层,作用

于用户和驱动程序之间,用来管理数据库中的全部驱动程序。它可以跟踪可用的驱动程序,

注册、注销以及为数据库连接适宜的驱动程序,设置登录时间限制等。

4.Statement接口

Statement接口用于在已经建立连接的根底上向数据库发送SQL语句。Statement接口中包

含了执行SQL语句和获得返回结果的方法。

在JDBC中有3种Statement对象:Statement,PreparedStatement和CallableStatemento

Statement对象用于执行不带参数的简洁SQL语句;PreparedStatement继承了Statement,用

于处理需要被屡次执行的SQL语句;CallableStatement继承了PreparedStatement,用于执行

对数据库的存储过程的调用。5.PreparedStatement接口

PreparedStatement接口继承Statement,包含己经编译的SQL语句。这就是使语句“打算

好”,所以它的执行速度要高于Statement对象。因此,将屡次执行的SQL语句创立为

PreparedStatement对象,可以进步效率。

6.ResultSet接口

ResultSet接口用来短暂存放数据库查询操作所获得的结果。ResultSet接口中包含了一系列

get方法,用来对结果集中的数据进展访问。

4.2.3扩展

数据库连接是JDBC数据库应用程序中最为耗时的一个部分。效劳器的资源有限,程序假

设始终保持数据库的连接状态,就会消耗数据库效劳器的资源,影响效劳器的正常响应。在

部分状况下JSP也会自动关闭数据库连接进而释放资源,例如在一个方法或一个类的内部创

立数据库连接,当这个方法或类运行完毕时,JSP将会自动的回收资源,并不需运用close方

法主动释放资源。但在实际应用中,JDBC连接数据库通常会运用servlet(见第五章),而

servlet会始终保持在效劳器内,servlet的数据库连接也会始终保存在效劳器内,所以为了

削减消耗效劳器资源,应当习惯在方法或类中创立数据库连接,并通过close方法主动关闭

数据库连接。

4.3.2新学问点一一分页

假设要显示的数据太多,在一个页面上显示不仅会运用户难以阅读,更加会影响程序的

运行,加重效劳器的负担,解决的途径就是对记录进展分页显示。

分页的方法有很多种,下面我们介绍一种最简洁最简洁理解的:通过前面的学习,我们

可以通过RecordSet对象的方法,获得记录集中的记录条数,已知每页显示的记录个数,可以

很简洁的计算出分页的页数,页数等于记录条数除以每页记录条数,再将结果向上取整,即

页数=总记录条数/每页记录数;当前页显示的记录可以通过SQL中Select语句的Limit来限定,

己知当前页码,则显示记录的起始位置为(当前页码T)*每页记录数,以MYSQL为例,构造

出的SQL语句为:Select*fromuserslimit(当前页码T)*每页记录数,每页记录数。

分页只显示符合要求的部分记录,所以肯定要设计翻页连接扶植用户翻页阅读,常用的

翻页连接有首页、尾页、上一页和下一页,首页即页码为1的页面,尾页即页码为总页数的页

面,上一页即页码为当前页减1的页面,下一页即页码为当前页加1的页面,根据这些设置超

连接进展翻页。

SQLServer的SQL语句没有Limit关键字,假设要对SQLServer中的数据表进展分页就

要利用T_SQL中的top和notin语句,top关键字用来指定返回结果集的前n行,很简洁理

解,第一页就是selecttop每页记录数fromusers,第二页selecttop2*每页记录数from

user,结果是前两页的记录,然后要将第一页的记录从记录集中剔除,运用notin,即select

top2*每页记录数fromuserswhereidnotin(selecttop每页记录数idfromusers)。

则当前页的分页SQL语句为selecttop当前页*每页记录数*fromuserswhere

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论