MVC:模型-視圖-控制器結構,這種構架在VC中我們可以體會得更深一些。在Java中實現這種構架的目的是實現網頁制作人員和開發人員的分工。然而這一知識點並不容易掌握,所需要讀者了解的知識點尤其是對servlet的理解一定要深刻,所以這裡我采用漸行漸進的步驟,從點到面逐步引導大家掌握這一技術。
首先,大家要看懂以下幾個類的作用。每個類都有相應的說明,和導讀內容。[b:ec7138a775]
Action接口[/b:ec7138a775]
示例:/WEB-INF/classes/actions/Action.Java
package actions;
import Javax.servlet.http.HttpServlet;
import Javax.servlet.http.HttpServletRequest;
import Javax.servlet.http.HttpServletResponse;
public interface Action
{
public ActionRouter perform(HttpServlet servlet,
HttpServletRequest req,HttpServletResponse res)
throws java.io.IOException,Javax.servlet.ServletException;
}
Action接口定義了一個perform的方法,它向操作servlet、HTTP請求響應傳遞引用。
ActionFactory類
示例:/WEB-INF/classes/actions/ActionFactory.Java
package actions;
import Java.util.Hashtable;
public class ActionFactory
{
private Hashtable action_s=new Hashtable();
public Action getAction(String classname,ClassLoader loader)
throws ClassNotFoundException,IllegalAccessException,InstantiationException
{
Action action=(Action)actions.get(classname);
if (action==null) //如果該操作未存儲在哈希表中,操作庫將首先創建它
{
Class klass=loader.loadClass(classname);//獲取對象類型
action=(Action)klass.newInstance();//對象初始化
actions.put(classname,action);//存儲到哈希表中
}
return action;
}
}
在操作庫中保持操作的哈希表,該庫的getAction方法由操作的Servlet調用,並返回對應於類名的操作。如果該操作未存儲在哈希表中,操作庫將首先創建它,然後再存儲到哈希表中。以後遇到相同的操作請求,操作庫將僅僅從哈希表中返回一個引用。
導讀:GetClass():方法返回為一個Class類型的對象。例:
…
private LoginDB loginDB;
Class pt=loginDB.getClass();
System.out.println(“The Beans name is:”+pt.getName());
…
輸出內容:The Beans name is: bean.LoginDB
大多數情況下定義一個Class的對象的目的是要引用getClass方法。
newInstance():這個方法將調用類的默認的構造器,由當前的Class對象表示,並把生成的對象作為Object類型返回。如果你想把該類型保存在某一類型的變量裡,則需要將它轉換
為相應的類型,否則將直接把結果存儲在一個Object類型的變量裡。這個方法會拋出兩個異常:IllegalAccessException,InstantiationException