免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2419 | 回复: 2
打印 上一主题 下一主题

MVC构架渐行渐进(一) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-02 21:23 |只看该作者 |倒序浏览
MVC:模型-视图-控制器结构,这种构架在VC中我们可以体会得更深一些。在JAVA中实现这种构架的目的是实现网页制作人员和开发人员的分工。然而这一知识点并不容易掌握,所需要读者了解的知识点尤其是对servlet的理解一定要深刻,所以这里我采用渐行渐进的步骤,从点到面逐步引导大家掌握这一技术。
 首先,大家要看懂以下几个类的作用。每个类都有相应的说明,和导读内容。
 
Action接口

示例:/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 actions=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

论坛徽章:
0
2 [报告]
发表于 2003-08-03 10:26 |只看该作者

MVC构架渐行渐进(一)

不错,建议把三篇合成一页

论坛徽章:
0
3 [报告]
发表于 2003-08-04 08:17 |只看该作者

MVC构架渐行渐进(一)

好文,不知道楼主有没有接触过 struts,一个 mvc 的 web 应用程序框架

你的实现和 struts 的如出一辙

:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP