SpringMVC体系结构
1、用户发送请求到前端控制器。
2、前端控制器根据请求的信息来决定选择哪一个页面控制器进行处理并把请求委托给它。
3、页面控制器接收请求参数并进行验证,调用业务对象进行处理;处理完成后返回ModelAndView对象。
4、前端控制器根据返回的逻辑视图名,选择相应的视图,并把模型数据填入进行渲染。
5、前端控制器最终将响应呈现给用户,至此,整个过程结束。
放个我做的小练习的配置上来记录一下
主配置文件,主配置文件应该是在web项目的web.xml中指定路径
<?xml version="1.0" encoding="UTF-8"?> <!--Spring MVC容器配置文件--> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"> <!--扫描控制层组件--> <context:component-scan base-package="top.yibobo.controller"/> <!--使用注解驱动--> <mvc:annotation-driven/> <!--静态资源访问处理(js、css、图片、html等) 使用web容器默认的servlet--> <mvc:default-servlet-handler/> <!--<mvc:resources mapping="/resources/*" location="/"/>--> <!--视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="viewResolver"> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
web.xml中的配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>Archetype Created Web Application</display-name> <!-- 重新部署工程时 Tomcat 内存溢出 --> <listener> <listener-class>se.jiderhamn.classloader.leak.prevention.ClassLoaderLeakPreventorListener</listener-class> </listener> <!-- 防止内存泄露 --> <listener> <listener-class> org.springframework.web.util.IntrospectorCleanupListener </listener-class> </listener> <!--应用上下文加载的监听器,监听项目启动则加载spring的主配置文件, 初始化应用上下文,生产bean--> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!--指定spring主配置文件位置--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!-- 配置字符集编码转换的过滤器 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--springmvc的前端控制器--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!--默认首页--> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>