springMVC

一、     Introduction

springMVC是spring的一个组成部分,天然具备了spring的IoC的松耦合的特点及其他优点,是一个MVC模式下的web框架。SpringMVC对于mvc设计的实现围绕其核心组件DispatcherServlet展开,DispatcherServlet可以看做是处理web端请求和响应的中央处理器或者核心调度器。从数据流向来看,它接受请求,向下分发调度,并将最终的处理结果的视图响应给请求源。在向下调度请求任务过程中,主要是通过与HandlerMapping(处理器映射器)、Handler(处理器)、HandlerAdapter(处理器适配器)、ViewReslover(视图解析器)等的数据交互,完成请求过程,形成响应结果。DispatcherServlet本质上一个功能强大的servlet。因为servlet的核心功能即处理请求与响应,而DispatherServlet的核心功能也是处理请求与响应,它的强大在于从具体的处理工作中脱离出来,而是调度它的小弟完成处理的动作,它主要负责与源端的交接以及请求流的调控。所以,在web.xml中配置它为servlet。

在DispatcherServlet的组件中:

1.    HandlerMapping,将用户请求的url映射给Handler。Handler是一个统称,一个一个具体的Controller(控制器)构成了Handler,而HandlerMapping将url映射到Controller中具体的业务单元。实际中,通过@Controller和@RequestMapping()等注释实现。

2.    显然,Controller中的方法,可以通过原始request和response的方法,实现与view的交互,然而,这将失去框架低耦合、高内聚的优势。框架设计的宗旨,必然要将其中的某些执行进行封装或者其他处理,这个就是HandlerAdapter的由来。HandlerAdapter组件使得Controller中的处理单元可以享有一些特别的方法,相比框架前操作。

3.    从HandlerAdapter处理过的数据,必然与框架前的数据有区别的,如果直接给视图,如jsp,使用,恐怕会出现问题。所以,ViewResolver应运而生,可以看做ViewResolver是HandlerAdapter在v部分的延续,或者看做是m和v的一个交接媒介。

不难看出,上述3大组件在springMVC中的重要地位。

二、   使用步骤

1.  创建web工程

2.  导入需要的jar包

3.  配置springMVC的配置文件,注意tomcat默认从web根目录下读取springMVC的配置文件,所以请将DispatcherServlet的上下文配置文件地址改为classpath:XXX.xml

4.  配置web.xml文件

5.  创建控制器类

6.  创建前端jsp文件

7.  例子

配置springMVC文件

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns:p="http://www.springframework.org/schema/p"

   xmlns:context="http://www.springframework.org/schema/context"

   xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"

   xmlns:mvc="http://www.springframework.org/schema/mvc"

   xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd

       http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd

       http://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd

       http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsd">

     <!-- 开启注解扫描 -->   

    <context:component-scanbase-package="com.springmvc.controller"></context:component-scan>

</beans>

配置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/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID"version="3.0">

  <display-name>springMVC</display-name>

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.htm</welcome-file>

    <welcome-file>index.jsp</welcome-file>

    <welcome-file>default.html</welcome-file>

    <welcome-file>default.htm</welcome-file>

    <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

  <!-- 配置springMVC的DispathcerServlet -->

  <servlet>

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

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

      <!-- tomcat默认从web根目录下找springmvc的配置文件。需要配置这个servlet的config,将上下文配置文件的地址改为classpath下的springmvc.xml的文件 -->

      <init-param>

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

          <param-value>classpath:springMVC.xml</param-value>

      </init-param>

  </servlet>

  <servlet-mapping>

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

      <url-pattern>*.action</url-pattern>

  </servlet-mapping>

</web-app>

创建控制器类

//springMVCjar包支持下,@Controller作用将类注解为控制器

@Controller

public classItemsController {

   @RequestMapping("/itemList")

   public ModelAndViewitemlist()throws Exception{

      List<Items> ilist=newArrayList<Items>();

      Items li1=new Items();

      li1.setName("haha");

      li1.setCreatetime(new Date());

      li1.setDetail("hhhhh快快快快快快");

      li1.setPrice(11f);

      Items li2=new Items();

      li2.setName("2222");

      li2.setCreatetime(new Date());

      li2.setDetail("22222");

      li2.setPrice(22f);

      ilist.add(li1);

      ilist.add(li2);

      ModelAndView mav=newModelAndView();

      mav.addObject("itemList",ilist);

      mav.setViewName("/WEB-INF/jsp/itemList.jsp");

      return mav;

   }

}

创建jsp和测试略

关于springMVC的其他使用,见:点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值