您的位置:首页 > 运维架构 > Tomcat

Tomcat数据源与连接池/上传功能

2018-01-03 00:32 295 查看
连接池
简单的连接池示范

数据源DataSource

上传

连接池

连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。

在Tomcat的conf文件夹中的context.xml文件,即存放连接池语句的地方:

简单的连接池示范

//在context.xml文件中加入
<Context>
//name为索引名字,value即该索引下的值,type为该索引保存的形式,需以包的句式表达
<Enviroment name = "name"  value="hello world!" type="java.lang.String">
</Context>
//在jsp文件中调用
<%
Context context = new InitialContext();
String name = (String)context.lookup("java:comp/env/name");
%>


数据源(DataSource)

数据的来源,是提供某种所需要数据的器件或原始媒体。在数据源中存储了所有建立数据库连接的信息。就像通过指定文件名称可以在文件系统中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。

实际上,DataSource就是一个内部封装了连接池的工具,并在获得连接池后,自发进行connection操作,即通过连接池缓存快速连接上数据库。这个过程需要我们在其context.xml文件中创建其调用语句:

//在context.xml文件中加入
<Context>
<Resource name="jdbc/库名" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="数据库用户名"
password="数据库用户密码" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/库名?
useUnicode=true&characterEncoding=utf-8" />
</Context>


然后我们在项目的web.xml文件中添加:

<resource-ref>

<res-ref-name>jdbc/库名</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>


在导入对应的包后,于我们的BaseDao类中,只需创建如下方法:

public Connection getConnection() {

Context ctx;
try {
ctx = new InitialContext();

DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/dept");
conn=ds.getConnection();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;

}


即可创建与目标数据库的连接。

上传

<%@page import="java.io.File"%>
<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@page import="org.apache.commons.fileupload.FileItemFactory"%>
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%
//设置编码格式
request.setCharacterEncoding("UTF-8");
//上传的地址
String uploadPath = request.getSession().getServletContext()
.getRealPath("upload");
//检查请求类型
boolean flag = ServletFileUpload.isMultipartContent(request);
if (flag) {
FileItemFactory fileItemFactory = new DiskFileItemFactory();
ServletFileUpload fileUpload = new ServletFileUpload(
fileItemFactory);
List<FileItem> list = fileUpload.parseRequest(request);
//转化为迭代器
Iterator<FileItem> iterator = list.iterator();
while (iterator.hasNext()) {
// 上传的数据
FileItem fileItem = iterator.next();
//是否是文件类型,如果是啧返回false
if (fileItem.isFormField()) {
String fieldName = fileItem.getFieldName();
if(fieldName.equals("title")){
entity.setTitle(fieldItem.getString("UTF-8"))
}
} else {
File saveFile = new File(fileItem.getName());
File uploadFile = new File(uploadPath,
saveFile.getName());
fileItem.write(uploadFile);

}
}
} else {
out.print("上传不合法");
}
%>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat 数据 管理