<% try{
boolean flag;
String str1=request.getParameter("name");
str1=new String(str1.getBytes("iso-8859-1"));
//str1=getS(str1.trim());
//System.out.println(str1);
if(str1==null){
flag=true;
}
else{
flag=false;
}
if(flag) {
sql="select * from t1";
}
else {
sql="select * from t1 where name like '%"+str1+"%'";
}因为刚开始启动页面的时候,str1必定为空,所以flag就为true,就执行sql="select * from t1";
当我们进行搜索的时候,str1就不为空了,此时就执行sql="select * from t1 where name like '%"+str1+"%'";
页面没有显示任何数据,也就是
if(flag) {
sql="select * from t1";
}
没有产生作用!
[quote]因为刚开始启动页面的时候,str1必定为空[/quote]
注意,str1必定为空。要理解清楚,为空不是空的字符串,而是null
所以很可能是这里有问题:
[code="java"]
boolean flag;
String str1=request.getParameter("name");
// str1 为null,因为 传递过来的参数中没有它
str1=new String(str1.getBytes("iso-8859-1"));
if(str1==null){
flag=true;
}[/code]
改为这样,安全点:
[code="java"]boolean flag;
String str1=request.getParameter("name");
if(str1==null){
flag=true;
}
else{
str1=new String(str1.getBytes("iso-8859-1"));
flag=false;
}[/code]