SpringMVC详细步骤

1.配置前端控制器

  //负责各种解析器,例如本地化解析器,主题解析器,处理器映射器,处理器适配器,处理器异常解析器,视图名称解析器,视图解析器,文件上传解析器,FlashMap映射管理器

  <!--定义Spring MVC前端控制器-->

  <servlet>

    <servlet-name>springmvc</servlet>

    <servlet-class> org.springframework.web.servlet.DispathcerServlet </servlet-class>

    <init-param>

      <param-name> contextConfigLocation </param-name>

      <param-value> /WEB-INF/springmvc-config.xml </param-value>

    </init-param>

    <load-on-startup>1</load-on-startup>

  </servlet>

  <!--让Spring MVC的前端控制器拦截所有请求-->

  <servlet-mapping>

    <servlet-name> springmvc </servlet-name>

    <url-pattern> / </url-pattern>

  </servlet-mapping>

springmvc声明式配置:

2.声明业务控制器类,并将其映射到url

  <!--配置Handle,映射"/hello"请求-->

  <bean name="/hello" class="org.mypackge.controller.HelloController"/>

3.配置处理映射器,将bean的name作为url进行查找

  <!--配置处理映射器将bean的name作为url进行查找,需要在配置Handle时指定name-->

  <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

4.配置处理适配器,完成对HeoolController类的handleRequest方法的调用

  <!--配置一个处理器适配器HandlerAdapter,所有适配器都要实现HandlerAdapter接口,例如SimpleControllerHandlerAdapter-->

  <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

5.配置视图解析器,解析视图,将View呈现给用户

  <!--配置视图解析器-->

  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>

springmvc注解式配置:

  <!--spring可以自动扫描base-package下面的包或者子包下面的java文件,如果扫描到有spring相关的注解,则把这些类注册为spring的bean-->

  <context:component-scan base-package="mypackage"/>

  <!--配置annotation类型的处理映射器-->

  <bean class="org.springframework.web.sevlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

  <!--配置annotation类型的处理适配器-->

  <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

  <!--配置视图解析器-->

  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>

 

Controller类的实现:

  实现Controller接口或者使用@controller注解

  1.HelloController是一个实现Controller接口的控制器,可以处理一个单一的请求动作,Controller调用handleRequest方法来处理请求

  public class HelloController implements Controller{

    //实现Controller必输实现handleRequest方法,参数对应请求和响应,必须返回ModelAndView对象

    @Override

    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception{

      ModelAndView mv = new ModelAndView();

      //添加模型数据,可以使任意POJO对象

      mv.addObject("message", "Hello World!");

      //设置逻辑视图名,视图解析器会根据该名字解析并转发到具体的视图页面

      mv.setViewName("/WEB-INF/content/welcome.jsp");

      return mv;

    }

  }

  2.基于注解的控制器

  可以处理多个请求动作

  @Controller

  public class HelloController{

    //org.springframework.web.bind.annotation.RequestMapping注解用来映射请求的url和请求的方法等,例如映射"/hello",该方法返回ModelAndView对象

    @RequestMapping(value="/hello")

    public ModelAndView hello(){

      ModelAndView mv = new ModelAndView();

      mv.addObject("message","hello");

      mv.setViewName("/WEB-INF/content/welcome.jsp");

      return mv;

    }

  }

View实现:

  定义一个welcome.jsp文件,可以访问Controller传递的message

  <body> ${requestScope.message} </body>

posted on 2017-09-16 13:37  zawjdbb  阅读(160)  评论(0编辑  收藏  举报

导航