this is a extra element for clear the floated element
MVC构架学习之渐行渐进(二)
  • 12/31
  • 2008
mvcwea | Java 1693 次查看
  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

  
您可能感兴趣的:

更多相关内容