写出一个你自己的MVC框架-基于对springMVC源码实现和理解(1):入口所在
2015-03-10 13:56
429 查看
在开始之前,我们必须对springMVC有一个明确的认识。一个软件项目的完成少不了各种设计文档,对整个项目进行一个规划,而在这里,我们写自己的MVC只是为了对springMVC有更深的认识,我们不妨跟随自己对springMVC的剖析,一步步写自己的MVC。众所周知,无论什么MVC框架都无外乎对servlet的封装。自然,我们对springMVC的了解需要从web.xml开始。springMVC对一个请求的所作所为都有一个唯一的入口DispatcherServlet,联想一下我们在使用springMVC时的配置:
我们可以发现三点:
1.DispatcherServlet只对匹配的请求进行处理(当然你可以配置对所有请求做出反应)。
2.DispatcherServlet在服务器启动时便开始实例化。
3.DispathcherServlet需要在启动时加载一个配置文件。
现在就可以动手了,建个项目,取个顺眼的名字,建立第一个也是最核心的类DispatherServlet,名称自然是随你喜欢:
DispatcherServlet本质便是一个Servlet,继承自HttpServlet,几个需要重写的方法自不必多说。另外,别忘了你需要一个配置文件,这里我选择了properties当配置文件,为什么?因为它功能简陋,看着眼睛不容易花。只为了学习,一切从简。接下来就可以将它配置在web.xml文件中了:
不用觉得眼熟,不这么配还能怎么配,需要注意的有两点:
1.映射路径怎么填得好好考虑,只为了学习的话,配置个指定后缀的url最好了,省得到时候还得对各种资源文件做处理。
2.最好使用高版本的web.xml,为了减少以后jsp的el表达式的使用。
<servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/spring.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
我们可以发现三点:
1.DispatcherServlet只对匹配的请求进行处理(当然你可以配置对所有请求做出反应)。
2.DispatcherServlet在服务器启动时便开始实例化。
3.DispathcherServlet需要在启动时加载一个配置文件。
现在就可以动手了,建个项目,取个顺眼的名字,建立第一个也是最核心的类DispatherServlet,名称自然是随你喜欢:
package com.wbh.mymvc.servlet; /** * 请求调度核心类 * * @author wbh */ public class MyDispatcherServlet extends HttpServlet { private Properties p; @Override public void init() throws ServletException { } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } }
DispatcherServlet本质便是一个Servlet,继承自HttpServlet,几个需要重写的方法自不必多说。另外,别忘了你需要一个配置文件,这里我选择了properties当配置文件,为什么?因为它功能简陋,看着眼睛不容易花。只为了学习,一切从简。接下来就可以将它配置在web.xml文件中了:
<servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>com.wbh.mymvc.servlet.MyDispatcherServlet</servlet-class> <init-param> <param-name>mvcConfigLocation</param-name> <param-value>/WEB-INF/classes/mymvc.properties</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
不用觉得眼熟,不这么配还能怎么配,需要注意的有两点:
1.映射路径怎么填得好好考虑,只为了学习的话,配置个指定后缀的url最好了,省得到时候还得对各种资源文件做处理。
2.最好使用高版本的web.xml,为了减少以后jsp的el表达式的使用。
相关文章推荐
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(1):入口所在
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(2):数据初始化(一)
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(5):数据初始化(四)
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(3):数据初始化(二)
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(7):执行,调度和渲染(二)
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(7):执行,调度和渲染(二)
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(3):数据初始化(二)
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(6):执行,调度和渲染(一)
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(8):总结和对以后版本的展望
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(4):数据初始化(三)
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(8):总结和对以后版本的展望
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(4):数据初始化(三)
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(6):执行,调度和渲染(一)
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(5):数据初始化(四)
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(2):数据初始化(一)
- 【分享】分享一个基于SSH实现的简单学生选课系统(附源码)
- SpringMVC,Spring MVC是一个基于Model2的MVC框架
- 源码分析之动手实现手写一个自己的SpringMVC框架(三)
- 基于对Retrofit的源码的理解,实现Retrofit调用的模式的activity之间的跳转
- SIFT算法实现理解及注释详解(基于Rob Hess源码)