看样子是LZ的意思理解错了吧, 他说的 get 方法是 java Bean 的 get method, 不是页面表单的 Form Method, LZ 说的清楚一下吧, 容易产生歧义。使用 Java 反射可以得到 Class 的任何属性, 当然包括 Methods, 这样就能过滤出以 get 开头的方法了。
看代码吧->// Java Bean ---------------------- package main;public class Student { private String id = null;
private String name = null; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }
}// 过滤器 --------------------------- package main;import java.lang.reflect.Method;public class MethodFilter { // method filter public void filter() {
Student student = new Student();
// get all methods with [java.lang.reflect] Method[] methods = student.getClass().getMethods();
// filter method for (int i = 0; i < methods.length; i++) {
String methodName = methods[i].getName();
if (methodName.startsWith("get")) { // do some thing, eg : print it System.out.println(methodName); } } }
// test public static void main(String[] args) { new MethodFilter().filter(); } }
我使用过滤器编码字符集是gb2312,但结果还是乱码,使用new String(str.getBytes("ISO-8859-1"),"GB2312");
可以得到正确的字符。
我想在不改变原程序的情况下,避免出现乱码。怎么做?
修改tomcat GET方式的编码
tomcat/conf/server.xml
<Connector port="8080" ...... URIEncoding="GB2312" useBodyEncodingForURI="true"/>原文网址:http://blog.csdn.net/sunyujia/archive/2008/01/06/2027635.aspx
tomcat的配置文件,修改一下
我使用过滤器编码字符集是gb2312,但结果还是乱码,这个是怎么回事啊。
{
//你要执行的代码
}
LZ 说的清楚一下吧, 容易产生歧义。使用 Java 反射可以得到 Class 的任何属性, 当然包括 Methods, 这样就能过滤出以 get 开头的方法了。
package main;public class Student { private String id = null;
private String name = null; public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}// 过滤器 ---------------------------
package main;import java.lang.reflect.Method;public class MethodFilter { // method filter
public void filter() {
Student student = new Student();
// get all methods with [java.lang.reflect]
Method[] methods = student.getClass().getMethods();
// filter method
for (int i = 0; i < methods.length; i++) {
String methodName = methods[i].getName();
if (methodName.startsWith("get")) {
// do some thing, eg : print it
System.out.println(methodName);
}
}
}
// test
public static void main(String[] args) {
new MethodFilter().filter();
}
}