在SpringMVC基本统一Java web开发技术栈的环境下, 这是一个有点过时的话题了. SpringMVC的特点主要在于注解型的RequestMapping和参数机制非常灵活, 另外得益于Spring本身的bean控制, 可以很方便的在各个环境引入其他对象.
最近整理了一下几年前的工作, 把项目的底层代码剥出来. 这是一个类似于SpringMVC的底层框架, 数据端使用的是DBUtils, 适合小型的定制系统.
https://github.com/MiltonLai/mocha-web-framework .
其中核心部分是Dispatcher, 注册在web filter上, 通过filter init初始化以下四部分:
全局对象池, 请求映射表, 视图解析方式表, 还有拦截器表
在请求时, 亦根据方法的参数数量和类型自动填充输入.
与SpringMVC不同的地方,
1. 可以直接通过在controller的类或方法上的RequestMapping注解定义结果的视图类型, 不需要通过复杂的机制根据返回类型进行选择.
2. 在基础实现上就区分开输入的数据和输出的数据, 避免在后期通过拦截器的postHandle去清理敏感数据, 以防止被不恰当的视图渲染对象输出给用户
简化版的SpringMVC框架的实现思路的更多相关文章
-
自己实现一个简化版的SpringMVC框架
废话不多说,我们进入今天的正题,在Web应用程序设计中,MVC模式已经被广泛使用.SpringMVC以DispatcherServlet为核心,负责协调和组织不同组件以完成请求处理并返回响应的工作,实 ...
-
(二)springMvc原理和手写springMvc框架
我们从两个方面了解springmvc执行原理,首先我们去熟悉springmvc执行的过程,然后知道原理后通过手写springmvc去深入了解代码中执行过程. (一)SpringMVC流程图 (二)Sp ...
-
搭建springmvc框架的另一种思路
在一个完整的项目里搭建springmvc框架的时候, 通常情况下,初学者在配置的时候,总是会把"*控制器的名字"-servlet.xml文件放到/Webroot/WEB-INF下 ...
-
SSM框架的整合思路&;功能实现
这是我第一篇博客,关于SSM框架的整合思路以及简单功能实现. 首先,最近刚刚学习Spring+SpringMVC+Mybatis,在开发时遇到形形色色的问题,周遭人也为我提供了一些思路,我会一点点整理 ...
-
springMVC框架访问web-inf下的jsp文件
博客原文章:http://td.xue163.com/1042/1/10425265.html 用户提出问题:springMVC框架访问web-inf下的jsp文件,具体如下: 使用springMVC ...
-
关于springMVC框架访问web-inf下的jsp文件
问题:springMVC框架访问web-inf下的jsp文件,具体如下: 使用springMVC,一般都会使用springMVC的视图解析器,大概会这样配置 <property name=&qu ...
-
自己手写一个SpringMVC框架
前端框架很多,但没有一个框架称霸,后端框架现在Spring已经完成大一统.所以学习Spring是Java程序员的必修课. Spring框架对于Java后端程序员来说再熟悉不过了,以前只知道它用的反射实 ...
-
手写迷你SpringMVC框架
前言 学习如何使用Spring,SpringMVC是很快的,但是在往后使用的过程中难免会想探究一下框架背后的原理是什么,本文将通过讲解如何手写一个简单版的springMVC框架,直接从代码上看框架中请 ...
-
Spring框架学习笔记(3)——SpringMVC框架
SpringMVC框架是基于Spring框架,可以让我们更为方便的进行Web的开发,实现前后端分离 思路和原理 我们之前仿照SpringMVC定义了一个自定义MVC框架,两者的思路其实都是一样的. 建 ...
随机推荐
-
c# BlowFish 高速 对称加密
BlowFish 高速 对称加密 string key = "this is my key"; BlowFish algo = new BlowFish(key); string ...
-
Android四种基本布局(LinearLayout \ RelativeLayout \ FrameLayout \ TableLayout)
------------------------------------------LinearLayout---------------------------------------------- ...
-
Oracle 查看表空间的大小及使用情况sql语句
--1.查看表空间的名称及大小 )), ) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.t ...
-
Android——数据库相关(课堂整理)
layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...
-
HTML 透明、阴影,圆角等知识点
table两个属性:cellpadding:内容与单元格边框的距离,内部距离cellspacing:单元格之间的距离,外部距离 table合并边框线: border-collapse: co ...
-
Facebook MyRocks at MariaDB
Recently my colleague Rasmus Johansson announced that MariaDB is adding support for the Facebook MyR ...
-
python datetime模块strptime/strptime format常见格式命令_施罗德_新浪博客
python datetime模块strptime/strptime format常见格式命令_施罗德_新浪博客 python datetime模块strptime/strptime form ...
-
make deb for debian/ubuntu, package software for debian/ubuntu
here you may find useful information: =====================X8---------------------------------8X==== ...
-
常用网页标签重置CSS
做前端开发时常需要将网页中所有标签的格式清空,从而使各个浏览器标签样式一样.以下是网络上常见的CSS代码 /* =s Reset (by YUI 3) */ html{color:#000;} bod ...
-
HDU 6208 The Dominator of Strings【AC自动机/kmp/Sunday算法】
Problem Description Here you have a set of strings. A dominator is a string of the set dominating al ...