學了java也已經半年多些了,但在調試javaBean&jsp時,但很有感觸,所以把它記了下來.以下是我有調試中遇到的小問題。
1、我在jsp操作javaBean完成一些處理數據庫邏輯操作,開啓網頁發生錯誤,最後發現少了個'%',改正後重新調試。
jsp始終不能得到數據庫中的信息,只好對javaBean編寫測試類,這一編寫弄出來jabaBean中很多的錯誤。
還有在寫<jsp:useBean id="" class="com.jsp..." scope="page"/>時也很容易發生錯誤。
2、首先是數據庫連接類中的盤符錯誤:把D:弄成了C:(我現在學習當然用的是Access,哈~~)
3、該導入的類沒有導入例如: 若類要實現implements Serializable接口必須引如java.io.*類;
4、在試着對‘顯示數據庫所信息’功能寫測試類時才發現定義的哪個屬性類也是錯誤的(還好總算沒白費,這個可是個大錯誤)
5、在4.20日測試‘顯示所有信息’功能時發現jsp不能正確顯示數據庫中的中文信息(解決方法:對添加數據庫、對數據庫取記錄時都進行統一編碼)
全部程序如126郵箱中的Categroy測試類.rar 2007 4.19
在編寫jsp&javaBean時一定先保證javaBean的屬性類沒有任何錯誤時才繼續寫其它程序,否則會很麻煩。
import java.sql.*;
import java.util.*;
import java.io.*;
import com.jsp.Category;
import com.jsp.util.DataBaseConnection;
public class ViewCategory
{
private Connection con;
public ViewCategory(){
this.con=DataBaseConnection.getConnection();
}
public Collection getAllCategory() throws Exception
{ Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery("select * from category");
Collection ret=new ArrayList();
while(rst.next())
{
Category temp=new Category();//把這句放在while()外它的結果會發生很大變化
temp.setCategoryId(rst.getString("catid"));
temp.setDescription(rst.getString("descn"));
temp.setName(rst.getString("name"));
ret.add(temp);
}
con.close();
return ret;
}
public static void main(String ars[])
{
ViewCategory sfq=new ViewCategory();
try{
Collection show=sfq.getAllCategory();
Iterator it=show.iterator();
while(it.hasNext())
{
Category category=(Category)it.next();
System.out.println(category.getName());
}
} catch(Exception e){System.out.println("系統沒有返回值!");
}
}
}
//對提交的數據進行統一編碼
public String trans(String chi)
{
byte temp[];
String result="";
try
{
temp=chi.getBytes("iso-8859-1");
result=new String(temp);
}
catch(UnsupportedEncodingException e)
{
System.out.println(e.toStrint());
}
return result;
}