SpringMVC的粗略理解

springMVC的入口是org.springframework.web.servlet.DispatcherServlet

该类继承了HttpServlet,在配置url-pattern时,一般会配成/或者/user/*或者user.do

注意不能配成/*,如果这样的话会连jsp都拦截最终会显示404

也不能配成user.do/*,如果包含后缀(.do)的话就不应该还存在下级,如user.do/list,这种url是不合法的,我们可以用参数来区分不同的请求,比如type=list,type=save等

如果有controller中一个url的mapping配置成为/user/list,那么/user/list.do或者/user/list.asp或者其他任何都可以访问,但是不能配成.jsp,因为会误以为是jsp文件

DispatcherServlet中,包含了很多属性,比如viewResolvers,multipartResolver,handlerAdapters等,这些属性我们通常可以在spring-servlet.xml中进行配置,然后他会根据类型来找第一个注入到DispatcherServlet中,就是说如果你配置多个的话,spring会注入第一个

如果你没有配置的话,spring会使用默认的类,所以程序不会报错,实际上这些DispatcherServlet的属性全是接口,spring提供了一些实现,如果没有在配置文件中显示的声明使用哪个的话,spring自己会使用默认的,这一点和SpringSecurity中很像

当访问某个url地址时,如果符合springMVC配置,就会调用DispatcherServlet.doService方法,该方法调用protected void doDispatch(HttpServletRequest request, HttpServletResponse response),通过该方法找到url对应的controller的方法,然后调用之并返回



你可能感兴趣的:(SpringMVC的粗略理解)