首页 > 学院 > 开发设计 > 正文

MVC 构架学习之渐行渐进(二)

2019-11-18 12:44:20
字体:
来源:转载
供稿:网友

  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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表