




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章使用分层实现业务处理预习检查什么是连接池?为什么要使用连接池?什么是JNDI?JNDI可以做什么?使用JNDI获取资源的关键代码是什么?在Tomcat中配置数据源所涉及的文件和标签是什么?在分层模式中,三层指的是哪三层?集中测试2/41回顾与作业点评使用哪个内置对象可以实现访问本网站的人数统计?简述session和cookie的应用场合点评作业的提交情况和共性问题回顾作业点评3/41本章任务实现在Web应用中访问Tomcat中发布的信息使用JNDI查找新闻发布系统数据源使用三层架构实现删除新闻主题、删除新闻和单条新闻显示的功能4/41本章目标熟练应用JNDI查找数据源掌握数据库连接池原理熟练应用分层架构开发应用系统5/41JNDI简介什么是JNDIJavaNamingandDirectoryInterface,Java命名和目录接口通过名称将资源与服务进行关联JNDI的作用与优点在应用与Java对象或资源之间建立松耦合的逻辑关联,简化应用对于资源的配置及维护工作可以在更大范围、不同应用之间共享资源6/41发布信息:修改Tomcat\conf\context.xml文件获取资源:使用lookup()进行查找JNDI的简单应用如何实现在Tomcat中发布一条信息供所有的Web应用程序使用?<Context><Environmentname="tjndi"value="helloJNDI"type="java.lang.String"/></Context>//javax.naming.Context提供了查找JNDI的接口Contextctx=newInitialContext(); //p/env/为前缀Stringtestjndi=(String)ctx.lookup("p/env/tjndi");out.print("JNDI:"+testjndi);初始化Context对象调用lookup()方法JNDI查找的名称演示示例1:JNDI的简单应用问题实现步骤7/41学员操作—使用JNDI训练要点使用JNDI需求说明在Tomcat中发布一条信息供所有的Web应用程序使用练习完成时间:15分钟8/41共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解9/41为什么使用连接池传统数据库连接方式的不足需要经常与数据库建立连接,在访问结束后必须关闭连接释放资源当并发访问数量较大时,执行速度受到极大影响系统的安全性和稳定性相对较差请求响应操作(打开连接)结果(关闭连接)多次重复操作10/41生活中的连接池热线电话----多名接线员可同时处理多路来电已连接,直接通话……已连接,直接通话11/41连接池技术原理连接池中的连接应用程序从连接池中获得连接Connection1Connection2Connection3请求响应连接池中的连接对象是由谁创建的呢?12/41DataSource与连接池javax.sql.DataSource接口的实现类负责管理与数据库的连接以连接池的形式对数据库连接进行管理如何获得DataSource的实例?问题13/41获取DataSource实例Tomcat支持将DataSource实现发布为JNDI资源Web应用通过JNDI获得DataSource引用jdbc/s1jdbc/s2数据源数据源JNDI名DataSource实例1context.lookup( "p/env/jdbc/s1")DataSource实例2Web应用Tomcat环境14/41访问数据源4-1使用连接池实现数据库连接配置context.xml文件配置context.xml文件配置web.xml文件添加数据库驱动文件进行代码编写,查找并获取数据源15/41访问数据源4-2Tomcat的conf/context.xml中的配置<Context><Resourcename="jdbc/news"auth="Container"type="javax.sql.DataSource"maxActive="100"maxIdle="30"maxWait="10000"username="newsu"password="123456"driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://:3306/newsmanagersystem?useUnicode=true&characterEncoding=utf-8"/></Context>属性名称说明name指定Resource的JNDI名称auth指定管理Resource的Managertype指定Resource所属的Java类maxActive指定连接池中处于活动状态的数据库连接的最大数目maxIdle指定连接池中处于空闲状态的数据库连接的最大数目maxWait指定连接池中的连接处于空闲的最长时间16/41访问数据源4-3添加数据库驱动文件把数据库驱动jar文件,加入到Tomcat的lib中配置应用程序的web.xml文件在web.xml中配置<resource-ref><resource-ref><res-ref-name>jdbc/news</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref>指定JNDI的名字,与<Resource>元素中的name一致指定引用资源的类名,与<Resource>元素中的type一致指定管理所引用资源的Manager与<Resource>元素中的auth一致演示示例2:使用连接池实现数据库连接17/41访问数据源4-4importjavax.naming.Context;importjavax.naming.InitialContext;importjavax.naming.NamingException;importjavax.sql.DataSource;publicclassBaseDao{publicConnectiongetConnection(){Connectionconn=null;try{//获取与逻辑名相关联的数据源对象Contextctx=newInitialContext();DataSourceds=(DataSource)ctx.lookup("p/env/jdbc/news");conn=ds.getConnection(); }catch(SQLExceptionexception){exception.printStackTrace();}catch(NamingExceptionnamingException)namingException.printStackTrace();}returnconn;}}18/41小结使用连接池实现数据库连接配置context.xml文件配置context.xml文件配置web.xml文件添加数据库驱动文件进行代码编写,查找并获取数据源Tomcat的conf文件夹下与context.xml指定的名称一致加入到Tomcat的lib中lookup()参数的写法19/41学员操作—使用连接池实现数据库连接2-1训练要点连接池的配置通过JNDI查找数据源连接数据库需求说明修改新闻发布系统,通过JNDI查找数据源,实现数据库的访问指导讲解需求说明20/41学员操作—使用连接池实现数据库连接2-2实现思路配置Tomcat安装目录/conf/context.xml文件配置/WEB-INF/web.xml文件在Tomcat的lib目录中添加数据库驱动jar文件在BaseDao中获取数据连接方法中编写代码,查找并获取数据源指导完成时间:25分钟21/41共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解22/41为什么需要分层JSP开发时分两层的弊端 展示逻辑与业务流程混合、或者业务代码与数据访问混合编码职责不清,修改时互相影响,难以扩展和重用23/41三层模式三层模式的划分根据业务需要控制执行过程,进行事务管理提供与业务无关的数据访问操作与用户交互收集数据展示结果24/41层与层之间的关系表示层依赖于业务逻辑层业务逻辑层依赖于数据访问层表示层业务逻辑层数据访问层客户请求客户请求响应数据响应数据25/41分层实现删除新闻主题3-1编写数据访问层组件数据库连接的开闭由业务层统一管理publicclassTopicsDaoImplextendsBaseDaoimplementsTopicsDao{
//Connection对象由业务层通过构造方法注入
publicTopicsDaoImpl(Connectionconn){super(conn);}
……//省略部分方法}26/41try{conn=DatabaseUtil.getConnection();mit(false);//关闭自动提交,开启事务//为DAO组件设置数据库连接对象,保证整个流程使用同一个Connection对象NewsDaonewsDao=newNewsDaoImpl(conn);TopicsDaotopicsDao=newTopicsDaoImpl(conn);//控制业务流程的执行……mit();//执行成功,提交事务}catch(SQLExceptione){……conn.rollback();//出现异常,回滚事务……}finally{//业务完成后统一关闭数据库连接DatabaseUtil.closeAll(conn,null,null);}编写业务逻辑层组件封装业务流程并统一管理数据库连接和事务分层实现删除新闻主题3-227/41修改控制页面<%……//省略部分代码
TopicsServicetopicsService=newTopicsServiceImpl();if("del".equals(opr)){//删除主题
Stringtid=request.getParameter("tid");intresult=topicsService.deleteTopic(Integer.parseInt(tid));if(result==-1){out.print("<scripttype=\"text/javascript\">");out.print("alert(\"该主题下还有文章,不能删除!\");");out.print("location.href=\"topic_control.jsp?opr=list\";");out.print("</script>");}elseif(result==0){……}……}……//省略其他操作代码%>演示示例3:使用三层修改删除新闻主题分层实现删除新闻主题3-328/41学员操作—使用三层架构修改删除新闻主题2-1训练要点使用三层构架需求说明修改删除新闻主题功能,使之符合三层构架练习讲解需求说明29/41学员操作—使用三层架构修改删除新闻主题2-2实现思路修改数据访问层组件,数据库连接的开闭由业务层统一管理编写业务逻辑层组件,封装业务流程并统一管理数据库连接和事务修改控制页面指导完成时间:25分钟30/41共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解31/41分层原则上层依赖其下层,依赖关系不跨层表示层不能直接访问数据访问层上层调用下层的结果,取决于下层的实现下一层不能调用上一层下一层不依赖上一层上层的改变不会影响下一层下层的改变会影响上一层得到的结果在上一层中不能出现下一层的概念分工明确,各司其职32/41小结分层开发的优势职责清晰无损替换降低了依赖程度复用代码33/41学员操作—使用三层架构修改删除新闻功能需求说明使用三层架构删除某一条新闻删除新闻时将有关这条新闻的所有评论一同删除练习提示完成时间:20分钟34/41共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解35/41学员操作—使用三层架构修改单条新闻显示需求说明修改单条新闻显示,使之符合三层构架练习完成时间:20分钟36
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国生物质燃气设备行业市场发展分析及发展前景与投资研究报告
- 2025-2030中国热箔压印机行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国滑爽添加剂行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国游艇玩具行业市场发展趋势与前景展望战略分析研究报告
- 2025-2030中国渗透剂行业市场发展现状及竞争格局与投资发展研究报告
- 2025-2030中国液压阀行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国液压元件市场调研及发展策略研究报告
- 加工木方厂房合同范例
- 农村车库买卖合同标准文本
- 2025-2030中国消费金融行业发展趋势与前景展望战略研究报告
- 自缢的护理查房
- 安全生产费用使用台账
- 新外研版高一英语必修二unit6课文
- 精神障碍社区康复服务投标方案
- 冰箱温度监测登记表
- 《利用导数研究函数的零点问题》教学设计
- 唯识二十论述记讲记(完整版)-智敏上师
- 建设单位甲方对监理单位考核管理办法
- 摩登情书原著全文在线【3篇】
- 统一战线理论与政策(讲课稿)
- 表贴式永磁同步电动机永磁体气隙磁场解析计算
评论
0/150
提交评论