天天看点

面试疑难点解析:开发工具及框架(六)

Spring拦截器

为什么SpringMVC没有像Struts 2.x那样的拦截器栈?

从我个人角度来看,我认为不使用拦截器栈会更好。

首先必须要明确的一点,在Spring的设计之中,它实际上只是更加忠实于原始的MVC技术的提升。如果要处理请求,使用DisptacherServlet完成,这一点要比Struts 2.x使用Filter更好。

Struts 2.x占用了过滤器的过程,而这一过程对开发很不方便,在实际的开发里面过滤器可能需要完成许多辅助功能,Struts 2.x做的时候考虑到Struts 1.x的区分,所以没有使用Servlet。如果用户要实现一些AOP有关的设计,那该怎么做呢?在这样的情况下,Struts 2.x提出了拦截器,但由于Struts2.x拦截器 里面承载的内容过多,提出了拦截器栈。

如果在传统的MVC开发里面,需要进行拦截的操作控制,那么最简化的处理是使用多个过滤器完成。所以SpringMVC也采用了同样的模式来进行处理,它的拦截器是基于配置的方式完成,按照过滤器的使用模式,如果需要多个拦截器,就在配置里面编写多个拦截器的配置即可,因为所有的拦截器会按照路径拦截。

更多专业知识,面试技巧就在面试一点通,持续更新中……

感谢浏览~

本内容来源于

阿里云大学-Java面试技巧