`
javaeeboy
  • 浏览: 12111 次
  • 性别: Icon_minigender_1
  • 来自: 汕头
社区版块
存档分类
最新评论

简单MVC框架

阅读更多
这是一个简单的MVC框架!
第一步,先创建一个ActionServlet来充当中心控制器,servlet在web.xml中的配置如下
  <servlet>
    <servlet-name>ActionServlet</servlet-name>
    <servlet-class>org.wq.framework.ActionServlet</servlet-class>
    <init-param>
    	<param-name>mymvcConfig</param-name>
    	<param-value>/config.properties</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup><!-- 当tomcat启动时,该servlet就被实例化 -->
  </servlet>

  <servlet-mapping>
    <servlet-name>ActionServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

第二步,建立属性文件config.properties,在这里属性文件的作用就相当于strust中的配置文件,通过属性文件来获取action的路径
#如果请求的是/login.do,则servlet会自己去寻找org.wq.framework.LoginAction
/login.do=org.wq.framework.LoginAction


第三步,建立ActionForward,主要作用是来存放跳转路径和跳转的方式
package org.wq.framework;

public class ActionForward {
	//跳转的路径
	private String forwardPath;
	
	private boolean isRedirect;
	
	public ActionForward(){}
	
	public ActionForward(String forwardPath,boolean isRedirect){
		this.forwardPath = forwardPath;
		this.isRedirect = isRedirect;
	}

	
	public String getForwardPath() {
		return forwardPath;
	}

	public void setForwardPath(String forwardPath) {
		this.forwardPath = forwardPath;
	}

	public boolean isRedirect() {
		return isRedirect;
	}

	public void setRedirect(boolean isRedirect) {
		this.isRedirect = isRedirect;
	}
}

第四步:创建Action接口
package org.wq.framework;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface Action {
	public ActionForward excute(HttpServletRequest request,HttpServletResponse response);		
}


第五步,也是最重要的一步,编写ActionServlet!
package org.wq.framework;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ActionServlet extends HttpServlet {
	private Properties configure = null;
	
	public void init(ServletConfig config) throws ServletException {
		try{
			configure = new Properties();
			String configFile = config.getInitParameter("mymvcConfig");
			if(configFile!=null){
				configure.load(this.getClass().getResourceAsStream(configFile));
			}
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	public ActionServlet() {
		super();
	}

	public void destroy() {
		super.destroy();
	}

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//取得上下文的路径,如:/mymvc
		String contextPath = request.getContextPath();
		//取得请求的URL,如: /mymvc/login.do
		String uri = request.getRequestURI();
		//获得action的请求路径,如/login.do
		String actionPath = uri.substring(contextPath.length(),uri.length());
		//根据请求路径从配置文件中找到要执行的action
		String actionClass = (String) configure.getProperty("actionPath");
		//获得action的实例
		try{
			//通过反射获取对象
			Action action = (Action)Class.forName(actionClass).newInstance();
			//调用excute()方法,
			ActionForward actionForward = action.excute(request, response);
			//重定向
			if(actionForward.isRedirect()){
				response.sendRedirect(contextPath+actionForward.getForwardPath());
			}else{//转发
				request.getRequestDispatcher(actionForward.getForwardPath()).forward(request, response);
			}
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}


到了这里,一个简单的MVC框架就做好了,这个框架的不好之处没有相对应的ActionForm,还有就是跳转必须通过属性文件来配置,顶顶大名的struts框架可是通过xml文件来配置的!本来自己做了一个以struts框架为模型的mvc,可是频频报错,只能去依靠老师修改,然后再来发表了!当然啦,如果哪为网友有更好的自己制作的MVC框架的话,记得E-mail我哦 javaeeboy@qq.com  大家一起共同努力,java就是讨论出来的!
好了,在这里感谢一下吴青吴老师!

分享到:
评论

相关推荐

    简单mvc框架

    **简单MVC框架详解** MVC(Model-View-Controller)模式是一种常见的软件设计模式,广泛应用于Web应用程序的开发中,以实现业务逻辑与用户界面的分离。在本项目中,我们探讨的是一个自己开发的简单MVC框架,它特别...

    php简易MVC框架

    **PHP简易MVC框架详解** PHP简易MVC框架是由新浪的PHP程序员设计并实现的,旨在为初学者和开发者提供一个轻量级的学习平台,帮助他们理解和应用MVC(Model-View-Controller)设计模式。MVC模式是软件工程中的一种...

    mystruts简易MVC框架实现 .

    【标题】"mystruts简易MVC框架实现" 在软件开发中,Model-View-Controller(MVC)架构模式是一种广泛应用于创建用户界面的设计模式,它将应用程序的业务逻辑、数据处理和用户界面分离,提高了代码的可维护性和可...

    PHP mvc框架

    **描述** "使用PHP开发自己的MVC框架,站点其实很简单,一个ToDo程序" 提示我们,这里将涉及如何用PHP构建一个简单的MVC框架,并通过一个Todo应用来演示其功能。Todo应用通常是一个基础的待办事项列表,用于展示基本...

    简单MVC框架 接口、工厂、反射

    本文将深入探讨一个基于"简单MVC框架"的设计,包括接口、工厂模式以及反射的概念。 首先,让我们理解MVC模式的核心概念: 1. **Model(模型)**:模型负责处理业务逻辑和数据管理。它是应用程序的核心,与数据库...

    PHP 封装简单MVC框架

    通过这个简单的PHP MVC框架,新手可以逐步掌握Web开发的基本流程和最佳实践,为未来更复杂的项目打下坚实基础。在实际操作中,你可以尝试创建新的模型、控制器和视图,以熟悉整个流程。同时,不要忘记查阅相关文档和...

    简单的MVC框架例子

    **简单的MVC框架例子** 在Web开发中,MVC(Model-View-Controller)模式是一种广泛应用的设计模式,它将应用程序的结构分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这个简单的MVC框架...

    简单mvc框架命名空间

    4. **路由(Routing)**:在简单的MVC框架中,路由通常负责解析URL并决定调用哪个控制器和方法。可以创建一个独立的`App\Route`命名空间来实现这一功能: ```php namespace App\Route; class Router { public ...

    MVC框架工程Myeclipse做的

    **MVC框架详解** 在软件开发领域,MVC(Model-View-Controller)框架是一种广泛应用于Web应用设计的架构模式。MVC将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller),以此实现业务...

    基于PHP的简单MVC框架的设计与制作 (1).pdf

    基于PHP的简单MVC框架的设计与制作 本文主要讲解了如何使用PHP语言设计一个简单的MVC框架,实现网站的开发。MVC框架是一种常用的程序设计规范,目的是将模型、视图和控制器分离,以便更好地管理和维护网站。 首先...

    C++实现简单的MVC框架

    本项目是用C++实现的一个简单的MVC框架,名为MVCDemo,旨在帮助开发者理解MVC设计模式的基础概念。 首先,我们来详细解释MVC的三个组成部分: 1. Model(模型):模型层是应用的核心,它负责管理数据和业务逻辑。...

    C#的mvc框架,实现简单的web功能

    C#的mvc框架,实现简单的web功能。可以应用在泛微oa等需要基础开发简单功能的网站。erp,crm等系统。

    servlet的一个mvc框架

    本篇将详细介绍一个基于Servlet实现的MVC框架,并探讨其核心概念和工作原理。 **1. MVC设计模式** Model-View-Controller(MVC)是一种广泛应用于Web开发的设计模式。它将应用程序分为三个主要部分: - **Model...

    简单的MVC框架(PDO封装)

    **简单的MVC框架(PDO封装)** MVC(Model-View-Controller)模式是一种常见的软件设计模式,常用于构建Web应用程序,以实现业务逻辑与用户界面的分离。在本项目中,我们看到一个由个人编写的简单MVC框架,它利用PDO...

    ASP.NET MVC框架开发系列课程(1):MVC模式与ASP.NET MVC框架概述

    ASP.NET MVC框架是微软开发的一款用于构建Web应用程序的开源框架,它基于模型-视图-控制器(MVC)设计模式,旨在提供更加灵活、可测试的Web开发方式。本课程将深入探讨MVC模式和ASP.NET MVC框架的基础知识,帮助...

    一个简音的MVC框架,适合初学MVC的人理解

    **总结**,"SimulateMVC"是一个针对初学者的简单MVC框架实现,它帮助理解模型、视图和控制器各自的作用,以及它们如何协同工作。通过研究这个框架,可以深入学习Java Web开发的基础,为进一步学习更复杂的MVC框架如...

    .netmvc框架

    在.NET MVC框架中,模型(Model)负责处理业务逻辑和数据管理,它是应用程序的核心部分。视图(View)则主要负责展示数据,它通常与控制器(Controller)交互,接收控制器传递的数据并渲染成用户界面。控制器负责...

    asp.net MVC框架示例代码

    asp.net MVC框架示例,一个简单MVC框架演示,

    Spring-MVC框架简单实现

    **Spring MVC 框架简单实现** Spring MVC 是 Spring 框架的一部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)架构。在这个简易版框架中,我们将深入理解 Spring MVC 的核心概念和关键组件。 **1. ...

    mvc框架例子该例子主要讲述了怎样创建mvc框架以及怎样用mvc操作数据库该希望对初学mvc的人有所帮助欢迎大家下载分享

    "JiaJiaoMVC"这个压缩包可能包含了一个简单的MVC框架实例,你可以通过解压并运行来学习其具体实现。它可能包括了模型文件(如UserModel.php)、控制器文件(如UserController.php)、视图文件(如user.html)以及...

Global site tag (gtag.js) - Google Analytics