Spring MVC(一) 简介

来源:互联网 发布:淘宝商家免费使用要求 编辑:程序博客网 时间:2024/05/20 18:16

Spring MVC


简介

作用:用于开发Java Web程序,搭建MVC结构。

Spring Web MVC具体实现

Spring Web MVC的底层实现过程

Spring Web MVC使用

  1. 搭建Spring Web MVC框架环境

    • 引入spring ioc、webmvc核心包
    • 引入applicationContext.xml
  2. 根据需求设计一个流程

需求:发出一个hello.do,响应一个hello.jsp界面

流程:hello.do–DispatcherServlet–>HandlerMapping–>HelloController–>ViewResolver–>/hello.jsp

  1. 编写HelloController和hello.jsp

    • HelloController要实现Controller接口,实现约定handleRequest方法
    • HelloController返回ModelAndView,包含视图名和视图需要的数据

      public class HelloController implements Controller{    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {        System.out.println("调用M模型组件,DAO/Service");//      Map<String, Object> data = new HashMap<String, Object>();//      data.put("msg", "Spring Web MVC示例");//      data.put(key, value)//      ModelAndView av = new ModelAndView("hello",data);        ModelAndView av = new ModelAndView();        av.setViewName("hello");        av.getModel().put("msg","Spring Web MVC示例");        return av;    }}
  2. 配置流程

    • 配置DispatcherServlet

        <servlet>    <servlet-name>springmvc</servlet-name>    <servlet-class>    org.springframework.web.servlet.DispatcherServlet    </servlet-class>    <!-- 指定spring容器配置文件,contextConfigLocation约定名 -->    <init-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:applicationContext.xml</param-value>    </init-param>    <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>springmvc</servlet-name>    <url-pattern>*.do</url-pattern>  </servlet-mapping>
    • 配置HandlerMapping

      <bean id="handlerMapping"     class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">    <property name="mappings">        <props>            <!-- <prop key="请求">Controller对象id</prop> -->            <prop key="hello.do">helloController</prop>        </props>    </property></bean>
    • 配置HelloController

      <bean id="helloController" class="com.xdl.web.controller.HelloController"></bean>
    • 配置ViewResolver

      <bean id="viewResolver"     class="org.springframework.web.servlet.view.InternalResourceViewResolver">    <!-- 指定视图文件位置 -->    <property name="prefix" value="/WEB-INF/"></property>    <!-- 指定视图文件类型 -->    <property name="suffix" value=".jsp"></property></bean>

Spring Web MVC扩展案例(列表显示)

需求:发出一个list.do请求,显示一个部门列表list.jsp

  1. 设计

    list.do–>DispatcherServlet–>HandlerMapping–>ListController–>ViewResolver–>list.jsp

  2. 编写ListController和list.jsp

  3. 配置MVC流程

    • 配置HanlderMapping组件的mappings属性
    • 配置ListController

Spring Web MVC注解配置

  • XML配置

  • 注解配置

与XML配置不同点:1.采用RequestMappingHandlerMapping、2.取消Controller接口约定

  1. RequestMapping配置如下

    <!-- 配置HandlerMapping --><mvc:annotation-driven />
  2. Controller组件编写如下

    @Controllerpublic class HelloController{    /**     * 处理请求方法,自动调用     * ModelAndView:封装模型数据和视图名信息     */    @RequestMapping("/hello.do")    public ModelAndView execute() throws Exception {        System.out.println("调用M模型组件,DAO/Service");        ModelAndView av = new ModelAndView();        av.setViewName("hello");        av.getModel().put("msg","Spring Web MVC示例");        return av;    }}
  3. Controller配置如下

    <!-- 配置Controller --><context:component-scan base-package="com.xdl"/>
  4. 其他DispatcherServlet和ViewResolver与XML配置相同

原创粉丝点击