Apache Commons.docx
- 文档编号:23355849
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:21
- 大小:23.12KB
Apache Commons.docx
《Apache Commons.docx》由会员分享,可在线阅读,更多相关《Apache Commons.docx(21页珍藏版)》请在冰豆网上搜索。
ApacheCommons
ApacheCommons
目录
ApacheCommons1
Commons-configuration1
Commons-FileUpload:
2
ApacheCommonsDbUtils4
CommonsBeanUtils6
CommonsCLI7
CommonsCodec7
CommonsCollections7
CommonsDBCP8
CommonsHttpClient8
CommonsIO8
CommonsJXPath9
CommonsLang9
CommonsMath9
CommonsNet9
CommonsValidator10
CommonsVirtualFileSystem10
Commons-configuration
1.如果要使用configuration这个包,首先要保证使用JDK1.2以上,还要引入如下jar包
commons-beanutils
commons-lang
commons-logging
commons-collections
commons-digester
commons-codec
commons-jxpath
commons-configuration最新的版本是1.5,这个工具是用来帮助处理配置文件的,支持很多种存储方式
1. Propertiesfiles
2. XMLdocuments
3. Propertylistfiles(.plist)
4. JNDI
5. JDBCDatasource
6. Systemproperties
7. Appletparameters
8. Servletparameters
最主要的作用是读取资源文件,每一种文件格式都有一个对应的类,如下
properties文件--PropertiesConfiguration类;
xml文件—XMLConfiguration;
.ini文件—INIConfiguration;
.plist文件—PropertyListConfiguration;
还可以从JNDI中读取properties—JNDIConfiguration;当然还可以使用system的properties--SystemConfiguration
2.用Properties读取配置文件
usergui.properties(放在类根路径下面):
colors.background=#FFFFFF
colors.foreground=#000080
window.width=500
window.height=300
keys=cn,com,org,uk,edu,jp,hk
(1)一般写法:
publicstaticvoidreadProperties(){
InputStreamin=null;
try{
in=newBufferedInputStream((newClassPathResource("usergui.properties")).getInputStream());
}catch(IOExceptione1){
e1.printStackTrace();
}
Propertiesp=newProperties();
try{
p.load(in);
System.out.println(p.getProperty("colors.background"));
}catch(IOExceptione){
}
}
(2)另一种ResourceBundle方式:
publicstaticvoidreadProperties(){
Localelocale=Locale.getDefault();
ResourceBundlelocalResource=ResourceBundle.getBundle("usergui",locale);
Stringvalue=localResource.getString("colors.background");
System.out.println("ResourceBundle:
"+value);
}
(3)使用PropertiesConfiguration
publicstaticvoidloadProperty(){
try{
PropertiesConfigurationconfig=newPropertiesConfiguration("usergui.properties");
config.setProperty("colors.background","#00000F");//更改值
config.save();
config.save("usergui.backup.properties");//saveacopy
System.out.println(config.getProperty("colors.background"));
System.out.println(config.getInt("window.width"));
String[]keys=config.getStringArray("keys");
Listkey2=config.getList("keys");
for(inti=0;i System.out.println(keys[i]); } for(Objectstr: key2){ System.out.println(str.toString()); } }catch(Exceptione){ } } Commons-FileUpload: packagecom.logcd.servlet; importjava.io.File; importjava.io.IOException; importjava.util.Iterator; importjava.util.List; importjavax.servlet.ServletException; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; mons.fileupload.FileItem; mons.fileupload.disk.DiskFileItemFactory; mons.fileupload.servlet.ServletFileUpload; publicclassUploadextendsHttpServlet{ privateStringuploadPath="D: \\uploadDir";//上传文件的目录 publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletException{ try{ DiskFileItemFactoryfactory=newDiskFileItemFactory(); factory.setSizeThreshold(4096);//设置缓冲区大小,这里是4kb ServletFileUploadupload=newServletFileUpload(factory); upload.setSizeMax(4194304);//设置最大文件尺寸,这里是4MB List Iterator StringBuildermsgBuilder=newStringBuilder();//用于返回上传的文件 while(i.hasNext()){ FileItemfi=(FileItem)i.next(); StringfileName=fi.getName(); if(fileName! =null){ FilefullFile=newFile(fi.getName()); FilesavedFile=newFile(uploadPath,fullFile.getName()); fi.write(savedFile); msgBuilder.append(fullFile.getName()); msgBuilder.append(" "); msgBuilder.append(" void(0);\"onclick=\"\">"); msgBuilder.append("删 除"); msgBuilder.append(" } } request.setCharacterEncoding("GBK");//设置页面编码 response.setContentType("text;charset=GBK");//内容类型 response.getWriter().println(""); }catch(Exceptione){ e.printStackTrace(); response.sendRedirect(""); } } publicvoidinit()throwsServletException{ FileuploadFile=newFile(uploadPath); if(! uploadFile.exists()){ uploadFile.mkdirs(); } } } upload.html实现无刷新文件上传。 DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http: //www.w3.org/TR/html4/loose.dtd">
");
body{
font-size:
12px;
}
a{
text-decoration:
none;
}
style="border: 1pxsolid#2D147E;background: #eeeeee;color: #2D147E;font: bold12px’隶书’;height: 18px;width: 300px" onchange="uploadFile(this);"> red;font-size: 12px;">信息提示: 支持doc,xls,rar文件的上传 none'> function$(id){ returndocument.getElementById(id); } functionverifyAccept(obj){ varaAccetpType,sFileType; varsAccetpType=obj.accept.toLowerCase(); if(sAccetpType.length>0){ aAccetpType=sAccetpType.split(","); } if(obj.value! =""&&aAccetpType.length>0){ sFileType=obj.value.replace(/.*\./g,"").toLowerCase(); varisAccept=sAccetpType.indexOf(sFileType); if(isAccept==-1){ alert("不支持此文件类型! "); obj.outerHTML=obj.outerHTML; returnfalse; } } returntrue; } functionuploadFile(obj){ if(verifyAccept(obj)){ $("form1").submit(); } } functioncallback(msg){ $("file").outerHTML=$("file").outerHTML; $("msg").innerHTML=$("msg").innerHTML+" } commons-lang-2.4.jar commons-configuration-1.5.jar commons-fileupload-1.2.jar commons-io-1.2.jar ApacheCommonsDbUtils 这个工具并不是现在流行的OR-Mapping工具(比如Hibernate),只是简化数据库操作,比如 QueryRunnerrun=newQueryRunner(dataSource); //Executethequeryandgettheresultsbackfromthehandler Object[]result=(Object[])run.query("SELECT*FROMPersonWHEREname=? ","JohnDoe"); 1.commons-dbutils是Apache组织提供的一个开源JDBC工具类库,对传统操作数据库的类进行二次封装,可以把结果集转化成List。 项目主页: http: //commons.apache.org/dbutils/ 文档地址: http: //commons.apache.org/dbutils/examples.html 下载地址: http: //commons.apache.org/downloads/download_dbutils.cgi (1)mons.dbutils DbUtils: 提供如关闭连接、装载JDBC驱动程序等常规工作的工具类 QueryRunner: 该类简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。 QueryLoader: 属性文件加载器,主要用于加载属性文件中的SQL到内存中。 (2)mons.dbutils.handlers ArrayHandler: 将ResultSet中第一行的数据转化成对象数组 ArrayListHandler将ResultSet中所有的数据转化成List,List中存放的是Object[] BeanHandler: 将ResultSet中第一行的数据转化成类对象 BeanListHandler: 将ResultSet中所有的数据转化成List,List中存放的是类对象 ColumnListHandler: 将ResultSet中某一列的数据存成List,List中存放的是Object对象 KeyedHandler: 将ResultSet中存成映射,key为某一列对应为Map。 Map中存放的是数据 MapHandler: 将ResultSet中第一行的数据存成Map映射 MapListHandler: 将ResultSet中所有的数据存成List。 List中存放的是Map ScalarHandler: 将ResultSet中一条记录的其中某一列的数据存成Object (3)mons.dbutils.wrappers SqlNullCheckedResultSet: 该类是用来对sql语句执行完成之后的的数值进行null的替换。 StringTrimmedResultSet: 去除ResultSet中中字段的左右空格。 Trim() 1.例子 publicclassTestDbUtils{ /** *BeanListHandler: 将ResultSet中所有的数据转化成List,List中存放的是类对象 */ publicstaticvoidgetBeanListData(){ Connectionconn=getConnection(); QueryRunnerqr=newQueryRunner(); try{ ResultSetHandlerrsh=newBeanHandler(TUser.class); TUserusr=(TUser)qr.query(conn,"SELECTid,username,genderFROMt_userWHEREid=10000",rsh); System.out.println(StringUtils.center("findById",50,'*')); System.out.println("id="+usr.getId()+"name="+usr.getUsername()+"gender="+usr.getGender()); Listresults=(List)qr.query(conn,"SELECTid,username,genderFROMt_user",newBeanListHandler(TUser.class)); System.out.println(StringUtils.center("findAll",50,'*')); for(inti=0;i TUseruser=(TUser)results.get(i); System.out.println("id="+user.getId()+"name="+user.getUsername()+"gender="+user.getGender()); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ DbUtils.closeQuietly(conn); } /** *MapListHandler: 将ResultSet中所有的数据存成List。 List中存放的是Map */ publicstaticvoidgetMapListData(){ Connectionconn=getConnection(); QueryRunnerqr=newQueryRunner(); try{ Listresults=(List)qr.query(conn,"SELECTid,username,genderFROMt_user",newMapListHandler()); for(inti=0;i Mapmap=(Map)results.get(i); System.out.println("id="+map.get("id")+"name="+map.get("username")+"gender="+map.get("gender")); } }catch(SQLExceptione){ .printStackTrace(); }finally{ DbUtils.closeQuietly(conn); } } /** *新增和更新例子 */ publicstaticvoidinsertAndUpdateData(){ Connectionconn=getConnection(); QueryRunnerqr=newQueryRunner(); try{ //创建一个数组来存要insert的数据 Object[]insertParams={"JohnDoe","000000","男"}; intinserts=qr.update(conn,"INSERTINTOt_user(username,password,gender)VALUES(? ? ? )",insertParams); System.out.println("inserted"+inserts+"data"); Object[]updateParams
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Apache Commons
![提示](https://static.bdocx.com/images/bang_tan.gif)