Java获得指定ClassLoader所加载的类列表
一直想实现像DriverManager那样的getConnection方法,通过此方法就可以获得连接,而且还不用指定Driver,但前提是Driver已经通过Class.forName()或new Driver()进行了加载。今天终于得以实现。
package quiz;
import java.lang.reflect.Field;
public class ClassLoaderDriver {
/**
* @param args
* @throws NoSuchFieldException
* @throws SecurityException
* @throws IllegalAccessException
* @throws IllegalArgumentException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");
Field field = ClassLoader.class.getDeclaredField("classes");
field.setAccessible(true);//设置该成员变量为可访问
System.out.println(field.get(ClassLoader.getSystemClassLoader()));
}
}
这样一来,我们就可以实现和DriverManager类似的功能了。
相关文档:
在MVC中配置编码filter可以解决中文乱码问题
--------------------------------------------------------------------------------------------------------------------------------------------------
在web.xml中加入如下filter代码:
<!--Form content submit encoding filter start-->
& ......
public class Base64 {
//码表
static private char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
.toCharArray();
&nb ......
下面是用Java实现今天、昨天、前天的日期小例子,大家可以试试,有什么问题我们互相讨论。
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class TestStr {
public static void main(String[] args) {
getDates();
}
public static void getDates() ......
在Java中有两种不同的对变量赋值方式,一种是直接将一个值赋给变量。例如:
int a = 1;
String s = "abc";
Integer in = 125;
另外一种是创建一个对象,并将其赋给一个变量。例如:
String s = new String("abc")
Integer in = new Integer(125);
两种方式的不同之处在于:
第一种方式变量的值存储在堆栈中,当下一 ......
Java正则表达式的应用,这里主要用到了Pattern类。
源码如下:
package quiz;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Java正则表达式示例
* */
public class RegularExpressionPattern {
public static void main(String[] args) {
//1.采用Pattern.LITERAL模式,
Patter ......