(笔记)Spring MVC学习指南_Spring MVC介绍

来源:互联网 发布:amv格式视频软件 编辑:程序博客网 时间:2024/04/26 15:48

1.采用Spring MVC的好处
Dispatcher servlet必须能够做如下事情:
(1)根据URI调用相应的action
(2)实例化正确的控制器类
(3)根据请求参数值来构造表单bean
(4)调用控制器对象的相应方法
(5)转向到一个视图(JSP页面)
Spring MVC是一个包含了Dispatcher servlet的MVC框架。它调用控制器方法并转发到视图。
2.Spring MVC的DispatcherServlet
Spring MVC中自带了一个开箱即用的DispatcherServlet,该Servlet的全名是org.springframework.web.servlet.DispatcherServlet。
要使用这个servlet,需要把它配置在部署描述符(web.xml文件),应用servlet和servlet-mapping元素

  <servlet>    <servlet-name>springmvc</servlet-name>    <servlet-class>        org.springframework.web.servlet.DispatcherServlet    </servlet-class>    <!--     <init-param>        <param-name>contextConfigLocation</param-name>        <param-value>/WEB-INF/config/simple-config.xml</param-value>    </init-param>     -->    <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>springmvc</servlet-name>    <!-- map all requests to the DispatcherServlet -->    <url-pattern>/</url-pattern>  </servlet-mapping>

servlet元素内的on-startup元素是可选的。如果它存在,则它将在应用程序启动时装载servlet并调用它的init方法。若它不存在,则在该servlet的第一个请求时加载。
Dispatcher servlet将使用Spring MVC诸多默认的组件。此外,初始化时,它会寻找一个在应用程序的WEB-INF目录下的配置文件,该配置文件的命名规则如下:servletName-servlet.xml。其中,servletName是在部署描述符中的Dispatcher servlet的名称。
此外,也可以把Spring MVC的配置文件放在应用程序目录中的任何地方,用servlet定义的init-param元素,以便Dispatcher servlet加载到该文件。
3.Controller接口
在Spring2.5版本前,开发一个控制器的唯一方法是实现org.springframework.web.servlet.mvc.Controller接口。这个接口公开了一个handleRequest方法。下面是该方法的签名:

ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response

Controller接口的实现类只能处理一个单一动作(Action),而一个基于注解的控制器可以同时支持多个请求处理动作,并且无需实现任何接口。
4.第一个Spring MVC应用
部署描述符文件和Spring MVC配置文件
web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">  <display-name>app03a</display-name>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>  <servlet>    <servlet-name>springmvc</servlet-name>    <servlet-class>        org.springframework.web.servlet.DispatcherServlet    </servlet-class>    <!--     <init-param>        <param-name>contextConfigLocation</param-name>        <param-value>/WEB-INF/config/simple-config.xml</param-value>    </init-param>     -->    <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>springmvc</servlet-name>    <!-- map all requests to the DispatcherServlet -->    <url-pattern>/</url-pattern>  </servlet-mapping></web-app>

springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">    <bean name="/product_input.action" class="app03a.controller.InputProductController" />    <bean name="/product_save.action" class="app03a.controller.SaveProductController" /></beans>

5.View Resolver
仅需要提供“myPage”,而不必再设置视图路径为/WEB-INF/jsp/myPage.jsp,视图解析器将会自动增加前缀和后缀。

    <bean id="viewResolver"        class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/WEB-INF/jsp/" />        <property name="suffix" value=".jsp" />    </bean>
0 0