这是一个简单的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(Model-View-Controller)模式是一种常见的软件设计模式,广泛应用于Web应用程序的开发中,以实现业务逻辑与用户界面的分离。在本项目中,我们探讨的是一个自己开发的简单MVC框架,它特别...
**PHP简易MVC框架详解** PHP简易MVC框架是由新浪的PHP程序员设计并实现的,旨在为初学者和开发者提供一个轻量级的学习平台,帮助他们理解和应用MVC(Model-View-Controller)设计模式。MVC模式是软件工程中的一种...
【标题】"mystruts简易MVC框架实现" 在软件开发中,Model-View-Controller(MVC)架构模式是一种广泛应用于创建用户界面的设计模式,它将应用程序的业务逻辑、数据处理和用户界面分离,提高了代码的可维护性和可...
**描述** "使用PHP开发自己的MVC框架,站点其实很简单,一个ToDo程序" 提示我们,这里将涉及如何用PHP构建一个简单的MVC框架,并通过一个Todo应用来演示其功能。Todo应用通常是一个基础的待办事项列表,用于展示基本...
本文将深入探讨一个基于"简单MVC框架"的设计,包括接口、工厂模式以及反射的概念。 首先,让我们理解MVC模式的核心概念: 1. **Model(模型)**:模型负责处理业务逻辑和数据管理。它是应用程序的核心,与数据库...
通过这个简单的PHP MVC框架,新手可以逐步掌握Web开发的基本流程和最佳实践,为未来更复杂的项目打下坚实基础。在实际操作中,你可以尝试创建新的模型、控制器和视图,以熟悉整个流程。同时,不要忘记查阅相关文档和...
**简单的MVC框架例子** 在Web开发中,MVC(Model-View-Controller)模式是一种广泛应用的设计模式,它将应用程序的结构分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这个简单的MVC框架...
4. **路由(Routing)**:在简单的MVC框架中,路由通常负责解析URL并决定调用哪个控制器和方法。可以创建一个独立的`App\Route`命名空间来实现这一功能: ```php namespace App\Route; class Router { public ...
**MVC框架详解** 在软件开发领域,MVC(Model-View-Controller)框架是一种广泛应用于Web应用设计的架构模式。MVC将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller),以此实现业务...
基于PHP的简单MVC框架的设计与制作 本文主要讲解了如何使用PHP语言设计一个简单的MVC框架,实现网站的开发。MVC框架是一种常用的程序设计规范,目的是将模型、视图和控制器分离,以便更好地管理和维护网站。 首先...
本项目是用C++实现的一个简单的MVC框架,名为MVCDemo,旨在帮助开发者理解MVC设计模式的基础概念。 首先,我们来详细解释MVC的三个组成部分: 1. Model(模型):模型层是应用的核心,它负责管理数据和业务逻辑。...
C#的mvc框架,实现简单的web功能。可以应用在泛微oa等需要基础开发简单功能的网站。erp,crm等系统。
本篇将详细介绍一个基于Servlet实现的MVC框架,并探讨其核心概念和工作原理。 **1. MVC设计模式** Model-View-Controller(MVC)是一种广泛应用于Web开发的设计模式。它将应用程序分为三个主要部分: - **Model...
**简单的MVC框架(PDO封装)** MVC(Model-View-Controller)模式是一种常见的软件设计模式,常用于构建Web应用程序,以实现业务逻辑与用户界面的分离。在本项目中,我们看到一个由个人编写的简单MVC框架,它利用PDO...
ASP.NET MVC框架是微软开发的一款用于构建Web应用程序的开源框架,它基于模型-视图-控制器(MVC)设计模式,旨在提供更加灵活、可测试的Web开发方式。本课程将深入探讨MVC模式和ASP.NET MVC框架的基础知识,帮助...
**总结**,"SimulateMVC"是一个针对初学者的简单MVC框架实现,它帮助理解模型、视图和控制器各自的作用,以及它们如何协同工作。通过研究这个框架,可以深入学习Java Web开发的基础,为进一步学习更复杂的MVC框架如...
在.NET MVC框架中,模型(Model)负责处理业务逻辑和数据管理,它是应用程序的核心部分。视图(View)则主要负责展示数据,它通常与控制器(Controller)交互,接收控制器传递的数据并渲染成用户界面。控制器负责...
asp.net MVC框架示例,一个简单MVC框架演示,
**Spring MVC 框架简单实现** Spring MVC 是 Spring 框架的一部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)架构。在这个简易版框架中,我们将深入理解 Spring MVC 的核心概念和关键组件。 **1. ...
"JiaJiaoMVC"这个压缩包可能包含了一个简单的MVC框架实例,你可以通过解压并运行来学习其具体实现。它可能包括了模型文件(如UserModel.php)、控制器文件(如UserController.php)、视图文件(如user.html)以及...