spring MVC 入门程序

由上一篇文章的分析spring MVC主要有以下几个组成部分:dispatcherServlet、HandlerMapping、HandlerAdapter、Handler、ViewResolver、View。其中

DispatcherServlet:前端控制器,由springmvc提供

HandlerMappting:处理器映射器,由springmvc提供

HandlerAdapter:处理器适配器,由springmvc提供

Handler:处理器,需要程序员开发

ViewResolver:视图解析器,由springmvc提供

View:真正视图页面需要由程序编写

1.新建dynamic web工程,HelloSpringMVC

2.在lib目录下放入需要的jar包

spring MVC 入门程序

3.前端控制器配置

前端控制器在web.xml中进行配置

  1. <?xmlversionxmlversion="1.0" encoding="UTF-8"?>  
  2. <web-appxmlns:xsiweb-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5">  
  3.  <display-name>HelloSpringMVC</display-name>  
  4.    
  5.   <servlet>  
  6.        <servlet-name>SpringMVC</servlet-name>  
  7.        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  8.        <init-param>  
  9.                 <param-name>contextConfigLocation</param-name>  
  10.                 <param-value>classpath:SpringMVC-servlet.xml</param-value>  
  11.        </init-param>  
  12.        <load-on-startup>1</load-on-startup>  
  13.   </servlet>  
  14.   <servlet-mapping>  
  15.        <servlet-name>SpringMVC</servlet-name>  
  16.        <url-pattern>*.action</url-pattern>  
  17.   </servlet-mapping>  
  18.    
  19.   <welcome-file-list>  
  20.    <welcome-file>index.html</welcome-file>  
  21.    <welcome-file>index.htm</welcome-file>  
  22.     <welcome-file>index.jsp</welcome-file>  
  23.    <welcome-file>default.html</welcome-file>  
  24.    <welcome-file>default.htm</welcome-file>  
  25.    <welcome-file>default.jsp</welcome-file>  
  26.   </welcome-file-list>  
  27. </web-app>  


4.处理器映射器、处理器适配器、视图解析器配置

这些在springMVC-servlet中配置,在工程目录下新建config的源码文件夹,新建springMVC-servlet.xml文件

  1. <?xmlversionxmlversion="1.0" encoding="UTF-8"?>  
  2.    
  3. <beansxmlnsbeansxmlns="http://www.springframework.org/schema/beans"  
  4.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.    xmlns:context="http://www.springframework.org/schema/context"  
  6.    xsi:schemaLocation="http://www.springframework.org/schema/beans  
  7.              http://www.springframework.org/schema/beans/spring-beans-4.2.xsd  
  8.              http://www.springframework.org/schema/context  
  9.              http://www.springframework.org/schema/context/spring-context-4.2.xsd  
  10.              ">  
  11.     
  12.    
  13.          <!-- 自动装配bean -->  
  14.    <!-- 自动检测bean -->  
  15.          <context:component-scan  
  16.                    base-package="com.hellospringmvc"  
  17.          ></context:component-scan>  
  18.    
  19.          <!-- 配置处理器映射器 -->  
  20.          <!-- 根据bean的name进行查找Handler 将action的url配置在bean的name中 -->  
  21.          <bean  
  22.                    class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
  23.                             <propertynamepropertyname="mappings">  
  24.                                      <props>  
  25.                                                <propkeypropkey="/helloController.action">helloController</prop>  
  26.                                      </props>  
  27.                             </property>  
  28.                    </bean>  
  29.           
  30.          <!-- 配置处理器适配器 -->  
  31.          <bean  
  32.                    class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>  
  33.           
  34.          <beannamebeanname="/helloController" id = "helloController" class ="com.hellospringmvc.HelloController"></bean>  
  35.          <!-- 配置视图解析器  
  36.                    要求将jstl的包加到classpath  
  37.           -->  
  38.    <beanclassbeanclass="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  39.       <property name="prefix"value="/WEB-INF/" />  
  40.       <property name="suffix"value=".jsp" />  
  41.    </bean>  
  42.    
  43. </beans>  


也可以用SimpleurlhandlerMapping作为处理器映射器,配置文件如下

  1. <?xmlversionxmlversion="1.0" encoding="UTF-8"?>  
  2.    
  3. <beans xmlns="http://www.springframework.org/schema/beans"  
  4.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.    xmlns:context="http://www.springframework.org/schema/context"  
  6.    xsi:schemaLocation="http://www.springframework.org/schema/beans  
  7.              http://www.springframework.org/schema/beans/spring-beans-4.2.xsd  
  8.              http://www.springframework.org/schema/context  
  9.              http://www.springframework.org/schema/context/spring-context-4.2.xsd  
  10.              ">  
  11.     
  12.    
  13.          <!-- 自动装配bean -->  
  14.    <!-- 自动检测bean -->  
  15.          <context:component-scan  
  16.                    base-package="com.hellospringmvc"  
  17.          ></context:component-scan>  
  18.    
  19.          <bean id ="helloController" class ="com.hellospringmvc.HelloController"></bean>  
  20.    
  21.          <!-- 配置处理器映射器 -->  
  22.          <!-- 根据bean的name进行查找Handler 将action的url配置在bean的name中 -->  
  23.          <bean  
  24.                    class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
  25.                             <propertynamepropertyname="mappings">  
  26.                                      <props>  
  27.                                                <propkeypropkey="/helloController.action">helloController</prop>  
  28.                                      </props>  
  29.                             </property>  
  30.                    </bean>  
  31.           
  32.          <!-- 配置处理器适配器 -->  
  33.          <bean  
  34.                    class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>  
  35.           
  36.           
  37.          <!-- 配置视图解析器  
  38.                    要求将jstl的包加到classpath  
  39.           -->  
  40.    <beanclassbeanclass="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  41.       <property name="prefix"value="/WEB-INF/" />  
  42.       <property name="suffix"value=".jsp" />  
  43.    </bean>  
  44.    
  45. </beans>  


5.POJO编写

在src目录下新建com.hellospringmvc包,新建Item类

  1. packagecom.hellospringmvc;  
  2.    
  3. importorg.springframework.stereotype.Component;  
  4.    
  5. public classItem {  
  6.          private int id;  
  7.          private String name;  
  8.          private String detail;  
  9.          public String getDetail() {  
  10.                    return detail;  
  11.          }  
  12.          public void setDetail(String detail) {  
  13.                    this.detail = detail;  
  14.          }  
  15.          private double price;  
  16.          public int getId() {  
  17.                    return id;  
  18.          }  
  19.          public void setId(int id) {  
  20.                    this.id = id;  
  21.          }  
  22.          public String getName() {  
  23.                    return name;  
  24.          }  
  25.          public void setName(String name) {  
  26.                    this.name = name;  
  27.          }  
  28.          public double getPrice() {  
  29.                    return price;  
  30.          }  
  31.          public void setPrice(double price) {  
  32.                    this.price = price;  
  33.          }  
  34. }  


6.Handler编写

com.hellospringmvc包下新建HelloController类

  1. packagecom.hellospringmvc;  
  2.    
  3. importjava.util.ArrayList;  
  4. importjava.util.List;  
  5.    
  6. importjavax.servlet.http.HttpServletRequest;  
  7. importjavax.servlet.http.HttpServletResponse;  
  8.    
  9. importorg.springframework.ui.ModelMap;  
  10. import org.springframework.web.bind.annotation.RequestMapping;  
  11. importorg.springframework.web.bind.annotation.RequestMethod;  
  12. importorg.springframework.web.servlet.ModelAndView;  
  13. importorg.springframework.web.servlet.mvc.Controller;  
  14.    
  15. public classHelloController implements Controller{  
  16.    
  17.          @Override  
  18.          public ModelAndViewhandleRequest(HttpServletRequest request,  
  19.                             HttpServletResponseresponse) throws Exception {  
  20.                     
  21.                    //商品列表  
  22.                    List<Item> itemsList =new ArrayList<Item>();  
  23.                     
  24.                    Item items_1 = new Item();  
  25.                    items_1.setName("联想笔记本");  
  26.                    items_1.setPrice(6000f);  
  27.                    items_1.setDetail("ThinkPadT430 联想笔记本电脑!");  
  28.                     
  29.                    Item items_2 = new Item();  
  30.                    items_2.setName("苹果手机");  
  31.                    items_2.setPrice(5000f);  
  32.                    items_2.setDetail("iphone6苹果手机!");  
  33.                     
  34.                    itemsList.add(items_1);  
  35.                    itemsList.add(items_2);  
  36.                     
  37.                    //创建modelAndView准备填充数据、设置视图  
  38.                    ModelAndView modelAndView =new ModelAndView();  
  39.                     
  40.                    //填充数据  
  41.                    modelAndView.addObject("itemsList",itemsList);  
  42.                    //视图  
  43.                    modelAndView.setViewName("helloController");  
  44.                     
  45.                    return modelAndView;  
  46.          }  
  47.    
  48.    
  49. }  


7.发布网站。访问http://localhost/HelloSpringMVC/helloController.action