- 博客(15)
- 收藏
- 关注
原创 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(8):总结和对以后版本的展望
当写完这个小小的MVC后,是否有springMVC也不过如此的感觉?在这里不得不泼一盆冷水,这只是你的错觉。 同样用古典吉他谈爱的罗曼史,有些人只能弹弹主旋律,而另一些人却会用上轮指。各自的效果如何,自然不言而喻。 如果看完了这整个系列,可能还会记得我在其中一篇中留下的疑问:HandlerMapping和HandlerAdpter为什么是“一些”?笑话,他们是接口,可以有很多个实现类,可是有没
2015-03-11 13:44:38 591
原创 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(7):执行,调度和渲染(二)
了解了springMVC的执行调度过程,接下来自然是敲代码了,这里我维护了一个matchObstruct,用来存放匹配到的拦截器。整个处理过程在doService方法中 private void doService(HttpServletRequest req, HttpServletResponse resp) { Handler h = getHandler(req, resp);
2015-03-11 13:24:53 459
原创 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(6):执行,调度和渲染(一)
数据初始化结束后,我们需要考虑对请求如何处理。回到springMVC源代码中,找到方法doService(),七七八八的一大片,想来想去核心的可能只有这句了: try { doDispatch(request, response); } 我们再来看看doDispatch(),又是一大片: protected void doDispatch(HttpServletRequest re
2015-03-11 13:03:22 546
原创 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(5):数据初始化(四)
DispatcherServlet中的数据初始化: 重写init():@Override public void init() throws ServletException { logger.info("=====================MyDispatcherServlet init====================="); logger.info("======
2015-03-10 19:39:38 642
原创 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(4):数据初始化(三)
接下来编写封装类: 1.对拦截器的封装: package com.wbh.mymvc.servlet; import javax.servlet.http.HttpServletRequest; import com.wbh.mymvc.interceptor.BaseInterceptor; /** * 对拦截器进行封装 * @author wbh */ public class
2015-03-10 19:31:47 447
原创 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(3):数据初始化(二)
前文已经对SpringMVC中DispatcherServlet数据初始化过程有了一定的认识,下面开始编码: 1.设计自定义注解@MyController: package com.wbh.mymvc.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; imp
2015-03-10 19:23:33 419
原创 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(2):数据初始化(一)
按住ctrl再单击DispatcherServlet,等到MyEclipse下载完源代码,这是一个一千多行代码的大类,我们没有看到Init(),没有看到doGet(),和doPost()。且耐下心来,细细琢磨。 首先,这个Sevlet并不直接继承自HttpServlet,而是继承自FrameworkServlet类。不必惊讶这个类最终还是集成自HttpServlet,一些需要重写的方法也在一层层
2015-03-10 15:38:13 430
原创 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(1):入口所在
在开始之前,我们必须对springMVC有一个明确的认识。一个软件项目的完成少不了各种设计文档,对整个项目进行一个规划,而在这里,我们写自己的MVC只是为了对springMVC有更深的认识,我们不妨跟随自己对springMVC的剖析,一步步写自己的MVC。众所周知,无论什么MVC框架都无外乎对servlet的封装。自然,我们对springMVC的了解需要从web.xml开始。springMVC对一
2015-03-10 13:56:05 875
原创 SpringMVC Controller内部跳转如何被拦截器拦截
以下讨论在某个拦截器a能拦截所有url的前提下 1.x使用直接调用另一个方法y,a将只拦截x(一次). 2.x使用 this.request.getServletContext().getRequestDispatcher("/test").forward(request, response); 方式跳转,a将拦截x和/test(两次)。 3.x使用redirect方式跳转,a也将拦截两
2015-03-08 11:02:47 975
原创 在SpringMVC使用带参数重定向
项目中带参数重定向的情况时有发生,众所周知model在生命周期和request一致,在重定向过程中model已经消亡,内部携带的数据也将丢失。若使用session保存数据,程序员在使用数据后还得手工清除数据,也可以使用拼接URL的方式传递数据,这样的方式显然不是最合适的。Spring的开发者显然也想到了这一点,spring在3.0.1之后的版本 提供了一个类RedirectAttributes,它
2015-03-05 21:50:05 2552
原创 Spring4.1.5 和 hibernate 4.3.7 整合出现MemorySafeUndeclaredThrowableStrategy,ClassNotFound错误
最新版本的Spring4.1.5 和 hibernate 4.3.7 整合时可能出现MemorySafeUndeclaredThrowableStrategy,ClassNotFound错误。原因是Spring-core包下不再包含类MemorySafeUndeclaredThrowableStrategy。将Spring版本降低至4.0.5即可解决
2015-03-05 14:55:09 2079
原创 在SpringMVC中使用校验框架
这里使用hibernate提供的校验器,maven pom文件代码如下: org.hibernate hibernate-validator 5.1.3.Final 在Spring配置文件中进行如下配置: <bean id="validator" class="org.springframework.validation.beanvalidation.L
2015-03-04 20:46:24 407
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人