自定义MVC框架(最基础的)
来源:互联网 发布:神经网络有哪些算法 编辑:程序博客网 时间:2024/05/17 22:19
关于自定义MVC框架(最基础的可以说是山寨版)
给大家稍微了解下
--框架framework
1. 自定义MVC框架
1.1 框架 半成品
1.2 控制器
中央控制器(ActionServlet)
*.do
子控制器(Action)
execute方法
生活事例:
飞行员和控制塔
首先要有一个中央控制器
代码如下:
package framework;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import test.action.HelloAction;
import test.action.LoginAction;
/**
* 中央控制器
* @author Administrator
*
*/
public class ActionServlet extends HttpServlet {
private static final long serialVersionUID = -445992379066680884L;
//一个装action的容器
private Map<String, Action> actions=new HashMap<String, Action>();
//构造方法
public ActionServlet(){
System.out.println("new ActionServlet");
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// System.out.println("dopost");
//1、获取请求路径
String path=request.getServletPath();
System.out.println(path);
//2、取出请求中的*
path=path.replace(".action","");
System.out.println(path);
//3、根据这个key获取值
Action action = actions.get(path);
//4、最后交给他的子类去执行方法
action.execute(request, response);
}
public void init() throws ServletException {
System.out.println("init");
//0、进行加入到map集合当中去
actions.put("/helloAction", new HelloAction());
actions.put("/loginAction", new LoginAction());
}
}
然后是子控制器
package framework;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 子控制器
* @author Administrator
*
*/
public abstract class Action {
//处理方法
public abstract void execute(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException;
}
接下来一访问hello为例 定义一个HelloAction类
package test.action;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import framework.Action;
public class HelloAction extends Action{
@Override
public void execute(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("hello mvc 我是helloAction");
}
}
注意配置的时候要设置一个
<load-on-startup>0</load-on-startup>
设置为0意思是说与服务器同时启动
发现有了这个框架之后配置都只要写一遍就好了
实现原理是有前提的HelloAction必须得继承Action类才行
框架省了很多代码下来
在框架的基础上进行的开发被称为二次开发
类似于我们去购买房子
我们不需要重新开始建,只需要在他的基础上进行装修就可以了
虽然房子的模板是一样的,但是每个人的装修风格是不一样的
转移到我们程序来说就是一个oop思想
好了,今天的分享到这里了。
- 自定义MVC框架(最基础的)
- 最简单的自定义MVC框架
- 自定义mvc框架(基础版)
- struts2入门基础之自定义MVC框架(一)
- 国外最流行的PHP MVC框架
- java 自定义mvc框架(一)------前端控制器的实现
- 自定义MVC框架(一)反射机制
- 自定义MVC框架(分页前台部分)
- 自定义MVC框架
- 自定义MVC框架
- 自定义MVC框架编写
- 自定义MVC框架
- MVC框架自定义验证
- 自定义mvc框架
- MVC自定义框架
- 自定义MVC框架
- 自定义MVC框架
- 什么是自定义MVC框架?
- bzoj 2257: [Jsoi2009]瓶子和燃料(裴蜀定理)
- 浏览器端兼容性问题
- java反射系列03 isInstance() isAssignFrom()
- 情商1-说对方想听的话,让对方不自觉地放下戒心
- Java经典算法40例(十三)
- 自定义MVC框架(最基础的)
- 爬虫整理
- Python基础之函数
- hbase 源代码解析(4) 的createTable 的 region assign
- nodejs 发起http get post 请求
- Java经典算法40例(十四)
- HDU
- C#(2)-------使用Log4Net记录日志
- D_D系统构建-MBR(4)代码剖析