本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容。
一、项目结构
Struts + Spring + Hibernate SSH SpringMVC + Spring + Mybatis(Hibernate) SpringMVC的核心组件 DispatcherServlet(控制器,请求的入口) HandlerMapping(控制器,请求派发) Controller(控制器,请求处理流程) ModelAndView(模型,封装了业务处理的结果) ViewResovler(视图处理器) Spring MVC处理流程 1--浏览器向spring发出请求,请求交给前端控制器DispatcherServlet 2--控制器通过HandlerMapping找到相应的Controller组件处理请求 3--执行Controller组件约定的方法处理请求,在约定的方法中调用模型组件完成业务处理 约定方法可以返回一个ModelAndView对象,封装了处理结果数据和视图名称信息 4--控制器接收ModelAndView之后,调用ViewResolver组件, 定位View(JSP)并传递数据信息,生成响应界面结束 Spring MVC的 Hello world! 1--导入jar包 commons-collections4-4.0.jar commons-dbcp2-2.1.1.jar commons-logging-1.2.jar commons-pool2-2.4.2.jar jstl-1.2.jar junit-4.10.jar mysql-connector-java-5.1.25-bin.jar spring-beans-3.2.8.RELEASE.jar spring-context-3.2.8.RELEASE.jar spring-context-support-3.2.8.RELEASE.jar spring-core-3.2.8.RELEASE.jar spring-expression-3.2.8.RELEASE.jar spring-jdbc-3.2.8.RELEASE.jar spring-tx-3.2.8.RELEASE.jar spring-web-3.2.8.RELEASE.jar spring-webmvc-3.2.8.RELEASE.jar standard-1.1.2.jar 2--创建主配置文件 默认情况下,Spring MVC会自动加载WEB-INF/(servlet-name)-servlet.xml Dispatcher-servlet 3--在web.xml文件中配置控制器DispatcherServlet <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- <init-param> <param-name>contextConfigLocation</param-name> <param-value>location</param-value> </init-param> --> <!-- 提高web容器处理该servlet的优先级 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <!-- /* 代表所有的请求都要经过我这个DispatcherServlet控制器 --> <!-- <url-pattern>/</url-pattern> --> <!-- *.action代表所有的后缀为.action的请求都要经过经过DispatcherServlet控制器 --> <url-pattern>*.action</url-pattern> </servlet-mapping> 4--创建并配置HandlerMapping组件 public class HelloWorldController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { //业务逻辑 System.out.println("hello world!"); return new ModelAndView("helloworld");// /WEB-INF/helloworld/helloworld.jsp } } <bean id="helloWorldController" class="com.springmvc.controller.HelloWorldController"></bean> 5--配置Spring MVC的视图解析器 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/helloworld/"></property> <property name="suffix" value=".jsp"></property> </bean> 6--配置请求映射处理工具 <!-- 映射处理器组件(控制器的范畴) --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <!-- 意思是说, /helloworld.action这个请求过来了,就调用helloWorldController名称的Bean处理请求--> <prop key="/helloworld.action">helloWorldController</prop> </props> </property> </bean> 7--测试:访问地址是:http://localhost:8888/spring-MVC-day06/helloworld.action