




已阅读5页,还剩140页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JSP程序设计,/hbccgg,为什么要学?,1、电子商务迅猛发展 2、企业信息系统网络化 3、当前主流的IT技术,学习什么?,基于JSP的Web开发基础技术!,有什么用?,1、从事基于Web的企业信息系统开发 2、开发各种类型的网站,如何学?,1、实践出真知 2、团队协作 3、项目实战,本课程主要讲述内容: JSP技术基础 环境配置 HTML基础 JSP语法 JSP内置对象 JSP文件上传 MySQL数据库 JSP中访问数据库 Navicat Premium导航猫 Servlet JavaBean,需要具备的相关知识: 数据库基本知识 网络基础知识 Dreamweaver的使用 Java语言 本课程以实战为导向。课后认真自学上述相关基础知识。布置的思考与练习题目,尽可能课后认真上机实践(管理学院机房已经具备JSP环境)。,大学教育里,除了素质教育外,如何进行有针对性的“谋生技能教育”,是一个很现实的问题。当然,咱们的毕业生同学们,不可能等到大学教育改革完成再就业。 其实,大多数公司做的事,都不是造神六,没有那么复杂的科学原理和技术。即使是神六这样的尖端科技,也是要讲究简单的。霍金在时间简史中说:“插入任何一个数学公式都会使作品的销量减半。”诺贝尔们如是说,咱们 IT 的从业者,又凭什么说不是呢?其实,许多当前流行的技术,从“应用”的角度来看,都是很简单的,甚至可以称之为“快餐技术”。初学者不需要知道太多底层的原理至少现在不需要。他们关心的是:如何尽快学会使用一种技术,并找到一份工作。,有一种声音如是说! 北大青鸟 APTECH J2EE 高级讲师邬继成:,本课程涉及的软件,Java开发工具包JDK7 Tomcat7 Dreamweaver2008 mySQL5.5、Navicat Premium导航猫,第一章 配置系统环境 1.1 JDK的下载与安装,下载地址:/technetwork/java/index.html 安装:运行下载得到的exe文件,安装后的主要目录结构,1.2 Java环境变量的配置,创建JAVA_HOME变量 JAVA_HOME:c:javajdk7 设置path path:%JAVA_HOME%bin; 设置classpath classpath:.; %JAVA_HOME%libtools.jar; %JAVA_HOME%libdt.jar 检测环境变量设置是否成功 环境变量设置并不是必须的!,建议这一句放在最前面,1.3 安装mySQL数据库,MySQL由于强大功能、灵活性、以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache结合,为建立基于数据库的动态网站提供了强大动力!MySQL最早由瑞典的T.c.X公司开发。 MySQL是一个真正的多用户、多线程SQL数据库服务器。MySQL 主要目标是快速、健壮和易用。它可媲美任何昂贵的大型数据库,但速度更快。自1996年以来,许多机构一直都在使用MySQL。,MySQL的官方发音是“My Ess Que Ell”(不是 MY-SEQUEL )。 官方网站:/downloads/,1.4 安装Dreamweaver,2.1 JSP计算模式 计算模式:描述它们在平台上的分布以及在数据处理中之间的关系。(网络计算结构),第二章 JSP技术概述,2.2 JSP技术简介 2.2.1 Web编程技术 Web编程技术随着计算机技术的进步而不断发展。早期的web技术主要以获取静态文本、信息为主。随着互联网技术的发展,静态页面不能适应需求,动态网站技术应运而生。动态网站特性: 1)后台数据库支持 2)站点信息及时更新 3)动态显示效果,补充说明: 静态网页是预先编写好的HTML文件,当浏览器访问时,WEB服务器将文件传送给浏览器,整个过程中网页内容不被改变。 HTML的表单、动态GIF图、FLASH、Applet和浏览器端脚本不等于动态网页。 动态网页可以看作是预先编写好的HTML模板文件。当浏览器访问动态网页时,WEB服务器根据一定的程序逻辑填写模板,并将最终生成的内容传送给浏览器。,常用动态Web编程技术: Perl、ISAPI、ASP、ASP、ASP.net、PHP、JSP、XSP等等。 1.1.2 JSP的特点 适用于任何平台、支持者众多 程序的执行效率高 拥有Java优势,强大的服务器组件 强大的数据库支持 钱途无量的JSP! 提示:在国外,JSP+Servlet+J2EE已经成为开发电子商务的主流技术。,2.2 JSP与主流动态网页技术比较,2.3 JSP的运行 2.3.1 运行环境 JDK。 JSP服务器 Resin、Tomcat、Weblogic等等。,2.3.2 常见JSP服务器 Tomcat7的下载和配置 源自著名Apache Group旗下,Apache Group产品: Apache:世界使用排名第一的Web服务器软件。 著名的Struts框架。 大名鼎鼎的Tomcat服务器()。 。,检测安装是否成功,服务器主要配置:confserver.xml文件。 自己开发的网站一般放置在webapps下。 网站配置一般放在自己站点的 WEB-INF/web.xml中 Resin 著名的Caucho公司的产品(/download/)。,2.3.3 JSP执行过程,执行过程:,浏览器,Tomcat,2.3.4 JSP初步体验 我的第一个JSP程序 ,1.如何配置系统环境? 2.用tomcat作为Web服务器,配置一个自己的站点,并编写一个显示“欢迎光临本站点”的index.jsp程序。 3.如何将自己站点的默认端口设置为80? 4.站点目录能否放置在webapps以外的其它地方?,思考与练习,第三章 HTML基础,3.1 标记基础 HTML语言是控制网页内容显示格式的标记集合。 1. 基本的HTML语法 在HTML语言中,所有的标记都必须用尖括号(即小于号“”)括起来。 也有一些标记只要求单一标记符号,例如换行标记。 HTML标记不区分大小写。 2. 标记符的属性 所有属性都放置在开始标记的尖括号内。 例如: 心想事成。,3.2 HTML文档的基本结构 1. HTML标记. 2. 首部标记. 和 和 和等等。,3. 正文标记. (1) BACKGROUD:指定文档背景图像的URL地址,图像平铺在页背景上。 (2) BGCOLOR:指定文档的背景颜色。 (3) TEXT:指定文档中文本的颜色。 (4) ONLOAD:指定文档首次加载时调用的事件处理程序。 (5) ONUNLOAD:用于指定文档卸载时调用的事件处理程序。,4. HTML文档的基本结构 HTML文档的基本结构可以表示如下: 标题文字 文本、图像、动画、HTML指令等 5 添加注释 注释由开始标记构成。,3.3 设置文本格式 3.3.1 分段与换行 1. 分段标记P 2. 换行标记BR 标记强行规定了当前行的中断,使后续内容在下一行显示。,3. 标题标记Hn 其中n的取值是1到6;.标记表示字体最大的标题,标记表示字体最小的标题。 4. 水平线标记HR (1) ALIGN:指定线的对齐方式,取值为left(左对齐)、 center(居中对齐)或right(右对齐),默认值为center。 (2) COLOR:指定线的颜色。 (3) NOSHADE:若指定该项,则显示一条无阴影的实线。 (4) SIZE:指定线的宽度,以像素为单位。 (5) WIDTH:指定线的长度。,3.3.2 设置段落对齐方式 使用ALIGN属性来设置段落的对齐方式。 ALIGN属性的取值可以是:left(左对齐)、center(居中对齐)、right(右对齐)以及justify(两边对齐)。 3.3.3 设置字体、字号和颜色 字体标记.来设置文本的字符格式,并通过FACE、SIZE和COLOR属性来设置文本的字体、字号和颜色。 例如: 超文本标记语言,3.3.4 设置字符样式 . 粗体 . 大字体 . 斜体 . 删除线 . 小字体 . 删除线 . 上标 . 下标 . 固定宽度字体 . 下划线,3.3.5 插入特殊字符 可以使用两种方式来输入特殊符号:即使用字符实体名称或数字表示方式。 例如,若要在网页中输入一个无间断空格,可以输入“ ”或“ ”,等等。表2.3列出了常用特殊符号的实体名称或数字表示。,3.4 使用图像 使用IMG标记在网页中插入一个图像。 1. SRC和ALT属性 SRC属性给出图像文件的URL地址。 ALT属性给出图像的简单文本说明。 2. 指定图像的高和宽 通过HEIGHT和WIDTH属性来设置图像的高度和宽度,3.5 使用字幕和背景音乐 3.5.1 插入字幕 要滚动显示的文本信息 (1) ALIGN:指定字幕与周围文本的对齐方式,其取值可以是top、middle或bottom。 (2) BEHAVIOR:指定文本动画的类型,其取值可以是scroll、slide或alternate。 (3) BGCOLOR:指定字幕的背景颜色。 (4) DIRECTION:指定文本的移动方向,其取值可以是down、left、right或up。 (5) HEIGHT:指定字幕的高度,以像素或百分比为单位。 (6) HSPACE:整数,指定字幕的外部边缘与浏览器窗口之间的左右边距(像素)。 (7) SCROLLAMOUNT:整数,指定字幕文本每次移动的距离,以像素为单位。 (8) SCROLLDELAY:整数,指定与前段字幕文本延迟多少ms后重新开始移动文本。 (9) VSPACE:整数,指定字幕的外边缘与浏览器窗口之间的上下边距(像素)。,3.5.2 插入背景音乐 使用标记在网页中添加背景音乐,该标记只允许放置在HEAD部分。标记的属性: (1) BALANCE:整数,指定如何将声音分成左声道和右声道。取值为-10,000+10,000,默认值为0。 (2) LOOP:整数,指定声音播放的次数。0,播放一次;大于0的整数,则播放指定的次数;-1,则声音反复播放,直到页面卸载。 (3) SRC:指定要播放的声音文件的URL。 (4) VOLUME:整数,指定音量高低,其取值为-10,0000,默认值为0。,3.6 使用表格 表格标题文字 标题标题标题 数据数据数据 数据数据数据 数据数据数据 ,3.7 使用超链接 1. 理解超链接 (1) 文件链接:这种链接的目标端点是的一个文件,它可以位于当前网页所在的服务器,也可以位于其他服务器。 名称 (2) E-mail链接:通过这种链接可以启动电子邮件客户端程序(如Outlook或FoxMail等),并允许访问者向指定的地址发送邮件。 给我写信,3.8 使用表单 表单是用来收集站点访问者信息的域集。 3.8.1 创建表单 在HTML语言中,表单通过FORM标记来定义,基本语法格式如下: FORM标记具有以下属性: (1) NAME:指定表单的名称。 (2) METHOD:post、get。 (3) ACTION:指定将要接收表单数据的服务器端程序或动态网页的网址。 (4) onSubmit:指定提交表单时调用的事件处理程序。 (5) onReset:指定重置表单时调用的事件处理程序。 (6) TARGET:指定一个目标窗口,其取值为:_blank、_parent、_self、_top。,3.8.2 使用输入型表单控件 1。 input输入域 格式: 姓名 籍贯 此外:type的取值还可能是:password、checkbox、radio、image、hidden、reset等。,2。下拉列表框 用于列表选择。例如: 湖北 湖南 江苏 浙江 福建 ,3。多行文本框 格式: 例如: ,3.9 JavaScript,用法: 或者: ,示例1数字的确认,function isDigit(theNum) var theMask=0123456789; if(theNum=null|theNum.length=0) return false; if theMask.indexOf(theNum)=-1) return false; return true; ,示例2 检查输入是否为空 4.3.2 检查输入是否为空(包括空格) function isEmail(theEmail) var email=theEmail; email=email.replace(/(s*)|(s*$)/g, “); if (email=“) alert(“请输入您的Email地址,地址不能为空!“); return false; 注意:如何实现光标自动定位?,示例3 电子邮件地址格式的确认 function isEmail(theEmail) var email=theEmail; email=email.replace(/(s*)|(s*$)/g, “); if (email=“) alert(“请输入您的Email地址,地址不能为空!“); return false; if (email!= “) var notValid=false; var useremail=email; if (useremail.indexOf(“)=0) notValid=true; if (useremail.charAt(useremail.length -1)=“) notValid=true; if (useremail.indexOf(“.“)=0|useremail.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); ,思考与练习: 1.如何实现不规则表格? 2.如何使用表单提交进行客户端确认?,4.1.1 开始和结束标记 以结尾,格式: 例如: 4.1.2 注释 注释是帮助自己或别人阅读程序。注释可以有两种形式,HTML注释、JSP注释。 HTML注释:,第四章 JSP语法基础 4.1 JSP基本语法规则,HTML注释: 注释的内容会在客户端的HTML源代码中出现。例如: JSP注释 客户端查看源代码时看不到(安全考虑)。格式: 示例:, 用户留言 ,4.2 JSP声明,1、格式: 例如: 2、 JSP表达式和程序段 Jsp表达式的语法形式: 例如: 数值为: Jsp程序段 包含在之间的有效程序段。具体形式: 例如: ,思考与练习: 1.JSP注释与HTML注释的差异? 2.JSP中如何输出HTML标记? 3. 试说明异常机制?,第五章 JSP的页面元素 5.1 JSP指令 5.2 JSP动作语法,5.1 JSP指令 1. Page指令,“Page”指令用于定义JSP文件中的全局属性。 , 毕业生就业指导服务中心 ,特别说明:页面缓存,缓存是一种用于提高系统性能节省操作时间的技术,数据库产品利用它可以提高系统的吞吐率,服务器利用它可以提高性能。缓存是将响应内容临时保存在服务器的内存中,然后在请求处理完毕之后发回给所调用的浏览器。在Web应用程序中,提高系统性能最有效的手段是在需要时缓存页面的输出。 在JSP页面最好使用输出缓存功能。缓存设置方法: 采用JSP标记 通常情况下,默认缓存大小为8KB。缓存设置格式: 在大多数Web应用程序中,缓存大小至少应为32kb,牺牲这么一点额外的内存是很值得的。,2.include指令,include:向当前页中插入一个静态文件的内容。格式如下: ,示例: 武汉科技学院毕业生就业指导服务中心 ,5.2 JSP动作语法 1. 2. 3. ,例子, test ,forwardTo.jsp,运行结果(TOMCAT),2. 包含一个静:态或动态文件. 常用格式如下: 思考:何时使用,何时使用?,3. 在介绍JavaBean时再讨论,思考与练习: 1) 掌握文件包含。 2)制作一个申请免费email的表单,要求填写:用户名、密码、确认密码、性别、地址,其中性别用单选按钮,用户名、密码为必填项且不能为空。请用客户端确认实现上述功能。 3) 上道题目中用户填写的内容显示在屏幕上。 4)编写一个程序,验证用户输入的email地址是否正确(使用客户端确认)。 5)编写一个用户登录的jsp网页,若用户名为aaa,密码为bbb,则显示欢迎该用户访问的字样,否则显示非法用户。要求使用服务器端确认。 6)理解缓存的使用。,第六章 JSP的内建对象 request 请求对象 response 响应对象 session 会话对象 application应用程序对象 out 输出对象,1.out,“out” 对象代表了向客户端发送数据的对象。 out.print() out.println(); out.close(),out的使用 例如:out.println(“武汉”); 思考:如何输出一个换行,或者斜体的aaa?,2. request,用于获取客户端的输入信息。主要有以下方法: 1)getParameter(String name)(很重要) 获得客户端传给服务器端的参数值 String usrmerequest.getParameter(“username”); 2)getRequestURI() 获得所请求的URL地址,3)getServerName() 获得服务器名称 4)getRemoteUser() 获得登录用户名 5)getServerPort() 获得服务器提供HTTP服务的端口号 6)getRemoteAddr() (很重要) 获得客户端的IP地址。 7)setCharacterEncoding(“编码类型“)(很重要) 设置请求的编码类型。 8)getRemoteHost() 获得客户端计算机名称。一般为IP地址。,3. response对象,用于处理HTTP信息。有以下方法: setHeader(String name, String value) 发送HTTP信息,控制客户端和服务器端连接。例如: response.setHeader(“Location”,””); response.setHeader(“Refresh”,”2”); sendRedirect(String url) response.sendRedirect(“”);,4. session对象,“session” 对象代表服务器与客户端所建立的会话,当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购物、客户轨迹跟踪等。“session” 对象建立在cookie的基础上,所以使用时应注意判断一下客户端是否打开了cookie。,session对象,说明: HTTP是无状态(stateless)协议; Web Server 对每一个客户端请求都没有历史记忆; Session用来保存客户端状态信息; 由Web Server 写入; 存于客户端; 客户端的每次访问都把上次的session记录传递给Web Server; Web Server读取客户端提交的session来获取客户端的状态信息;,理解session: session 对象代表服务器与客户端所建立的会话。当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购物、客户轨迹跟踪等。例如:在网上商店站点,你做出的每一个购买决定都会放入购物车,他将收集你要购买的商品,以便一次性付钱。即使浏览了几百个网站,订购了数十商品,购物车也能记住你想购买的所有商品。这是因为WEB应用程序有能力记录跟踪会话。 记住:每个用户都有自己的session,Session的常用方法: setAttribute(参数名,参数值):设置指定name的属性值value,并存储在session中。 例如:session.setAttribute(“myname”,”tom”); getAttribute(参数名):获取与参数名相联系的属性值。 例如: session.getAttribute(“myname”); removeAttribute(参数名):删除与指定参数名相联系的属性。 例如:session.removeAttribute(“myname”); 应用:可以在同一个网站的不同页面之间共享信息。,session对象示例(Form表单Logon_session.html), 姓名 ,session对象示例Logon_session.jsp, 你的名字“已经写入session check ,session对象示例(Check_session.jsp), 您还未登录 “已经登录 ,5. application对象,“application” 对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有getMimeType和getRealPath等。application对象负责提供应用程序在服务器中运行时的一些全局信息。 setAttribute(参数名,参数值) 例如: application.setAttribute(“counter“,“1“); getAttribute(参数名) 例如: application.getAttribute(“counter“); 应用:application 对象可以用于网站访问量,或者在线用户的统计等功能。,application对象实现网页计数器, 网页计数器 您是第位访问者! ,运行结果(第一次访问),刷新一次,思考与练习,编写用户登录程序,根据登录用户的不同,显示不同页面。 编写网站计数器。 利用session编写购物车程序。,第七章 JSP中访问文件,7.1文件操作 7.2文件上传的实现,7.1文件操作,1。File文件对象 File是java.io包的一部分,它代表一个文件或文件夹的引用。格式: File(String) 创建一个File对象,如果没有指定文件名,则创建一个文件夹。例如: File myfile=new File(“d:counter.txt”); 常用方法:exists()、delete()、mkdir(),2。读取文本文件 FileReader 读取字符流,逐个字符读取,格式: FileReader txt=new FileReader(文件名) 例如: FileReader txt=new FileReader(“counter.txt”),BufferedReader 读取字符输入流,一次读取一行,格式: BufferedReader buff=new BufferedReader(Reader); 例如: BufferedReader buff=new BufferedReader(new FileReader(“counter.txt”); buff.close(); 注意: BufferedReader读取字符输入流,并高效率的缓存起来。,3。写入文本文件 BufferedWriter写入一个带缓冲的字符流。格式: BufferedWriter(FileWriter) 例如: File tmpf=new File(“d:xy.txt”); BufferedWriter outf = new BufferedWriter(new FileWriter(tmpf); outf.write(“123”); outf.close();,文件操作示例,try String filestr=“d:/counter.dat“; BufferedReader buff=new BufferedReader(new FileReader(filestr); long tmp; String line; line=buff.readLine(); tmp=Long.parseLong(line); tmp+;,Long tmpint=new Long(tmp); application.setAttribute(“visitor“,tmpint); String counter=tmpint.toString(); File tmpf=new File(filestr); BufferedWriter outf = new BufferedWriter(new FileWriter(tmpf); outf.write(counter); outf.close(); buff.close(); catch (Exception e) System.err.println(“无法更新计数器:“+e); ,4。文件输入流,流(Stream)是一个将数据从一个地方运送到另一个地方的一个对象。输入流格式: FileInputStream inStream=new FileInputStream(String); 例如: FileInputStream inStream=new FileInputStream(“d:mylet.zip”);,5。输出流,OutputStream toClient = response.getOutputStream(); 例如: OutputStream toClient = response.getOutputStream(); toClient.flush(); toClient.close();,7.2文件上传的实现,文件上传在web应用中非常普遍,要在jsp环境中实现文件上传功能是非常容易的,因为网上有许多用java开发的文件上传组件。 common-fileupload组件是著名的apache的一个开源项目之一,可以从/commons/fileupload/下载。用该组件可实现一次上传一个或多个文件,并可限制文件大小。,1。创建DiskFileUpload对象 格式:DiskFileUpload fu = new DiskFileUpload() 方法: setSizeThreshold(int):设置缓冲区大小 例如: fu.setSizeThreshold(102400); setRepositoryPath(path):设置临时目录 例如:fu.setRepositoryPath(“c:temp”); parseRequest(request):得到所有文件。 例如:List fileItems = fu.parseRequest(request),2。具体实现步骤 步骤一:下载commons-fileupload-1.0.jar 注意存放位置! 步骤二:制作上传JSP页面,必须保证表单的ENCTYPE属性值 为multipart/form-data, 这样浏览器才能正确执行上传 文件的操作,步骤三:编写上传文件的代码 DiskFileUpload fu = new DiskFileUpload(); / 设置缓冲区大小,这里是100kb fu.setSizeThreshold(102400); String path = “c:mfile“; /存放上传文件的目录 fu.setRepositoryPath(path);,try List fileItems = fu.parseRequest(request); Iterator fileiterator = fileItems.iterator(); / 依次处理每一个文件 while(fileiterator.hasNext() FileItem fi = (FileItem) fileiterator.next(); /传送到服务器c:mfile目录 if (fi.getName().length()0) File fileName =new File(fi.getName(); String imgname imgname=fileName.getName(); File unitFile=new File(path+“/“+imgname); fi.write(unitFile); ,思考与练习,1.在网上搜集apache 的common-fileupload组件相关资料,并利用其实现文件上传。 2. 利用文件操作功能编写网站计数器,并将其与第6章方法进行比较。,第八章 JSP中访问数据库 8.1数据库知识简介 8.2 MySQL使用 8.3 用户登录的实现 8.4 数据库记录的修改 8.5 数据库修改的优化处理,8.1数据库知识简介,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,),8.2 mySQL使用,1、安装mysql。 2、mySQL的几个常用命令 登录:mysql u root -p 打开数据库:use 数据库名 增加管理员用户: GRANT ALL PRIVILEGES ON *.* TO montylocalhost IDENTIFIED BY something WITH GRANT OPTION; 3、使用图形化管理软件Navicat Premium导航猫,8.3 用户登录的实现,8.3.1 连接数据库的两种方式 ODBC、JDBC,8.3.2、测试数据库连接 1、获得JDBC驱动程序 2、在Dreamwearver中测试连接,1、装载驱动程序 装载JDBC-ODBC桥驱动程序 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); 装载JDBC驱动程序 根据数据库的不同有差异。例如: 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连接数据库,设置连接数据库的URL 根据数据库的不同有差异。例如: mySQL数据库: jdbc:mysql:/服务器名/数据库名 SQL Server数据库: jdbc:microsoft:sqlserver:/服务器名:1433;DatabaseName=数据库名 2、利用DriverManager创建与数据库的连接 格式: Connection myconn=DriverManager.getConnection(url,username,password),8.3.4 通过JDBC连接数据库,回忆一下try语句 当发生错误时,采用异常处理机制。JSP采用try-catch结构处理错误。 try-catch的实际意思是:尝试这块可能导致错误的代码。如果它执行正常,那么继续执行下面的程序。如果该代码无法执行,捕获该错误并进行相应处理。 基本形式: try /程序块 catch(ExceptionType e) /对错误的处理,8.3.4 通过JDBC连接数据库,8.3.4 通过JDBC连接数据库,例如: try File cf=new File(“c:/incfiles/counter.txt“); catch (Exception e) out.println(“无法找到文件!“); ,与数据库连接的示例: try Class.forName(“org.gjt.mm.mysql.Driver“); Connection myconn=DriverManager.getConnection(“jdbc:mysql:/localhost/test“,“test“,“test“); myconn.close(); out.println(“连接成功!”); catch(Exception e) out.println(“无法连接数据库!“); 思考:如何实现与SQL Server数据库服务器的连接?,8.3.4 通过JDBC连接数据库,关闭连接,8.3.4 通过JDBC连接数据库,3、DriverManager的常用方法 createStatement() Class.forName(“org.gjt.mm.mysql.Driver“); myconn=DriverManager.getConnection(“jdbc:mysql:/localhost/test“,“test“,“test“); Statement rsp=myconn.createStatement(); prepareStatement(sql语句) Class.forName(“org.gjt.mm.mysql.Driver“); myconn=DriverManager.getConnection(“jdbc:mysql:/localhost/test“,“test“,“test“); PreparedStatement rsp=myconn.prepareStatement(“select * from users“);,8.3.4 通过JDBC连接数据库,4、记录集的使用 理解记录集ResultSet ResultSet rs=rsp.executeQuery(SQL查询语句); 回忆循环语句 循环结构是程序中一种重要的基本结构,是指在一定的条件下反复执行某段程序,被反复执行的这段程序称为“循环体”。JSP中有三种语句来实现循环结构,分别是while,do-while,8.3.4 通过JDBC连接数据库,记录集的常用方法 1)next() 2)getString(n)或者getString(“字段名”) 例如: Class.forName(“org.gjt.mm.mysql.Driver“); Connection myconn=DriverManager.getConnection(“jdbc:mysql:/localhost/test“,“test“,“test“); Statement rsp=myconn.createStatement(); ResultSet rs=rsp.executeQuery(“select * from users“);,8.3.4 通过JDBC连接数据库,访问数据库的完整例子(能否修改成使用PreparedStatement): try Connection myconn=null; Class.forName(“org.gjt.mm.mysql.Driver“); myconn=DriverManager.getConnection(“jdbc:mysql:/localhost/test“,“test“,“test“); Statement rsp=myconn.createStatement(); ResultSet rs=rsp.executeQuery(“select * from users“); while(rs.next() out.println(rs.getString(1); out.println(“,8.3.4 通过JDBC连接数据库,使用PreparedStatement访问数据库: try Connection myconn=null; Class.forName(“org.gjt.mm.mysql.Driver“); myconn=DriverManager.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(“无法连接数据库!“);,8.3.5 实现用户登录,步骤一:使用request.getParameter()接收用户名、密码 步骤二:构造查询数据库的sql语句 步骤三:使用PreparedStatement或者Statement查询数据库 步骤四:判断返回的记录集是否为空。由此决定用户是否登录成功! 具体实现,请先思考一下? 另外一个问题:目前能否实现记录的修改?,思考与练习,1)如何获取用户填写的表单数据。 2)建立一个数据表student,存放学生成绩,然后利用Dreamweaver编写网页实现数据库记录的分页显示、记录的修改、记录的添加等。 3)在mySQL中创建超级用户tom。 4)在mySQL数据库中创建数据库gzgl,并创建表users(username c(10),password c(10),usertag n(1) ) ,并向表中添加一条记录。 5)在Dreamweaver中配置与gzgl的数据库连接。 6)如何实现与mySQL数据库的JDBC连接? 7)如何通过配置服务器实现用户登录 8)编写登录页面,实现基于数据库的登录。,8.4 数据库记录的修改,一、利用PreparedStatement的executeUpdate()方法修改记录 PreparedStatement rsp=myconn.prepareStatement(“ update语句“); rsp.executeUpdate(); 二、利用Statement的executeUpdate(sql语句)方法修改记录 Statement rsp=myconn.createStatement(); rsp.executeUpdate(“update语句“);,使用PreparedStatement的executeUpdate()方法的示例 try Connection myconn=null; Class.forName(“org.gjt.mm.mysql.Driver“); myconn=DriverManager.getConnection(“jdbc:mysql:/localhost/test“,“test“,“test“); String sql=“update users set password=888 where username=aaa“; PreparedStatement rsp=myconn.prepareStatement(sql); rsp.executeUpdate(); rsp.close(); myconn.close(); catch(Exception e) out.println(“无法连接数据库!“);,示例1:PreparedStatement,使用Statement的executeUpdate(sql)方法的示例 try Connection myconn=null; Class.forName(“org.gjt.mm.mysql.Driver“); myconn=DriverManager.getConnection(“jdbc:mysql:/localhost/test“,“test“,“test“); String sql=“update users set password=888 where username=aaa“; Statement rsp=myconn.createStatement(); rsp.executeUpdate(sql); rsp.close(); myconn.close(); catch(Exception e) out.println(“无法连接数据库!“);,示例2:Statement,思考与练习,1)分别用PreparedStatement和Statement修改数据库的记录 2)编写一个页面,利用学生的学号修改学生的基本情况。,8.5 数据库修改的优化处理,基本思路: 一、利用?构造SQL语句 例如:String sql = “update users set password=? where username=aaa “ 二、使用PreparedStatement的rsp.setString(n,字符串值);传递值 三、利用PreparedStatement的executeUpdate()实现数据修改,8.5 示例,try Connection myconn=null; Class.forName(“org.gjt.mm.mysql.Driver“); myconn=DriverManager.getConnection(“jdbc:mysql:/localhost/test“,“test“,“test“); String sql=“update users set password=88890 where username=?“; PreparedStatement rsp=myconn.prepareStatement(sql); rsp.setString(1,“ccc“); rsp.executeUpdate(); rsp.close(); myconn.close(); out.println(“更新完毕!“); catch(Exception e) out.println(“无法连接数据库!“);,思考与练习,1)创建一个页面,可以修改学生注册的用户名、密码,要求采用优化处理方式。 2)编写一个学生信息查询的网页。输入待查询的学生姓名,查询
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3.2细胞器之间的分工合作 教学设计-2024-2025学年高一上学期生物人教版(2019)必修1
- 第二节 撒哈拉以南非洲说课稿-2025-2026学年初中地理粤人版七年级下册-粤人版2012
- 2025专营合同范本下载
- 2025二手房屋交易合同范本下载
- 《2025年电子配件购销合同》
- 2025买卖合同的解除条件及方法
- 2025房地产买卖合同3
- 第8讲 东南亚 南亚-印度 第1课时 教学设计 2023-2024学年高二下学期
- 2025仓库租赁合同终止协议
- 线缆厂办公区域管理细则
- 中国骨折内固定术后感染诊断与治疗专家共识
- JT-T-1258-2019港口能源计量导则
- 2024年急性胰腺炎急诊诊治专家共识解读课件
- (必会)中级《审计理论与实务》近年考试真题题库(300题)
- 食品安全与日常饮食智慧树知到期末考试答案章节答案2024年中国农业大学
- 烘焙与甜点制作
- T-CRHA 028-2023 成人住院患者静脉血栓栓塞症风险评估技术
- 线路光缆施工方案
- 弹塑性力学讲稿课件
- 心怀国防梦争做好少年中小学生国防教育日主题班会课件
- 《运动的快慢》速度、平均速度与瞬时速度课件
评论
0/150
提交评论