Apache commons contains many open-source tools to solve common programming problems and reduce repetitive work. I have selected some common projects for a brief introduction. I used a lot of online ready-made items in this article. I just made a summary.
1. commons beanutils
Http://jakarta.apache.org/commons/beanutils/index.html
Description: A bean tool set. Beanutils also performs some packaging on the basis of a bunch of get and set beans.
Examples: There are many features and detailed descriptions on the website. A common function is bean copy, which is the property of copy bean. It will be used for hierarchical architecture development, such as copying data from Po (Persistent Object) to VO (value object ).
The traditional method is as follows:
// Obtain the teacherform
Teacherform = (teacherform) form;
// Construct a teacher object
Teacher = new teacher ();
// Assign a value
Teacher. setname (teacherform. getname ());
Teacher. setage (teacherform. getage ());
Teacher. setgender (teacherform. getgender ());
Teacher. setmajor (teacherform. getmajor ());
Teacher. setdepartment (teacherform. getdepartment ());
// Persists the teacher object to the database
Hibernatedao =;
Hibernatedao. Save (teacher );
After using beanutils, the code is greatly improved, as shown below:
// Obtain the teacherform
Teacherform = (teacherform) form;
// Construct a teacher object
Teacher = new teacher ();
// Assign a value
Beanutils. copyproperties (teacher, teacherform );
// Persists the teacher object to the database
Hibernatedao =;
Hibernatedao. Save (teacher );
Ii. commons CLI
Http://jakarta.apache.org/commons/cli/index.html
Note: This is a tool for processing commands. For example, the string [] entered by the main method needs to be parsed. You can pre-define the parameter rules and then call CLI for parsing.
Example:
// Create options object
Options = new options ();
// Add t option, option is the command parameter, false indicates that
// This parameter is not required.
Options. addoption ("T", false, "display current time ");
Options. addoption ("C", true, "Country Code ");
Commandlineparser parser = new posixparser ();
CommandLine cmd = parser. parse (options, argS );
If (CMD. hasoption ("T ")){
// Print the date and time
} Else {
// Print the date
}
// Get C option value
String countrycode = cmd. getoptionvalue ("C ");
If (countrycode = NULL ){
// Print default date
} Else {
// Print date for country specified by countrycode
}
3. commons Codec
Http://jakarta.apache.org/commons/codec/index.html
Note: This tool is used for encoding and decoding, including base64, URL, and soundx. People who use this tool should be clear about this and I will not introduce it much.
4. commons collections
Http://jakarta.apache.org/commons/collections/
Note: You can regard this tool as an extension of Java. util.
Example: A simple example
Orderedmap map = new linkedmap ();
Map. Put ("five", "5 ");
Map. Put ("six", "6 ");
Map. Put ("seven", "7 ");
Map. firstkey (); // returns "five"
Map. nextkey ("five"); // returns "six"
Map. nextkey ("six"); // returns "seven"
5. commons Configuration
Http://jakarta.apache.org/commons/configuration/
Note: This tool is used to process configuration files and supports many storage methods.
1. properties files
2. XML documents
3. Property list files (. plist)
4. JNDI
5. JDBC datasource
6. System Properties
7. Applet Parameters
8. servlet Parameters
Example: A simple example of Properties
# Usergui. properties, definining the GUI,
Colors. Background = # ffffff
Colors. Foreground = #000080
Window. width = 500
Window. Height = 300
Propertiesconfiguration Config = new propertiesconfiguration ("usergui. properties ");
Config. setproperty ("Colors. Background", "#000000 );
Config. Save ();
Config. Save ("usergui. Backup. properties); // save a copy
Integer integer = config. getinteger ("window. width ");
Commons DBCP
Http://jakarta.apache.org/commons/dbcp/
Note: This is the database connection pool, Tomcat is used. You can go to the website to view the instructions.
6. commons dbutils
Http://jakarta.apache.org/commons/dbutils/
Note: When I was writing a database program, I often made a separate package for database operations. Dbutils is such a tool, and you do not need to repeat such work in future development. It is worth noting that this tool is not a popular or-mapping tool (such as Hibernate), but just to simplify database operations, such
Queryrunner run = new queryrunner (datasource );
// Execute the query and get the results back from the Handler
Object [] result = (object []) Run. Query ("select * From person where name =? "," John Doe ");
VII. commons fileupload
Http://jakarta.apache.org/commons/fileupload/
Note: How does the JSP file upload function work?
Example:
// Create a factory for disk-based file items
Fileitemfactory factory = new diskfileitemfactory ();
// Create a new file upload Handler
Servletfileupload upload = new servletfileupload (factory );
// Parse the request
LIST/* fileitem */items = upload. parserequest (request );
// Process the uploaded items
Iterator iter = items. iterator ();
While (ITER. hasnext ()){
Fileitem item = (fileitem) ITER. Next ();
If (item. isformfield ()){
Processformfield (item );
} Else {
Processuploadedfile (item );
}
}
8. commons httpclient
Http://jakarta.apache.org/commons/httpclient/
Note: This tool can be used to access the website through programming.
Example: The simplest get operation
Getmethod get = new getmethod ("http://jakarta.apache.org ");
// Execute method and handle any error responses.
...
Inputstream in = Get. getresponsebodyasstream ();
// Process the data from the input stream.
Get. releaseconnection ();
9. commons Io
Http://jakarta.apache.org/commons/io/
Note: It can be seen as an extension of Java. Io, which I think is very convenient to use.
Example:
1. Read stream
Standard Code:
Inputstream in = new URL ("http://jakarta.apache.org"). openstream ();
Try {
Inputstreamreader INR = new inputstreamreader (in );
Bufferedreader Buf = new bufferedreader (INR );
String line;
While (line = Buf. Readline ())! = NULL ){
System. Out. println (line );
}
} Finally {
In. Close ();
}
Use ioutils
Inputstream in = new URL ("http://jakarta.apache.org"). openstream ();
Try {
System. Out. println (ioutils. tostring (in ));
} Finally {
Ioutils. closequietly (in );
}
2. Read files
File file = new file ("/commons/IO/Project. properties ");
List lines = fileutils. readlines (file, "UTF-8 ");
3. view the remaining space
Long freespace = filesystemutils. freespace ("C :/");
10. commons jxpath
Http://jakarta.apache.org/commons/jxpath/
(XPath) You know, jxpath is an XPATH Based on Java objects, that is, it is used to query Java objects. This is still imaginative.
Example:
Address = (Address) jxpathcontext. newcontext (vendor ).
Getvalue ("locations [Address/zipcode = '000000']/address ");
The above code is equivalent
Address = NULL;
Collection locations = vendor. getlocations ();
Iterator it = locations. iterator ();
While (it. hasnext ()){
Location = (location) it. Next ();
String zipcode = location. getaddress (). getzipcode ();
If (zipcode. Equals ("90210 ")){
Address = location. getaddress ();
Break;
}
}
11. commons Lang
Http://jakarta.apache.org/commons/lang/
Note: This Toolkit can be seen as an extension of Java. Lang. Provides tool classes such as stringutils, stringescapeutils, randomstringutils, tokenizer, and wordutils.
12. commons Logging
Http://jakarta.apache.org/commons/logging/
Note: Do you know log4j?
13. commons math
Http://jakarta.apache.org/commons/math/
Note: You should know what the package is for by name. The features provided by this package are somewhat different from those provided by commons Lang, but this package is more focused on mathematical tools and more powerful.
14. commons net
Http://jakarta.apache.org/commons/net/
Note: This package is very practical and encapsulates many network protocols.
1. FTP
2. nntp
3. SMTP
4. POP3
5. Telnet
6. TFTP
7. Finger
8. Whois
9. rexec/RCMD/Rlogin
10. Time (rdate) and daytime
11. Echo
12. Discard
13. NTP/SNTP
Example:
Telnetclient Telnet = new telnetclient ();
Telnet. Connect ("192.168.1.99", 23 );
Inputstream in = Telnet. getinputstream ();
Printstream out = new printstream (Telnet. getoutputstream ());
...
Telnet. Close ();
15th, commons validator
Http://jakarta.apache.org/commons/validator/
Note: This tool is used for verification. For example, verify whether the email string and date string are valid.
Example:
// Get the date validator
Datevalidator validator = datevalidator. getinstance ();
// Validate/convert the date
Date foodate = validator. Validate (foostring, "DD/MM/YYYY ");
If (foodate = NULL ){
// Error... not a valid date
Return;
}
16. commons Virtual File System
Http://jakarta.apache.org/commons/vfs/
Description: Provides access interfaces for various resources. Supported resource types include
1. CIFS
2. FTP
3. Local files
4. HTTP and https
5. SFTP
6. Temporary Files
7. WebDAV
8. Zip, jar and tar (uncompressed, tgz or tbz2)
9. gzip and Bzip2
10. Res
11. Ram
This package is powerful and greatly simplifies the access to resources by programs.
Example:
Read files from jar
// Locate the JAR File
Filesystemmanager fsmanager = VFS. getmanager ();
Fileobject jarfile = fsmanager. resolvefile ("jar: lib/ajarfile. Jar ");
// List the children of the JAR File
Fileobject [] children = jarfile. getchildren ();
System. Out. println ("children of" + jarfile. getname (). geturi ());
For (INT I = 0; I <children. length; I ++ ){
System. Out. println (Children [I]. getname (). getbasename ());
}
Read files from SMB
Staticuserauthenticator auth = new staticuserauthenticator ("username", "password", null );
Filesystemoptions opts = new filesystemoptions ();
Defaultfilesystemconfigbuilder. getinstance (). setuserauthenticator (OPTs, auth );
Fileobject fo = VFS. getmanager (). resolvefile ("SMB: // host/anyshare/DIR", opts );