JSP程序设计PPT课件

上传人:博****1 文档编号:584929964 上传时间:2024-09-01 格式:PPT 页数:195 大小:2.07MB
返回 下载 相关 举报
JSP程序设计PPT课件_第1页
第1页 / 共195页
JSP程序设计PPT课件_第2页
第2页 / 共195页
JSP程序设计PPT课件_第3页
第3页 / 共195页
JSP程序设计PPT课件_第4页
第4页 / 共195页
JSP程序设计PPT课件_第5页
第5页 / 共195页
点击查看更多>>
资源描述

《JSP程序设计PPT课件》由会员分享,可在线阅读,更多相关《JSP程序设计PPT课件(195页珍藏版)》请在金锄头文库上搜索。

1、JSP程序设计JSP程序设计本课程主要讲述内容:本课程主要讲述内容:vJSP技术基础技术基础v环境配置环境配置vHTML基础基础vJSP语法语法vJSP内置对象内置对象vJSP文件操作文件操作vJSP中访问数据库中访问数据库vServletvJavaBeanJSP程序设计需要具备的相关知识:v数据库基本知识v网络基础知识Dreamweaver的使用Eclipse3.2Java语言(成为JSP高手必备)本课程以实战为导向。课后认真自学上述相关基础知识。布置的思考与练习题目,尽可能课后认真上机实践(经济管理学院机房已经具备JSP环境)。JSP程序设计如何成为一个优秀的jsp程序员、建立并且理解你的

2、WebServer。、保证你理解HTML。花时间学习手工写作html是很有必要的。因为你将会使用JSP和HTML混合编程,精通HTML语法是重要的。所以,你必须能流利地写HTML。训练时间:24个星期。、开始学习Java。理解Java基础是很重要的。不用担心学习Swing或Java的图形方面,因为在JSP中你不会使用这些特征。集中精力在Java工作的细节,学习Java的逻辑,也在JavaBean上花时间。学习Applet是好的,但是就象Swing,JSP的大多数应用将不使用小程序。训练时间:36个星期。JSP程序设计如何成为一个优秀的jsp程序员、学习JavaScript学习怎么将JavaSc

3、ript在HTML中验证输入的Form元素。也学习JavaScript怎么能在一HTML页以内修改Form的元素。最后要求你能从一HTML页内的事件中触发JavaScriptFunction。训练时间:12个星期。、学习并且理解你的WebServer的更多细节。熟悉WebServer的特征,这是很重要的。训练时间:2天。JSP程序设计如何成为一个优秀的jsp程序员、建立你的JSPServer推荐以Tomcat开始。它可以很好地运行JSP程序。当你不能在生产使用Tomcat时,学习尽可能多的知识以便于更好的运行程序。另外,许多JSP程序员使用Tomcat。因此当你遇到一个问题时,你将容易发现帮助

4、。安装时间:12天。、开始学习JSP。基本的JSP学习通过的步骤1到步骤6可以完成,然后使用JSP对象和脚本写JSP程序来联系。学习JSP的另外一个方面可以学习怎么创建一个分布式的应用程序。训练时间:46个星期。JSP程序设计如何成为一个优秀的jsp程序员、学习更多的JSPserver。没有关于更多的JSPServer当然也可以运行jsp程序。然而,许多JSPserver都由自己特殊的特征,可以让你更好的理解你的JSP工程。学习更多的Jspserver如何处理jsp程序是有必要的。同样也可以优化你的JSP应用程序,并且使之运行得更快而不出任何问题。训练时间:27天。JSP程序设计如何成为一个优

5、秀的jsp程序员、学习JDBC。JSP大多数应用将使用数据库,JDBC被用于数据库连接。经常忽略的一个事实就是,每个JDBCDriver所支持的东西是相当不同的。了解并熟悉在jsp工程上被使用的JDBCdriver的细节是很重要的。(有时这部分的学习被包含在前面Java或JSP的学习中了。)训练时间:12个星期。JSP程序设计到现在,你已经成为了熟练的JSP程序员。仍然有很多需要学习,你可以考虑扩展你的知识比如DHTML,XML,java证书,JSPTagLibraries或Servlets,看你想要造什么类型的网站而决定了。这些训练是JSP的核心。你不必都学习上面所有的,取决于你在工程中分配

6、到什么任务和你已经有什么知识。但是这是成功地训练程序员的时间表。关键的单元是时间。平均的说,5个月时间确实能够训练一个人(从开始到完成)成为一个对jsp熟悉程序员。55个月时间似乎很长,但要成为一个资深个月时间似乎很长,但要成为一个资深个月时间似乎很长,但要成为一个资深个月时间似乎很长,但要成为一个资深的的的的WEBWEB程序员所学的东西远远不止这一些。程序员所学的东西远远不止这一些。程序员所学的东西远远不止这一些。程序员所学的东西远远不止这一些。JSP程序设计本课程涉及的软件本课程涉及的软件vJava开发工具包JDK1.5vTomcat5.5.7、resin2.xvDreamweaver20

7、04MXvmySQL4.x、mySQL-Front3.1vEclipse3.2JSP程序设计其它参考书籍:其它参考书籍:1.1.JSPJSP深入编程深入编程 希望电子出版社希望电子出版社2.2.网络编程语言网络编程语言 JSPJSP实例教程实例教程 电子工业出电子工业出版社版社3.3.JSP/HTMLJSP/HTML编程实作教程编程实作教程 希望电子出版希望电子出版社社4.4.JSPJSP程序设计指南程序设计指南-初级程序员的基本技初级程序员的基本技能能 清华大学出版社清华大学出版社5.5.JSPJSP入门与提高清华大学出版社入门与提高清华大学出版社JSP程序设计第一章第一章配置系统环境配置系

8、统环境1 1。安装。安装JDK1.5.0JDK1.5.0:http:/J2 2。安装安装Tomcat5.5.7Tomcat5.5.7著名的Apache Group的Jakarta小组开发(http:/www.jakarta.org)。3 3。设置环境变量设置环境变量JAVA_HOME:c:javajdk1.5.0classpath:.;C:javajdk1.5.0libtools.jar;C:javajdk1.5.0libdt.jarpath:%JAVA_HOME%bin;这一句放在最前面,否则eclipse启动不了JSP程序设计4。安装mySQL数据库、mySQL-front管理程序MySQ

9、L是一个精巧的SQL数据库管理系统。由于它的强大功能、灵活性、以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache结合,为建立基于数据库的动态网站提供了强大动力!MySQL有瑞典的T.c.X公司负责开发和维护。MySQLMySQL是一个真正的多用户、多线程SQL数据库服务器。MySQLMySQL主要目标是快速、健壮和易用。它可媲美任何昂贵的大型数据库,但速度更快。自1996年以来,许多机构一直都在使用MySQLMySQL。MySQLMySQL建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管MySQLMySQL仍在开发中,但它已经提供一个丰富和极

10、其有用的功能集。MySQLMySQL的官方发音是“My Ess Que Ell”(不是MY-SEQUEL)。JSP程序设计5 5 5 5。安装。安装。安装。安装EclipseEclipseEclipseEclipsehttp:/www.eclipse.org/downloads/index.php 目前为止,大多数 Java 程序员都听说过 Eclipse,它正迅速成为最流行的 Java 编程环境。在目前所有的IDE中,Eclipse可以说是最有发展前途的产品之一。Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。目前由IBM牵头,围绕着Eclipse项目

11、已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、RationalSoftware、RedHat及Sybase,最近Oracle也计划加入到Eclipse联盟中。Eclipse是否与其他花钱的IDE一样好?答案非常确定!对于编码、调试、重构、单元测试等等,Eclipse可以与任何一种IDE匹敌,甚至比它们还要好。与昂贵的JBuilder2005版本相比,您可能会发现Eclipse对很多特性的支持都比JBuilder更好。JSP程序设计6。下载MyEclipseEclipse插件,收费软件。使Eclipse支持EJB、JSP、Se

12、rvlet等等。功能强大!http:/ JSP技术介绍2.2.1 Web编程技术 Web编程技术随着计算机技术的进步而不断发展。早期的web技术主要以获取静态文本、信息为主。随着互联网技术的发展,静态页面不能适应需求,动态网站技术应运而生。动态网站特性:后台数据库支持站点信息及时更新动态显示效果JSP程序设计补充说明:v静态网页是预先编写好的HTML文件,当浏览器访问时,WEB服务器将文件传送给浏览器,整个过程中网页内容不被改变。vHTML的表单、动态GIF图、FLASH、Applet和浏览器端脚本不等于动态网页。v动态网页可以看作是预先编写好的HTML模板文件。当浏览器访问动态网页时,WEB

13、服务器根据一定的程序逻辑填写模板,并将最终生成的内容传送给浏览器。JSP程序设计 常用动态Web编程技术: Perl、ISAPI、ASP、ASP、ASP.net、PHP、JSP、XSP等等。1.1.2 JSP的形式和特点JSP为创建动态生成内容的Web页面提供了一个简捷而快速的方法,在众多Web开发工具中一枝独秀、独领风骚。 JSP程序设计特点:适用于任何平台、支持者众多程序的执行效率高拥有Java优势强大的服务器组件强大的数据库支持Write onceWrite once, run anywhere run anywhere!钱钱途无量的途无量的JSPJSP!提示:在国外,提示:在国外,JS

14、P+JSP+ServletServlet+J2EE+J2EE已经成已经成为开发电子商务的主流技术。为开发电子商务的主流技术。JSP程序设计2.2 JSP与主流动态网页技术比较JSPASPPHPISAPIPerl易学性容易很容易很容易难较难运行速度较快较快较快很快慢运行开销小较大较大小大平台均可Windows均可Windows均可扩展性很好好不好不好不好安全性好不好好较好很好分布式处理支持支持不支持支持不支持函数支持很广不广广广不广数据库支持多多多多多应用广泛性广泛广泛广泛少少支持程度广泛少少少广泛对XML支持支持不支持支持不支持不支持对组件支持支持支持不支持支持不支持JSP程序设计2.3 JS

15、P的运行环境2.3.1 JSP运行环境需要的组件vJava 2软件开发工具箱。可以在sun公司http:/J免费下载。vJSP引擎(JSP应用服务器)。Resin、Tomcat、JRun、JSWDK、Weblogic等等。JSP程序设计2.3.2 常见的JSP应用服务器的配置vTomcat5.5.7的配置著名的Apache Group的Jakarta小组开发(http:/www.jakarta.org)。 服务器主要配置:confserver.xml文件。 自己开发的网站一般放置在webapps下。 网站配置一般放在自己站点的WEB-INF/web.xml中vResin2.1.14的配置著名的

16、Caucho公司的产品(http:/ Resin可以不作任何配置,除非有特殊要求。JSP程序设计2.3.3JSP执行过程执行过程执行过程:执行过程:浏览器IETomcatJSP程序设计2.3.4 JSP程序的初步体验一个简单的JSP程序:我的第一个我的第一个JSP程序程序JSP程序设计1.如何配置系统环境?2.分别用tomcat和resin作为Web服务器,配置一个自己的站点,并编写一个显示“欢迎光临本站点”的index.jsp程序。3.如何将自己站点的默认端口设置为80?4.站点目录能否放置在webapps以外的其它地方?5.创建一个站点,包含admin文件夹,该文件夹下的所有文件只允许用户

17、admin(密码:123)、deparb(密码:456)访问。6.如何将自己站点的默认主页设置为myweb.jsp?思考与练习思考与练习JSP程序设计第三章HTML基础3.1标记基础标记基础HTML语言是控制网页内容显示格式的标记集合,标记给浏览器提供了格式化Web文档的指令。1.基本的基本的HTML语法语法在HTML语言中,所有的标记都必须用尖括号(即小于号“”)括起来。也有一些标记只要求单一标记符号,例如换行标记。HTML标记不区分大小写,但通常约定使用大写字母来表示,以利于HTML文档的维护。2.标记符的属性标记符的属性大多数标记都拥有一个属性集,通过这些属性可以对作用的内容进行更多的控

18、制。在HTML语言中,所有属性都放置在开始标记的尖括号内。例如:心想事成。JSP程序设计3.2HTML文档的基本结构文档的基本结构一个基本的HTML文档通常包含以下三对顶级标记。1.HTML标记标记.2.首部标记首部标记.首部标记用于提供与Web页有关的各种信息。在首部标记中,可以使用:和和和等等。JSP程序设计3.正文标记正文标记.正文标记包含了文档的内容,文字、图像、动画、超链接以及其他HTML元素均位于该标记中。正文标记有下列属性。(1)BACKGROUD:指定文档背景图像的URL地址,图像平铺在页背景上。(2)BGCOLOR:指定文档的背景颜色。(3)TEXT:指定文档中文本的颜色。(

19、7)ONLOAD:指定文档首次加载时调用的事件处理程序。(8)ONUNLOAD:用于指定文档卸载时调用的事件处理程序。颜色属性的值有两种表示方法:使用颜色名称:例如红色、绿色和蓝色分别用red、green和blue表示;使用十六进制格式数值:#RRGGBB来表示,RR、GG和BB分别表示颜色中的红、绿、蓝三基色的两位十六进制数据。JSP程序设计4.HTML文档的基本结构文档的基本结构HTML文档的基本结构可以表示如下:标题文字文本、图像、动画、HTML指令等5添加注释添加注释注释由开始标记构成。JSP程序设计3.3设置文本格式设置文本格式3.3.1分段与换行分段与换行段落是文档的基本信息单位。

20、将文档划分为段落,可以通过使用分段标记、换行标记、标题标记或插入水平线来实现。1.分段标记分段标记P2.换行标记换行标记BR标记强行规定了当前行的中断,使后续内容在下一行显示。JSP程序设计3.标题标记标题标记Hn其中n的取值是1到6;.标记表示字体最大的标题,标记表示字体最小的标题。4.水平线标记水平线标记HRHR标记在文档中添加一条水平线,用来分开文档的两个部分。该标记有以下属性:(1)ALIGN:指定线的对齐方式,取值为left(左对齐)、center(居中对齐)或right(右对齐),默认值为center。(2)COLOR:指定线的颜色。(3)NOSHADE:若指定该项,则显示一条无阴

21、影的实线。(4)SIZE:指定线的宽度,以像素为单位。(5)WIDTH:指定线的长度,单位可以是像素或百分比(占页面宽度的百分比)。JSP程序设计3.3.2设置段落对齐方式设置段落对齐方式使用ALIGN属性来设置段落的对齐方式。ALIGN属性的取值可以是:left(左对齐)、center(居中对齐)、right(右对齐)以及justify(两边对齐)。3.3.3设置字体、字号和颜色设置字体、字号和颜色字体标记.来设置文本的字符格式,并通过FACE、SIZE和COLOR属性来设置文本的字体、字号和颜色。例如:超文本标记语言JSP程序设计3.3.4设置字符样式设置字符样式.粗体粗体.大字体.斜体.

22、删除线.小字体. 删除线.上标.下标.固定宽度字体.下划线JSP程序设计3.3.5插入特殊字符插入特殊字符可以使用两种方式来输入特殊符号:即使用字符实体名称或数字表示方式。例如,若要在网页中输入一个无间断空格,可以输入“ ”或“ ”,等等。表2.3列出了常用特殊符号的实体名称或数字表示。JSP程序设计3.4使用图像使用图像使用IMG标记在网页中插入一个图像。1.SRC和和ALT属性属性IMG标记有许多属性,其中最常用的是SRC和ALT属性SRC属性给出图像文件的URL地址,图像可以是JPEG文件、GIF文件或PNG文件。ALT属性给出图像的简单文本说明。2.指定图像的高和宽指定

23、图像的高和宽当使用IMG标记在网页中插入一个图像时,可以通过HEIGHT和WIDTH属性来设置图像的高度和宽度JSP程序设计3.5使用字幕和背景音乐使用字幕和背景音乐3.5.1插入字幕插入字幕要滚动显示的文本信息MARQUEE标记的主要属性有:(1)ALIGN:指定字幕与周围文本的对齐方式,其取值可以是top、middle或bottom。(2)BEHAVIOR:指定文本动画的类型,其取值可以是scroll、slide或alternate。(3)BGCOLOR:指定字幕的背景颜色。(4)DIRECTION:指定文本的移动方向,其取值可以是down、left、right或up。(5)HEIGHT:

24、指定字幕的高度,以像素或百分比为单位。(6)HSPACE:整数,指定字幕的外部边缘与浏览器窗口之间的左右边距(像素)。(7)SCROLLAMOUNT:整数,指定字幕文本每次移动的距离,以像素为单位。(8)SCROLLDEALY:整数,指定与前段字幕文本延迟多少ms后重新开始移动文本。(9)VSPACE:整数,指定字幕的外边缘与浏览器窗口之间的上下边距(像素)。JSP程序设计3.5.2插入背景音乐插入背景音乐使用标记在网页中添加背景音乐,该标记只允许放置在HEAD部分。标记的属性:(1)BALANCE:整数,指定如何将声音分成左声道和右声道。取值为-10,000+10,000,默认值为0。(2)

25、LOOP:整数,指定声音播放的次数。如果设置为0,则播放一次;如果设置为大于0的整数,则播放指定的次数;如果设置为-1,则声音反复播放,直到页面卸载。(3)SRC:指定要播放的声音文件的URL。常用的声音文件类型是波形文件(.wav)、MIDI文件(.mid)、AIFF文件(.aif)、AU文件(.au)以及MP3文件(*.mp3)等。(4)VOLUME:整数,指定音量高低,其取值为-10,0000,默认值为0。JSP程序设计3.6使用表格使用表格表格标题文字标题标题标题数据数据数据数据数据数据数据数据数据JSP程序设计3.7使用超链接使用超链接1.理解超链接超链接是由源端点到目标端点的一种跳

26、转。主要形式:(1)文件链接:这种链接的目标端点是的一个文件,它可以位于当前网页所在的服务器,也可以位于其他服务器。名称(2)E-mail链接:通过这种链接可以启动电子邮件客户端程序(如Outlook或FoxMail等),并允许访问者向指定的地址发送邮件。给我写信JSP程序设计2.理解路径理解路径路径是指从站点根文件夹或当前文件夹起到目标文件所经过的路线。路径有以下几种类型:(1)绝对路径:也称为绝对URL,它给出目标文件的完整URL地址,包括传输协议在内。如果要链接的文件位于外部服务器上,则必须使用绝对路径。(2)相对路径:也称为相对URL,是指以当前文档所在位置为起点到目标文档所经过的路径

27、。JSP程序设计3.8使用表单使用表单什么是表单?表单是用来收集站点访问者信息的域集。3.8.1创建表单创建表单在HTML语言中,表单通过FORM标记来定义,基本语法格式如下:FORM标记具有以下属性:(1)NAME:指定表单的名称,以标识表单。命名表单后,可以使用脚本语言(如VBScript或JScript)来引用或控制该表单(2)METHOD:post、get。(3)ACTION:指定将要接收表单数据的服务器端程序或动态网页的网址。(4)onSubmit:指定提交表单时调用的事件处理程序。(5)onReset:指定重置表单时调用的事件处理程序。(6)TARGET:指定一个目标窗口,其取值为

28、:_blank、_parent、_self、_top。JSP程序设计3.8.2使用输入型表单控件使用输入型表单控件1。 input输入域格式:姓名籍贯 此外:type的取值还可能是:password、checkbox、radio、image、hidden、reset等。JSP程序设计2。下拉列表框用于列表选择。例如: 湖北 湖南 江苏 浙江 福建 JSP程序设计3。多行文本框格式:例如:JSP程序设计3.9JavaScript用法:或者:JSP程序设计示例示例1数字的确认functionisDigit(theNum)vartheMask=0123456789;if(theNum=null|th

29、eNum.length=0)returnfalse;iftheMask.indexOf(theNum)=-1)returnfalse;returntrue;JSP程序设计示例示例2检查输入是否为空检查输入是否为空4.3.2 检查输入是否为空(包括空格)functionisEmail(theEmail)varemail=theEmail;email=email.replace(/(s*)|(s*$)/g,);if(email=)alert(“请输入您的Email地址,地址不能为空!);returnfalse;注意:如何实现光标自动定位?JSP程序设计v示例3电子邮件地址格式的确认function

30、isEmail(theEmail)varemail=theEmail;email=email.replace(/(s*)|(s*$)/g,);if(email=)alert(“请输入您的Email地址,地址不能为空!);returnfalse;if(email!=)varnotValid=false;varuseremail=email;if(useremail.indexOf()=0)notValid=true;if(useremail.charAt(useremail.length-1)=)notValid=true;if(useremail.indexOf(.)=0|useremail.

31、indexOf(.)=useremail.indexOf()notValid=true;if(useremail.indexOf(.)=useremail.indexOf()+1)notValid=true;if(useremail.indexOf(.)=(useremail.length-1)notValid=true;if(notValid)alert(您的Email地址不正确,请重新输入!);return(false);JSP程序设计思考与练习:思考与练习:1.如何实现不规则表格?如何实现不规则表格?2.如何使用表单提交进行客户端确如何使用表单提交进行客户端确认?认?JSP程序设计4.1

32、.1 开始和结束标记 以结尾,格式: 例如:4.1.2 注释注释是帮助自己或别人阅读程序。注释可以有两种形式,HTML注释、JSP注释。vHTML注释:第四章第四章JSP语法基础语法基础4.14.1 JSPJSP基本语法规则基本语法规则JSP程序设计vHTML注释:注释的内容会在客户端的HTML源代码中出现。例如:vJSP注释客户端查看源代码时看不到(安全考虑)。格式: 示例:JSP程序设计用户留言用户留言JSP程序设计4.1.3 基本数据类型1)整型三种形式:十进制、八进制(0开头)、十六进制(0x开头)。具体类型如下:byte类型有符号,范围-128127。例如:byte a,b=12;s

33、hort类型(很少使用)有符号,范围-3276832767。例如:short d,e234;int类型有符号,范围-2147483684 2147483683。例如:int x,y=12;JSP程序设计long类型有符号,范围-264 264-1。例如:long x,y=-0x12;2)实型Float类型(单精度)例如:float x,y123.56;double类型(双精度)例如:float x,y123.56;3)布尔型boolean只有true和false两种值例如:boolean x,y,zfalse;3)字符型char用单引号括起来。例如:char xx123;JSP程序设计思考:c

34、har rtnn;表示什么?4)字符串型String用双引号括起来的一串字符。例如:String myStr=“xyz”;注意:是对象,而非数据!有以下重要方法:length()、 boolean equals(String str)String substring(int beginIndex)String substring(int beginIndex, int endIndex)boolean startsWith(String prefix)int indexOf(String str) 向后向后int indexOf(String str, int fromIndex) 向后向后J

35、SP程序设计String toLowerCase()String toUpperCase()String trim()String replaceAll(String regex, String replacement)该方法用字符串replacement的内容替换当前字符串中遇到的所有和字符串regex相一致的子串,并将产生的新字符串返回。思思考考:如如何何判判断断一一个个字字符符串串是是否否是是一一个个合合法法的的emailemail地址?地址? JSP程序设计4.1.4 运算符v关系运算符用来比较两个值,并返回布尔型的值true或false。运算符用法返回true的情况op1op2当op

36、1大于op2=op1=op2当op1大于或等于op2op1op2当op1小于op2=op1=op2当op1小于或等于op2=op1=op2当op1等于op2!=op1!=op2当op1与op2不等JSP程序设计v布尔逻辑运算符进行布尔逻辑运算,包括&、|、!等op1op2op1&op2Op1|op2!op1falsefalsefalsefalsetruefalsetruefalsetruetruetruefalsefalsetruefalsetruetruetruetruefalseint x=12,y=85;boolean z=(x78);JSP程序设计v算术运算符进行加、减等运算。运算符结

37、果运算符结果相加相加赋值相减相减赋值*相乘*=相乘赋值/相除/=相除赋值%取余%=取余赋值+递增-递减inti=6,j,k,s;k=(j=+i);i,j,k=?s=(j=i-);i,j,s=?JSP程序设计v三目条件运算符格式: x ? y:z;上面的三目条件运算的规则是:先计算表达式x的值,若x为真,则整个三目运算的结果是表达式y的值;若x为假,则整个三目运算的结果是表达式z的值。下面的例子实现了从两个数中找出较大的数的功能。 int a=3,b=4; int max=ab?a:b;三目条件运算是可以嵌套的,如有以下的语句,则max表示的是a、b、c三个数中的最大值,其值为5。 int a=

38、3,b=4,c=5; int max=(ab ? a:b)c ? (ab?a:b):c;JSP程序设计4.2JSP声明声明1 1、格式:、格式:例如:例如:2 2、 JSP JSP表达式和程序段表达式和程序段vJspJsp表达式的语法形式:表达式的语法形式:%=%例如:例如:数值为:数值为:vJspJsp程序段程序段包含在包含在%之间的有效程序段。具体形式:之间的有效程序段。具体形式:% % 例如:例如:JSP程序设计4.3.1结构化程序设计的三种基本流程结构化程序设计的三种基本流程 1 1自顶向下自顶向下 2 2逐步求精逐步求精 3 3模块化模块化 除了以上的原则,结构化程序设计还有一个重要

39、的规定,那就是只能使用“顺序结构”、“选择结构”、“循环结构”这三种基本结构(或由它们派生出来的结构)来定义程序的流程。 三种基本流程控制结构示意图分别如图3-1所示。4.3JSP流程控制语句流程控制语句JSP程序设计JSP程序设计4.3.2 .2 选择结构选择结构 选择结构又称为分支结构,是在两种或两种以上的多条执行路径中选择一条执行的控制结构。1 1ififelseelse语句语句 if(条件表达式)条件表达式) 语语句句组组1; else 语语句句组组2; JSP程序设计在ifelse语句中,else部分是选择性的。经常可以看到只有if语句,而没有else语句的情况。在这种情况下,当测试

40、条件为假时如不需做任何事,else部分可被省略。这时,其语法形式如下:ifif(条件表达式)条件表达式) 语句组;语句组;思考:求思考:求3 3个数中的最大者?个数中的最大者?JSP程序设计2switch语句语句 switch语句(又称开关语句)是和case语句一起使用的,其功能是根据某个表达式的值在多个case引导的多个分支语句中选择一个来执行。它的一般格式如下:switch(表达式)表达式) case 判断判断值值1:语语句句块块1 case 判断判断值值2:语语句句块块2 case 判断判断值值n:语语句句块块n default:语语句句块块n+1 JSP程序设计 switch后面括号中

41、表达式的值必须是符合byte,char,short,int类型的常量表达式,而不能用浮点类型或long类型,也不能为一个字符串。 一个switch语句可以代替多个ifelse语句组成的分支结构,而switch语句从思路上显得更清晰。 floata=9,b=3,result=0;charop=+;switch(op)case+:result=a+b;case-:result=a-b;case*:result=a*b;case/:result=a/b;default:result=0;out.println(result=+result);JSP程序设计4.3.3循环结构循环结构 循环结构是程序中

42、一种重要的基本结构,是指在一定的条件下反复执行某段程序,被反复执行的这段程序称为“循环体”。 Java中有三种语句来实现循环结构,分别是while,do-while和for语句。JSP程序设计JSP程序设计1 1whilewhile语句语句while语句的格式如下: while(while(条件表达式条件表达式) ) 循环体语句;循环体语句; 例:用while语句计算10! int n=10;long result=1;while(n=1) result*=n-; /改写该语句?out.println(10!=+result);JSP程序设计2do-while语句语句 do-while语句的格

43、式如下: do 循循环环体体语语句;句; while(条件表达式条件表达式) 例:用do-while语句计算10的阶乘 int n=10;long result=1;doresult*=n-;while(n=1);System.out.println(10!=+result);JSP程序设计3 3forfor语句语句 for(for(表达式表达式1 1;表达式;表达式2 2;表达式;表达式3)3) 循环体语句;循环体语句; for语句的执行过程:(1)在循环刚开始时,先计算表达式1。(2)根据表达式2的值来决定是否执行循环体。表达式2是一个返回布尔值的表达式,若该值为假,将不执行循环体,并退出

44、循环;若该值为真,将执行循环体。(3)执行完一次循环体后,计算表达式3。(4)转入第(2)步继续执行。JSP程序设计例1:intn;longresult;for(n=10,result=1;n0;n-)result*=n;out.println(10!=+result);例2: for(i=0;i2;i+)for(j=0;j2;j+)for(k=0;k2;k+)out.print(i+j+k);out.println();JSP程序设计4.3.4跳转语句跳转语句跳转语句用来实现循环执行过程中的流程转移。有两种跳转语句:break语句和continue语句。其中,break用于强行退出循环,不执

45、行循环中剩余的语句。而continue则停止执行当前的循环,开始新的循环。int n;for(n=1;n=10;n+) if (n%2=0) break; /修改为continue结果如何? out.println(n=+n); JSP程序设计4.3.5异常处理语句异常处理语句当发生例外时,采用异常处理机制。Java采用try-catch-finally结构处理错误。 try-catch的实际意思是:尝试这块可能导致异常的代码。如果它执行正常,那么继续执行下面的程序。如果该代码无法执行,捕获该异常并对它进行处理。基本形式:try /程序块 catch(ExceptionType e) /对Ex

46、ceptionType的处理JSP程序设计例如: try File cf=new File(“c:/incfiles/counter.txt); catch (Exception e) out.println(“无法找到文件!); 假定在你的代码中有一些动作,不管发生什么情况,无论异常是否被抛出,你都必须执行这些操作。则需要使用finally子句。JSP程序设计例如:try readTextfile(); catch (IOException e) out.println(”该文件不存在!”); finally closeTextfile();总结一下try-catch-finally结构的形

47、式:try /程序块 catch(ExceptionType e) /对ExceptionType的处理 finally /必须处理的程序语句JSP程序设计4.4结合使用结合使用JSP和和HTMLJSPJSP程序中除了普通程序中除了普通HTMLHTML代码外,还可以嵌入代码外,还可以嵌入JavaJava程序程序代码,二者可以混合使用。代码,二者可以混合使用。例如:例如:示例示例数值为:数值为:思考:如何利用思考:如何利用JSPJSP语句输出斜体的语句输出斜体的“武汉科技学院武汉科技学院”?JSP程序设计思考与练习:思考与练习:1.JSP注释与注释与HTML注释注释的差异?的差异?2.JSP中如

48、何输出中如何输出HTML标标记?记?3.试说明异常机制?试说明异常机制?JSP程序设计第五章第五章JSP的页面元素的页面元素5.1JSP指令指令5.2JSP动作语法动作语法JSP程序设计5.1JSP指令指令1. Page1. Page指令指令“Page”指令用于定义JSP文件中的全局属性。% page language=java import=package.class | package.*,. session=true | false buffer=none | 8kb | sizekb contentType= charset=characterSet| text/html ; char

49、set=ISO-8859-1 isErrorPage=true | false JSP程序设计武汉科技学院毕业生就业指导服务中心JSP程序设计特别说明:页面缓存特别说明:页面缓存缓存是一种用于提高系统性能节省操作时间的技术,数据库产品利用它可以提高系统的吞吐率,服务器利用它可以提高性能。缓存是将响应内容临时保存在服务器的内存中,然后在请求处理完毕之后发回给所调用的浏览器。在Web应用程序中,提高系统性能最有效的手段是在需要时缓存页面的输出。在JSP页面最好使用输出缓存功能。缓存设置方法:采用采用采用采用JSPJSP标记标记标记标记通常情况下,默认缓存大小为8KB。缓存设置格式:在大多数Web应

50、用程序中,缓存大小至少应为32kb,牺牲这么一点额外的内存是很值得的。JSP程序设计2.include指令指令vinclude:向当前页中插入一个静态文件的内容。格式如下:vJSP程序设计示例:武汉科技学院毕业生就业指导服务中心JSP程序设计3. 3. taglibtaglib指令指令JSP语法 用于引入定制标签库JSP程序设计taglibtaglib指令指令属性1uri=URIToTagLibrary Uniform Resource Identifier (URI)根据标签的前缀对自定义的标签进行唯一的命名,URI可以是以下的内容:Uniform Resource Locator (URL

51、), 由 RFC 2396 定义, 可以从以下位置查看 (http:/www.hut.fi/u /jkorpela/rfc/2396/full.html)。Uniform Resource Name (URN), 由 RFC 2396定义 一个相对或绝对的路径 可以是标签库描述文件JSP程序设计2prefix=tagPrefix 表示标签在JSP中的名称。在自定义标签之前的前缀,比如,在中的public,如果这里不写public,那么这就是不合法的。请不要用jsp, jspx, java, javax, servlet, sun, 和sunw做为你的前缀,这些已被Sun公司声明保留。JSP程序

52、设计示例:示例:示例:示例:%=%metahttp-equiv=Content-Typecontent=text/html;=GBK武汉科技学院毕业生就业指导服务中心武汉科技学院毕业生就业指导服务中心武汉科技学院毕业生就业指导服务中心武汉科技学院毕业生就业指导服务中心/titlemetaname=keywordscontent=/headbody%includefile=%includefile=top.%includefile=body.%includefile=bottom.%JSP程序设计5.2JSP动作语法动作语法1.2.3.JSP程序设计1. 1. JSP 语法格式如下:1jsp:f

53、orward page=relativeURL | / 2jsp:forward page=relativeURL | jsp:param name=parameterName value=parameterValue | / (“”指可以有多个“”标记。)JSP程序设计1、page=relativeURL | 这里是一个表达式或是一个字符串用于说明你将要定向的文件或URL。这个文件可以是JSP,程序段,或者其它能够处理request对象的文件(如asp,cgi,php)。JSP程序设计2 jsp:param name=parameterName value=parameterValue |

54、/向一个动态文件发送一个或多个参数,这个文件必须是动态文件。如果想传递多个参数,可以在一个JSP文件中使用多个“”;“name”指定参数名,“value”指定参数值。JSP程序设计 例子例子testJSP程序设计forwardTo.jspJSP程序设计运行结果(运行结果(TOMCAT)JSP程序设计2.包含一个静:态包含一个静:态或动态文件或动态文件. . 常用格式如下:常用格式如下: 思考:思考:何时使用何时使用,何时使用何时使用% ” %?JSP程序设计3.在在介绍介绍JavaBean时再时再讨论讨论JSP程序设计思考与练习:思考与练习:1) 1) 掌握文件包含。掌握文件包含。2)2)制作

55、一个申请免费制作一个申请免费emailemail的表单,要求填写:用户名、的表单,要求填写:用户名、密码、确认密码、性别、地址,其中性别用单选按钮,密码、确认密码、性别、地址,其中性别用单选按钮,用户名、密码为必填项且不能为空。请用客户端确用户名、密码为必填项且不能为空。请用客户端确认实现上述功能。认实现上述功能。3) 3) 上道题目中用户填写的内容显示在屏幕上。上道题目中用户填写的内容显示在屏幕上。4 4)编写一个程序,验证用户输入的)编写一个程序,验证用户输入的emailemail地址是否正地址是否正确(使用客户端确认)。确(使用客户端确认)。5)5)编写一个用户登录的编写一个用户登录的j

56、spjsp网页,若用户名为网页,若用户名为aaaaaa,密密码为码为bbbbbb,则显示欢迎该用户访问的字样,否则显示非则显示欢迎该用户访问的字样,否则显示非法用户。要求使用服务器端确认。法用户。要求使用服务器端确认。6)6)理解缓存的使用。理解缓存的使用。JSP程序设计第六第六章章JSP的内建对象的内建对象request请求对象请求对象response响应对象响应对象session会话对象会话对象application应用程序对应用程序对象象out输出对象输出对象JSP程序设计1.out“out”对象代表了向客户端发送数据的对象。vout.print()vout.println();vout

57、.close()JSP程序设计out的使用的使用例如:out.println(“武汉”);思考:如何输出一个换行,或思考:如何输出一个换行,或者斜体的者斜体的aaaaaa? ?JSP程序设计2.request用于获取客户端的输入信息。主要有以下方法:vgetParameter(String name)(很重要)获得客户端传给服务器端的参数值String usrmerequest.getParameter(“username”);vgetRequestURI()获得所请求的URL地址JSP程序设计getServerName()获得服务器名称getRemoteUser()获得登录用户名getSer

58、verPort()获得服务器提供HTTP服务的端口号getRemoteAddr() (很重要)获得客户端的IP地址。getRemoteHost()获得客户端计算机名称。一般为IP地址,同上JSP程序设计request对象示例对象示例姓名JSP程序设计request对象示例(对象示例(Hello_req.jsp你好,今天是号,星期JSP程序设计request对象示例(输出结果)对象示例(输出结果)你好,独孤求败,今天是9号,星期1JSP程序设计3.response对象对象用于处理HTTP信息。有以下方法:vsetHeader(Stringname,Stringvalue)发送HTTP信息,控制客

59、户端和服务器端连接。例如:Response.setHeader(“Location”,”http:/”);Response.setHeader(“Refresh”,”2”);vsendRedirect(Stringurl)response.senRedirect(“http:/”);JSP程序设计4.session对象对象“session”对象代表服务器与客户端所建立的会话,当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购物、客户轨迹跟踪等。“session” 对象建立在cookie的基础上,所以使用时应注意 判 断 一 下 客 户 端 是 否 打 开 了cookie。常用的方法

60、包括getId、getValue、 getValueNames和putValue等。JSP程序设计session对象对象说明:HTTP是无状态(stateless)协议;WebServer对每一个客户端请求都没有历史记忆;Session用来保存客户端状态信息;由WebServer写入;存于客户端;客户端的每次访问都把上次的session记录传递给WebServer;WebServer读取客户端提交的session来获取客户端的状态信息;JSP程序设计理解session:session 对象代表服务器与客户端所建立的会话。当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购物、客户轨迹

61、跟踪等。例如:在网上商店站点,你做出的每一个购买决定都会放入购物车,他将收集你要购买的商品,以便一次性付钱。即使浏览了几百个网站,订购了数十商品,购物车也能记住你想购买的所有商品。这是因为WEB应用程序有能力记录跟踪会话。记住:每个用户都有自己的sessionJSP程序设计Session的常用方法:的常用方法:%setAttribute(参数名,参数值):设置指定name的属性值value,并存储在session中。例如:session.setAttribute(“myname”,”tom”);%getAttribute(参数名):获取与参数名相联系的属性值。例如: session.getAt

62、tribute(“myname”);%removeAttribute(参数名):删除与指定参数名相联系的属性。例如:session.removeAttribute(“myname”);应用:可以在同一个网站的不同页面之间共享信息。JSP程序设计session对象示例对象示例(Form表单表单Logon_session.html)姓名JSP程序设计session对象示例对象示例Logon_session.jsp你的名字已经写入sessioncheckJSP程序设计session对象示例对象示例(Check_session.jsp)您还未登录已经登录JSP程序设计5.application对象对象

63、“application”对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有getMimeType和getRealPath等。application对对象象负负责责提提供供应应用用程程序序在服务器中运行时的一些全局信息。在服务器中运行时的一些全局信息。(setAttribute(参数名,参数值) 例如: application.setAttribute(counter,1);(getAttribute(参数名) 例如: application.getAttribute(counter);应应用用:application application 对对象象可可以以用用于于网网站站访访

64、问问量量,或或者者在在线线用户的统计等功能。用户的统计等功能。JSP程序设计application对象实现网页计数器对象实现网页计数器 网页计数器您是第位访问者!JSP程序设计运行结果运行结果(第一次访问第一次访问)JSP程序设计刷新一次刷新一次JSP程序设计config、page、exception“config”对象提供一些配置信息,常用的方法有getInitParameter和getInitParameterNames,以获得Servlet初始化时的参数。“page”对象代表了正在运行的由JSP文件产生的类对象,不建议一般读者使用。“exception”对象则代表了JSP文件运行时所产生

65、的例外对象,此对象不能在一般JSP文件中直接使用,而只能在使用了“”的JSP文件中使用JSP程序设计思考与练习思考与练习1.编写用户登录程序,根据登录用户的不同,显示不同页面。2.编写网站计数器。3.利用session编写购物车程序。JSP程序设计第七章第七章 JSPJSP中访问文件中访问文件7.1文件操作7.2Cookie的管理7.3文件上传的实现JSP程序设计7.17.1文件操作文件操作1 1。FileFile文件对象文件对象 File是java.io包的一部分,它代表一个文件或文件夹的引用。格式:File(String) 创建一个File对象,如果没有指定文件名,则创建一个文件夹。例如:

66、File myfile=new File(“d:counter.txt”);常用方法:exists()、delete()、mkdir()JSP程序设计2 2。读取文本文件。读取文本文件vFileReader读取字符流,逐个字符读取,格式:FileReadertxt=newFileReader(文件名)例如:FileReadertxt=newFileReader(“counter.txt”)JSP程序设计vBufferedReader读取字符输入流,一次读取一行,格式:BufferedReaderbuff=newBufferedReader(Reader);例如:BufferedReaderbu

67、ff=newBufferedReader(newFileReader(“counter.txt”);buff.close();buff.close();注意:注意:BufferedReader读取字符输入流,读取字符输入流,并高效率的缓存起来并高效率的缓存起来。JSP程序设计3 3。写入文本文件。写入文本文件 BufferedWriter写入一个带缓冲的字符流。格式:BufferedWriterBufferedWriter(FileWriterFileWriter)例如:File tmpf=new File(“d:xy.txt”);BufferedWriterBufferedWriter ou

68、tfoutf = new = new BufferedWriter(newBufferedWriter(new FileWriter(tmpfFileWriter(tmpf);outf.write(“123”);outf.closeoutf.close();();JSP程序设计JSP程序设计文件操作示例文件操作示例tryStringfilestr=“d:/counter.dat;BufferedReaderbuff=newBufferedReader(newFileReader(filestr);longtmp;Stringline;line=buff.readLine();tmp=Long.

69、parseLong(line);tmp+;JSP程序设计Longtmpint=newLong(tmp);context.setAttribute(visitor,tmpint);Stringcounter=tmpint.toString();Filetmpf=newFile(filestr);BufferedWriteroutf=newBufferedWriter(newFileWriter(tmpf);outf.write(counter);outf.close();buff.close();catch(Exceptione)System.err.println(无法更新计数器:+e);JS

70、P程序设计4。文件输入。文件输入流流流(Stream)是一个将数据从一个地方运送到另一个地方的一个对象。输入流格式:FileInputStreaminStream=newFileInputStream(String);例如:FileInputStreaminStream=newFileInputStream(“d:mylet.zip”);JSP程序设计5。输出。输出流流OutputStreamtoClient=response.getOutputStream();例如:OutputStreamtoClient=response.getOutputStream();toClient.flush(

71、);toClient.close();JSP程序设计流的流的应用示例文件下载的实现应用示例文件下载的实现JSP程序设计packagebysservlet;importjavax.servlet.*;importjavax.servlet.http.*;importjava.io.*;publicclassdownloadextendsHttpServletprivatestaticfinalStringCONTENT_TYPE=text/html;charset=GB2312;JSP程序设计publicvoidservice(HttpServletRequestrequest,HttpServ

72、letResponseresponse)throwsServletException,IOExceptionresponse.setBufferSize(20000);/有什么作用?PrintWriterout=response.getWriter();response.setContentType(CONTENT_TYPE);request.setCharacterEncoding(GBK);/下载路径Stringfilepath=request.getParameter(fpath);if(filepath=null)filepath=;/文件名称Stringfilename=reques

73、t.getParameter(fname);if(filename=null)filename=;JSP程序设计StringdirName=getServletContext().getRealPath(/+filepath);java.io.Fileff=null;Stringdd=dirName+System.getProperties().getProperty(file.separator)+filename;tryff=newjava.io.File(dd);catch(Exceptione)out.println(“出错!”);JSP程序设计if(ff!=null&ff.exist

74、s()&ff.isFile()longfilelength=ff.length();FileInputStreaminStream=newFileInputStream(dd);response.reset();response.setContentType(application/x-msdownload;charset=GBK);response.setContentLength(int)filelength);response.setHeader(Content-Disposition,attachment;filename=+filename+);OutputStreamtoClien

75、t=response.getOutputStream();bytebzp=newbyte102400;inti;while(i=inStream.read(bzp)!=-1)toClient.write(bzp,0,i);toClient.flush();toClient.close();JSP程序设计7.2Cookie的管理的管理Cookie是服务器在用户硬盘上存放的信息。1。创建CookieCookiemyCookienewCookie(“cookieName”,”cookieValue”);Response.addCookie(myCookie);例如:CookievnamenewCoo

76、kie(“usrname”,”Tom”);response.addCookie(vname);JSP程序设计2。获取CookieCookiecookies=request.getCookies();然后调用Cookie的getName()获取Cookie的key,调用getValue()获取Cookie的Value。例如:Cookiemycookie=request.getCookies();for(Inti=0;i0)FilefileName=newFile(fi.getName();Stringimgnameimgname=fileName.getName();FileunitFile=n

77、ewFile(path+/+imgname);fi.write(unitFile);JSP程序设计思考与练习思考与练习1.在网上搜集apache的common-fileupload组件相关资料,并利用其实现文件上传。2.利用文件操作功能编写网站计数器,并将其与第6章方法进行比较。JSP程序设计第八第八章章JSP中访问数据库中访问数据库8.18.1数据库知识简介数据库知识简介8.2 8.2 MySQLMySQL使用使用8.3 8.3 用户登录的实现用户登录的实现8.4 8.4 数据库记录的修改数据库记录的修改8.5数据库修改的优化处理数据库修改的优化处理JSP程序设计8.18.1数据库知识简介数

78、据库知识简介8.1.1 理解数据库8.1.2 数据库操作的基本语句1.select语句Select 字段名 from 表名 where 条件 2.update语句Update 表名 set 字段名值 where 条件3.delete语句Delete from 表名4.insert语句Insert into 表名(字段名1,字段名2,) value(值1,值2,)JSP程序设计8.2mySQL使用使用1、安装mysql-4.0.20。2、mySQL的几个常用命令登录:mysql -u root -p打开数据库:use 数据库名增加管理员用户: GRANT ALL PRIVILEGES ON *.

79、* TO usernamrlocalhost IDENTIFIED BY password WITH GRANT OPTION;3、使用图形化管理软件MySQL-FrontJSP程序设计8.3用户登录的实现用户登录的实现8.3.1 8.3.1 连接数据库的两种方式连接数据库的两种方式ODBCODBC、JDBCJDBCJSP程序设计8.3.28.3.2、测试数据库连接、测试数据库连接1、获得JDBC驱动程序2、在Dreamwearver中测试连接3、在Eclipse中使用SQLExplorer测试连接JSP程序设计1 1、装载驱动程序、装载驱动程序装载装载JDBC-ODBCJDBC-ODBC桥驱

80、动程序桥驱动程序Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);装载装载JDBCJDBC驱动程序驱动程序根据数据库的不同有差异。例如:mySQL数据库:Class.forName(“org.gjt.mm.mysql.Driver”);Class.forName(“com.mysql.jdbc.Driver”);SQL Server数据库:Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);8.3.3通过通过JDBC连接数据库连接数据库JSP程序设计设置连接数据库的设置连接数据库的

81、URLURL根据数据库的不同有差异。例如:mySQL数据库:jdbc:mysql:/服务器名/数据库名SQL Server数据库:jdbc:microsoft:sqlserver:/服务器名:1433;DatabaseName=数据库名2 2、利用利用DriverManagerDriverManager创建与数据库的连接创建与数据库的连接格式:Connectionmyconn=DriverManager.getConnection(url,username,password)8.3.4通过通过JDBC连接数据库连接数据库JSP程序设计回忆一下回忆一下trytry语句语句 当发生错误时,采用异常

82、处理机制。JSP采用try-catch结构处理错误。 try-catch的实际意思是:尝试这块可能导致错误的代码。如果它执行正常,那么继续执行下面的程序。如果该代码无法执行,捕获该错误并进行相应处理。基本形式:try /程序块 catch(ExceptionType e) /对错误的处理8.3.4通过通过JDBC连接数据库连接数据库JSP程序设计8.3.4通过通过JDBC连接数据库连接数据库例如:try File cf=new File(“c:/incfiles/counter.txt); catch (Exception e) out.println(“无法找到文件!); JSP程序设计与数

83、据库连接的示例与数据库连接的示例: :tryClass.forName(org.gjt.mm.mysql.Driver);Connectionmyconn=DriverManager.getConnection(jdbc:mysql:/localhost/test,test,test);myconn.close();out.println(“连接成功!”);catch(Exceptione)out.println(无法连接数据库!);思考:如何实现与SQL Server数据库服务器的连接?8.3.4通过通过JDBC连接数据库连接数据库关闭连接JSP程序设计8.3.4通过通过JDBC连接数据库连

84、接数据库3 3、DriverManagerDriverManager的常用方法的常用方法JcreateStatement()Class.forName(org.gjt.mm.mysql.Driver);myconn=DriverManager.getConnection(jdbc:mysql:/localhost/test,test,test);Statementrsp=myconn.createStatement();JprepareStatement(sql语句)Class.forName(org.gjt.mm.mysql.Driver);myconn=DriverManager.getC

85、onnection(jdbc:mysql:/localhost/test,test,test);PreparedStatementrsp=myconn.prepareStatement(select*fromusers);JSP程序设计8.3.4通过通过JDBC连接数据库连接数据库4 4、记录集的使用、记录集的使用J理解记录集ResultSetResultSetrs=rsp.executeQuery(SQL查询语句);J回忆循环语句循环结构是程序中一种重要的基本结构,是指在一定的条件下反复执行某段程序,被反复执行的这段程序称为“循环体”。JSP中有三种语句来实现循环结构,分别是while,do

86、-whileJSP程序设计8.3.4通过通过JDBC连接数据库连接数据库J记录集的常用方法1)next()2)getString(n)或者getString(“字段名”)例如:Class.forName(org.gjt.mm.mysql.Driver);Connectionmyconn=DriverManager.getConnection(jdbc:mysql:/localhost/test,test,test);Statementrsp=myconn.createStatement();ResultSetrs=rsp.executeQuery(select*fromusers);JSP程序

87、设计8.3.4通过通过JDBC连接数据库连接数据库访问数据库的完整例子(访问数据库的完整例子(能否修改成使用能否修改成使用PreparedStatement):):tryConnectionmyconn=null;Class.forName(org.gjt.mm.mysql.Driver);myconn=DriverManager.getConnection(jdbc:mysql:/localhost/test,test,test);Statementrsp=myconn.createStatement();ResultSetrs=rsp.executeQuery(select*fromuse

88、rs);while(rs.next()out.println(rs.getString(1);out.println( );out.println(rs.getString(2);rs.close();myconn.close();catch(Exceptione)out.println(无法连接数据库!);JSP程序设计8.3.4通过通过JDBC连接数据库连接数据库使用使用PreparedStatement访问数据库:访问数据库:try Connection myconn=null; Class.forName(org.gjt.mm.mysql.Driver); myconn=Dr

89、iverManager.getConnection(jdbc:mysql:/localhost/test,test,test);PreparedStatement rsp=myconn.prepareStatement(select * from users); ResultSet rs=rsp.executeQuery(); while(rs.next() out.println(rs.getString(1);out.println(rs.getString(2); rs.close(); myconn.close(); catch(Exception e) out.println(无法连

90、接数据库!无法连接数据库!); JSP程序设计8.3.5实现用户登录实现用户登录步骤一:使用步骤一:使用request.request.getParametergetParameter()()接接收用户名、密码收用户名、密码步骤二:构造查询数据库的步骤二:构造查询数据库的sqlsql语句语句步骤三:使用步骤三:使用PreparedStatementPreparedStatement或者或者StatementStatement查询数据库查询数据库步骤四:判断返回的记录集是否为空。由步骤四:判断返回的记录集是否为空。由此决定用户是否登录成功!此决定用户是否登录成功!具体实现,请先思考一下?另外一个

91、问题:目前能否实现记录的修改?JSP程序设计思考与练习思考与练习1)1)如何获取用户填写的表单数据。如何获取用户填写的表单数据。2)2)建立一个数据表建立一个数据表studentstudent,存放学生成绩,然后利用存放学生成绩,然后利用DreamweaverDreamweaver编写网页实现数据库记录的分页显示、记编写网页实现数据库记录的分页显示、记录的修改、记录的添加等。录的修改、记录的添加等。3)3)在在mySQLmySQL中创建超级用户中创建超级用户tomtom。4)4)在在mySQLmySQL数据库中创建数据库数据库中创建数据库gzglgzgl,并并创建表创建表usersusers(

92、username c(10)username c(10),password c(10)password c(10),usertag usertag n(1) n(1) ) ,并向表中添加一条记录。并向表中添加一条记录。5)5)在在DreamweaverDreamweaver中配置与中配置与gzglgzgl的数据库连接。的数据库连接。6 6)如何实现与)如何实现与mySQLmySQL数据库的数据库的JDBCJDBC连接?连接?7)7)如何通过配置服务器实现用户登录如何通过配置服务器实现用户登录8)8)编写登录页面,实现基于数据库的登录。编写登录页面,实现基于数据库的登录。JSP程序设计8.4数据

93、库记录的修改数据库记录的修改一、利用一、利用PreparedStatementPreparedStatement的的executeUpdateexecuteUpdate()()方法方法修改记录修改记录 PreparedStatement rsp=myconn.prepareStatement( update语句); rsp.executeUpdate();二、利用二、利用StatementStatement的的executeUpdateexecuteUpdate( (sqlsql语句语句) )方法修方法修改记录改记录 Statement rsp=myconn.createStatement()

94、; rsp.executeUpdate(“update语句);JSP程序设计使用使用PreparedStatementPreparedStatement的的executeUpdateexecuteUpdate()()方法的示例方法的示例tryConnectionmyconn=null;Class.forName(org.gjt.mm.mysql.Driver);myconn=DriverManager.getConnection(jdbc:mysql:/localhost/test,test,test);Stringsql=updateuserssetpassword=888whereuser

95、name=aaa;PreparedStatementrsp=myconn.prepareStatement(sql);rsp.executeUpdate();rsp.close();myconn.close();catch(Exceptione)out.println(无法连接数据库!);示例示例1:PreparedStatementJSP程序设计使用使用StatementStatement的的executeUpdateexecuteUpdate( (sqlsql) )方法的示例方法的示例tryConnectionmyconn=null;Class.forName(org.gjt.mm.mys

96、ql.Driver);myconn=DriverManager.getConnection(jdbc:mysql:/localhost/test,test,test);Stringsql=updateuserssetpassword=888whereusername=aaa;Statementrsp=myconn.createStatement();rsp.executeUpdate(sql);rsp.close();myconn.close();catch(Exceptione)out.println(无法连接数据库!);示例示例2:StatementJSP程序设计思考与练习思考与练习1)1

97、)分别用分别用PreparedStatementPreparedStatement和和StatementStatement修改数据库的记录修改数据库的记录2)2)编写一个页面,利用学生的学号修改学编写一个页面,利用学生的学号修改学生的基本情况。生的基本情况。JSP程序设计8.5数据库修改的优化处理数据库修改的优化处理基本思路:基本思路:一、利用?构造一、利用?构造SQLSQL语句语句例如:例如:String String sqlsql = = update users set password=? update users set password=? where username=where

98、 username=aaaaaa 二、二、使用使用PreparedStatementPreparedStatement的的rsprsp. .setStringsetString(n,(n,字符串值字符串值););传递值传递值三、利用三、利用PreparedStatementPreparedStatement的的executeUpdateexecuteUpdate()()实现数据修改实现数据修改JSP程序设计8.5示例示例tryConnectionmyconn=null;Class.forName(org.gjt.mm.mysql.Driver);myconn=DriverManager.get

99、Connection(jdbc:mysql:/localhost/test,test,test);Stringsql=updateuserssetpassword=88890whereusername=?;PreparedStatementrsp=myconn.prepareStatement(sql);rsp.setString(1,ccc);rsp.executeUpdate();rsp.close();myconn.close();out.println(更新完毕!);catch(Exceptione)out.println(无法连接数据库!);JSP程序设计思考与练习思考与练习1)1)

100、创建一个页面,可以修改学生注册的用户名、创建一个页面,可以修改学生注册的用户名、密码,要求采用优化处理方式。密码,要求采用优化处理方式。2 2)编写一个学生信息查询的网页。输入待查询)编写一个学生信息查询的网页。输入待查询的学生姓名,查询后输出该学生的姓名、专业、的学生姓名,查询后输出该学生的姓名、专业、籍贯、电话;若没有查到,则显示籍贯、电话;若没有查到,则显示“查无此人!查无此人!”。3)3)制作一个留言板。要求:任何人可以查看留制作一个留言板。要求:任何人可以查看留言,且留言分页显示(每页言,且留言分页显示(每页1010条留言)。但只条留言)。但只有管理员才可以回复、删除留言。有管理员才

101、可以回复、删除留言。JSP程序设计第九第九章章Servlet的使用的使用7.1理解理解Servlet1。认识Servlet Servlet 是封装的Java类,可以认为是服务器上的小应用程序。其优点:平台无关性;执行效率高;应用广泛;例如:信用卡、在线支付等等。因此非常适合于服务器端的处理与编程。其缺点:不容易表现网页的风格。JSP程序设计7.1理解理解Servlet2。Servlet运行环境编写Servlet源程序(.java)编译为class放置在服务器相应目录配置web.xml3。Servlet程序结构主要由三大部分:定义包导入必需的类声明Servlet名称初始化、处理用户响应、清除释放

102、资源JSP程序设计packagebysservlet;importjavax.servlet.*;importjavax.servlet.http.*;importjava.io.*;publicclassServlet7extendsHttpServlet/Initializeglobalvariablespublicvoidinit()throwsServletException/ProcesstheHTTPrequestpublicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServlet

103、Exception,IOExceptionresponse.setContentType(CONTENT_TYPE);PrintWriterout=response.getWriter();out.println(“hello,everyone!);out.close();/Cleanupresourcespublicvoiddestroy()JSP程序设计4。Servlet的生命周期的生命周期装载Servlet程序WebServer创建Servlet的实例WebServer调用Servlet的init()方法WebServlet等待客户端请求一个客户端请求到达WebServerWebServ

104、er创建一个请求对象WebServer创建一个响应对象WebServer激活service方法,传递参数、处理客户端请求WebServer不再需要时,释放资源JSP程序设计5。Servlet常用方法常用方法doGet()doPost()service()init()destroy()JSP程序设计6。Servlet示例示例1package bysservlet;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;public class testservlet extends HttpServlet /Init

105、ialize global variables public void init() throws ServletException JSP程序设计 /Process the HTTP request public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); out.p

106、rintln(testservlet); out.println(); out.println(); out.println(请稍候,系统3秒后自动返回主页。); out.println(); out.println(); out.close(); /Clean up resources public void destroy() JSP程序设计7。Servlet的配置的配置在在在在web.xmlweb.xmlweb.xmlweb.xml中加入:中加入:中加入:中加入:testservletbysservlet.testservlettestservlet/testsJSP程序设计8。Serv

107、let示例示例2获取用户表单传递的参数值,并显示在屏幕上。基本思路:1、编写JSP表单,其action设置为servlet2、编写Servlet,在Web.xml中配置好,利用doPost()或者doGet()或者service()接收用户表单提交的数据。思考:思考:使用使用doPost()、doGet()或者或者service()接收表单提交的数据有无规律可循?能否将接收表单提交的数据有无规律可循?能否将成绩表的数据利用成绩表的数据利用Servlet显示显示为为Excel表格表格且用户可以另存为且用户可以另存为excel的的xls文件。文件。JSP程序设计思考与练习思考与练习1、编写Serv

108、let,显示一个简单成绩单表格。2、编写Servlet,通过JDBC访问数据库。3、编写Servlet,根据用户表单提交的用户名、密码判断用户是否是合法用户(用户名为111、密码为222表示合法用户)。4、编写Servlet,输出excel表格。5、如何在Servlet中实现页面包含?6、如何编写listenerServlet,实现计数器功能。JSP程序设计第十章JavaBean8.1JavaBean概述概述1。什么是JavaBean JavaBean是描述Java的软件组件模型。通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。 对于程

109、序员来说,最好的一点就是对于程序员来说,最好的一点就是JavaBeanJavaBean可以实现代码的重复利用可以实现代码的重复利用,另外对于程序的易维护性等等 也有很重大的意义。JavaBean在服务器端应用方面表现出来了越来越强的生命力。JSP程序设计1 1。什么是什么是JavaBeanJavaBean 比如说一个购物车程序,要实现购物车中添加一件商品这样的功能,就可以写 一个购物车操作的JavaBean,建立一个public的AddItem成员方法,前台Jsp文件里面直接调用这个 方法来实现。如果后来又考虑添加商品的时候需要判断库存是否有货物,没有货物不得购买,在这个 时候我们就可以直接修

110、改JavaBean的AddItem方法,加入处理语句来实现,这样就完全不用修改前台 jsp程序了。 当然,也可以把这些处理操作完全写在jsp程序中,不过这样的jsp页面可能就有成百上千行,光看 代码就是一个头疼的事情,更不用说修改了。由此可见,通过 JavaBean可以很好地实现逻辑的封装、程序的易于维护等等。 如果您使用如果您使用JspJsp开发程序,一个很好的习开发程序,一个很好的习惯就是多使用惯就是多使用JavaBeanJavaBean。JSP程序设计2。一个简单。一个简单的的JavaBeanpackagedbbeans;publicclassmyBeanpublicmyBean()JS

111、P程序设计8.2JavaBean的构成的构成1。JavaBean构成 一般由属性、方法组成由属性、方法组成由属性、方法组成由属性、方法组成。JavaBean的值是通过一些属性获得的,你可通过这些属性访问JavaBean设置。以一个人来打比方,这个人就是一个JavaBean,这个人的名字、身份证号码以及住址就是其属性。JavaBean的方法是指你赋予其能够执行的任务。类似于一个人,骑自行车就是其方法。在JSP网站,你基本上就是通过JavaBean来使你的网站动态化。JSP程序设计2。JavaBean的使用的使用 或者: JSP程序设计例如:JSP程序设计2。JavaBean的使用的使用一旦你声明

112、了一个JavaBean,你就可以访问它的属性来定制它。要获得属性值,请用“”标记。有了这个标记,你就能指定将要用到的Bean名称(从useBean的id字段得到)以及你想得到其值的属性。实际的值被放在输出中:JSP程序设计2。JavaBean的使用的使用要改变JavaBean属性,你必须使用“”标记。对这个标记,你需要再次识别Bean和属性,以修改并额外提供新值。如果命名正确,这些值可以从一个已提交的表中直接获得:参数获得: property=*/可以从一个参数获得,但你必须直接命名属性和参数:或者直接用一个名字称和值来设置:jsp:setPropertyid=localNamepropert

113、y=serialNumbervalue=/JSP程序设计2。JavaBean的使用的使用万能星(*):关于JavaBean的最后一件事:为了Web服务器能找到JavaBean,你需要将其class类文件放在一个特殊位置。一般放置在自己站点的WEB-INFclasses下。注意:包的问题!注意:包的问题!JSP程序设计3。JSP与与JavaBean结合示例结合示例count.javacount.java文件主要内容:文件主要内容:package count;public class countercountercountercounter int count = 0;public counter

114、() public int getCount() count+; return this.count; public void setCount(int count) this.count = count; JSP程序设计JSP文件文件mycnter.jsp内容内容: counter JBuilder Generated JSP 下面看另外一个JavaBean与数据库交互的示例:JSP程序设计JSP程序设计JSP程序设计import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;impor

115、t java.sql.ResultSet;public class Bean1 private ResultSet rs=null; public ResultSet Bean1() try Class.forName(org.gjt.mm.mysql.Driver).newInstance(); Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost/test,test,test); Statement stmt = conn.createStatement(); ResultSet rs=stmt.executeQuery(); return rs; catch(Exception e) return rs; JSP程序设计思考与练习思考与练习1、编写一个JavaBean,具有属性wid,其值为welldone。编写jsp文件,输出该JavaBean的wid属性的值。2、编写一个JavaBean,实现用户登录功能。若数据库中存在该用户,显示“欢迎您访问!”,否则显示“您没有权限访问!”3、编写一个JavaBean,实现用户注册功能。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号