21-连接池和文件上传 .ppt

上传人(卖家):hyngb9260 文档编号:5946746 上传时间:2023-05-17 格式:PPT 页数:16 大小:249KB
下载 相关 举报
21-连接池和文件上传 .ppt_第1页
第1页 / 共16页
21-连接池和文件上传 .ppt_第2页
第2页 / 共16页
21-连接池和文件上传 .ppt_第3页
第3页 / 共16页
21-连接池和文件上传 .ppt_第4页
第4页 / 共16页
21-连接池和文件上传 .ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、连接池和文件上传连接池和文件上传本章目标本章目标q连接池的相关概念q为什么要用连接池q连接池是什么及实现思想qJNDI相关概念q连接池的实现qServer.xml配置q通过连接池获取连接对象q文件上传为什么要用连接池为什么要用连接池q在实际应用开发中,特别是在WEB应用系统中,如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接、打开数据库、存取数据和关闭数据库连接等步骤,而连接并打开数据库是一件既消耗资源又费时的工作,如果频繁发生这种数据库操作,系统的性能必然会急剧下降,甚至会导致系统崩溃。数据库连接池技术是解决这个问题最常用的方法

2、,在许多应用程序服务器(例如:Weblogic,WebSphere,JBoss,Tomcat)中,基本都提供了这项技术,无需自己编程。连接池技术连接池技术q 数据库连接池技术非常简单是将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接,这样,通过复用这些已经建立的数据库连接,可以克服上述缺点,极大地节省系统资源和时间。q 数据库连接池的主要操作如下:q 建立数据库连接池对象(服务器启动)。q 按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。q 对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有

3、空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。q 存取数据库。q 关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。q 释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。JNDI简介简介q JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。q JNDI要注意的重要一点是,它提供

4、了应用编程接口(application programming interface,API)和服务提供者接口(service provider interface,SPI)。这一点的真正含义是,要让你的应用与命名服务或目录服务交互,必须有这个服务的JNDI服务提供者,这正是JNDI SPI发挥作用的地方。服务提供者基本上是一组类,这些类为各种具体的命名和目录服务实现了JNDI接口很象JDBC驱动为各种具体的数据库系统实现了JDBC接口一样。作为一个应用开发者,你不必操心JNDI SPI。你只需要确认你要使用的每一个命名或目录服务都有服务提供者。连接池的实现连接池的实现(配置配置)q我们知道许多

5、应用程序服务器基本都提供了连接池技术,无需自己编程。只需针对不同应用服务器进行相应的配置即可。q下面我们看看在Tomcat5.5中配置连接池;(大家注意就Tomcat不同版本之间连接池配置差别都很大)q在Tomcat5.5中配置连接池要编辑两个配置文件:qserver.xmlq将相应的数据驱动考到将相应的数据驱动考到 tomcat根目下根目下 common/lib 下下Tomcat连接池注意事项连接池注意事项q不能以发布的工程去调用连接池q不能没有Context,然后用发布,会提示在此Context中找不到连接池q只能以Context配置形式配连接池q必须将jar包拷到Tomcat根 comm

6、on/lib下。连接池配置连接池配置(servlet.xml)配置说明一配置说明一qResource项(即连接池的DataSource对象),q有3个属性name、auth、type,qname项是JNDI的名称定义,程序通过JNDI才能找到此对象,名称可以任意取值,这里取名jdbc/tcpdb1;auth项即连接池管理权属性,这里取值Container,申明为容器管理;type项即对象的类型,这里取值javax.sql.DataSource,申明为数据库连接池。配置说明二配置说明二qmaxActive是最大活动连接数,这里取值为20,表示同时最多有20个数据库连接。maxIdle是最大的空闲

7、连接数,这里取值为20,表示即使没有数据库连接时依然可以保持20空闲的连接,而不被清除,随时处于待命状态。MaxWait是最大等待秒钟数,这里取值-1,表示无限等待,直到超时为止,也可取值1000,表示1秒后超时。通过连接池获取连接对象通过连接池获取连接对象Context context=new InitialContext();/容器上下文初始化.DataSource ds=(DataSource)context.lookup(“java:comp/env/jdbc/tcpdb1”);/通过JNDI名得到数据源.Connection conn=ds.getConnection();/获取连接

8、对象.System.out.println(conn);conn.close();/用完一定要关闭.文件上传文件上传q对于客户端普通表单传过来的文本数据我们可以通过 request.getParameter(“”)方法来获取;但如果客户端传的是二近制信息(如图片,文件等)那么获取二近制信息就比较麻烦;下面我介绍利用struts框架中的相关包来实现文件上传。q将用到struts中的包是:qcommons-fileupload.jar(主要类包)q将上面三个包考到工程的 WEB-INF/lib下文件上传示例文件上传示例(表单表单)q如果要实现文件上传,对于要提交的表单 form 属性设置有如下要求

9、:q其中 method属性值必需是 postq必须具有:enctype=“multipart/form-data”表示以字节方式提交数据q例如:文件上传示例文件上传示例(处理处理)public HashMap parseRequest(HttpServletRequest request)HashMap paramMap=new HashMap();DiskFileUpload dfu=new DiskFileUpload();/获取文件上传处理对象.dfu.setSizeMax(1024*1024*100);/设置允许上传文件大小上限.dfu.setSizeThreshold(4096);/

10、设置缓冲区大小.dfu.setRepositoryPath(this.getServletContext().getRealPath(“/tmp”);/设置临时文件夹.try List list=dfu.parseRequest(request);/解析request.Iterator it=list.iterator();while(it.hasNext()FileItem fi=(FileItem)it.next();if(fi.isFormField()/如果是普通文本.paramMap.put(fi.getFieldName(),fi.getString();else/否则是文件.St

11、ring tmpFileName=;if(!fi.getName().equals()/如果有传文件.tmpFileName=getRndFileName(fi.getName();/将文件保存到服务器.fi.write(new File(this.getServletContext().getRealPath(“/mcimg/”+tmpFileName);文件上传示例文件上传示例(处理处理)paramMap.put(fi.getFieldName(),tmpFileName);catch(Exception e)e.printStackTrace();return paramMap;/最后返

12、回的的HashMap中存的是表单元素名与值;如果是上传文件框,值是文件名;/获取随机文件名.如 aa.gif bb.jpg 等.public String getRndFileName(String path)String rndFileName=String.valueOf(System.currentTimeMillis()+String.valueOf(new Random().nextInt(100);String extFileName=getExName(path);if(!extFileName.equals()rndFileName=rndFileName+.+extFileName;return rndFileName;/获取文件扩展名.如:gif jpg(不包括.)等.public String getExName(String path)int strint=path.lastIndexOf(.);return path.substring(strint+1);总结总结q连接池的相关概念q为什么要用连接池q连接池是什么及实现思想qJNDI相关概念q连接池的实现qServer.xml配置q通过连接池获取连接对象q文件上传

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 项目策划与方案类
版权提示 | 免责声明

1,本文(21-连接池和文件上传 .ppt)为本站会员(hyngb9260)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|