君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理

2012年5月15日 #

摘要: I thought that it was time to take a look at Spring’s MVC interceptor mechanism, which has been around for a good number of years and is a really useful tool.A Spring Interceptor does what it says on the tin: intercepts an incoming HTTP request before it reaches your Spring MVC controller class, or 阅读全文
posted @ 2012-05-15 06:08 刺猬的温驯 阅读(1875) 评论(0) 推荐(0) 编辑

摘要: 一、Servlet Filter与Spring interceptor的执行顺序 Filter有顺序吗?我们怎么控制filter的执行顺序。通过Tomcat的代码分析,servlet在Filter执行完成后才调用,如有多个filter怎么控制执行顺序,首先会想到在web.xml配置某个参数,例如order之类的,但查找一下一番,servlet并没有这个参数。试试filter Mapping的配置的先后顺序,果然有效,原来filter的执行顺序就考filter mapping在web.xml中的顺序。spring interceptor也是这样的执行顺序,不过interceptor多一个配置参数 阅读全文
posted @ 2012-05-15 05:15 刺猬的温驯 阅读(481) 评论(0) 推荐(0) 编辑

摘要: 在当今的MVC framework里,似乎Webwork2逐渐成为主流, Webwork2+SpringFramework的组合变得越来越流行。这似乎意味着Spring自带的MVC framework远比Webwork2差,所以大家纷纷用Webwork2来代替。确实,Spring的MVC framework不算是整个Spring的核心部件,但它的威力却超过了很多人的想象。很多人包括xiecc认为Spring的MVC framework是非常优秀的,甚至比Webwork2更优秀。下面列举一下Spring的MVC framework在设计时做出的一些重要的决定,并将之和相关的MVC framewo 阅读全文
posted @ 2012-05-15 05:14 刺猬的温驯 阅读(315) 评论(0) 推荐(0) 编辑

摘要: 假如我们在写一个基于Spring的普通应用程序,不管我们用了多么精妙的设计模式,进行了如何巧妙的设计,我们必须在某个地方执行这样的代码:ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml", "applicationContext-part2.xml"});appContext.getBean("…");也许这样的代码算不上丑陋,但是它无疑破坏了程序的纯洁 阅读全文
posted @ 2012-05-15 05:13 刺猬的温驯 阅读(409) 评论(0) 推荐(0) 编辑

摘要: 其实每个MVC framework的执行过程都是大同小异的,当个request过来时,它都通过一个Servlet来响应request,再根据request的路径名和配置将这个request dispatch给一个Controller执行,最后将之返回配置文件里对应的页面。在Spring MVC里,这个Servlet的名字叫DispatchServlet。稍看一下它的源码会发现这是一很简单的类。下面是DispatchServlet的类图:简单吧,这是典型的Template Method模式。每个类都会完成一些自己的本职工作,把不属于自己的工作延迟到子类来完成。这些类的子职责在下面会有分析。其实整 阅读全文
posted @ 2012-05-15 05:11 刺猬的温驯 阅读(394) 评论(0) 推荐(0) 编辑