SpringMVC简介及实现

  • Post author:
  • Post category:其他

SpringMVC框架特点

清晰地角色划分。
灵活的配置功能。
提供了大量的控制器接口和实现类。
真正做到与View层的实现无关(JSP、Velocity、Xslt等)。
国际化支持。
面向接口编程。
Spring提供了Web应用开发的一整套流程,不仅仅是MVC,他们之间可以很方便的结合一起。

MVC设计模式

模型(Model)-对应组件:JavaBean。
视图(View)-对应组件:JSP或者HTML文件。
控制器(Controller)-对应组件:Servlet。

MVC 优点:

多视图共享一个模型,大大提高代码的可重用性。
MVC三个模块相互独立,松耦合架构。
控制器提高了应用程序的灵活性和可配置性。
有利于软件工程化管理。

MVC 缺点:

原理复杂。
增加了系统结构和实现的复杂性。
视图对模型数据的低效率访问。

SpringMVC程序实现步骤

Spring MVC框架搭建步骤:
(1) 下载jar文件并导入工程
spring-web-3.2.13.RELEASE.jar
spring-webmvc-3.2.13.RELEASE.jar
(2) 配置文件
在web.xml中配置Servlet,定义DispatcherServlet。
创建Spring MVC的配置文件。
(3) 创建Controller(处理请求的控制器)
(4) 创建View(JSP视图)
(5) 部署运行

控制器代码:

import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class IndexController {
    private Logger logger = Logger.getLogger(IndexController.class);

    // RequestMapping表示用哪个url来对应(此处:"/index")
    @RequestMapping("/index")
    public String index() {
        // System.out.println("hello,SpringMVC!");
        logger.info("hello,SpringMVC!");
        return "index";
    }
}

SpringMVC配置文件spring-servlet.xml代码:

    <context:component-scan base-package="cn.hyg.controller" />
    <mvc:annotation-driven />

    <!-- 完成视图的对应 -->
    <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

web.xml代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    
  <display-name>springMVC</display-name>
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc-servlet.xml</param-value>
    </init-param>
    <!-- 标记容器在启动的时候就加载这个servlet(实例化并调用其init()方法)。它的值必须是一个整数,表示servlet应该被载入的顺序 -->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>classpath:log4j.properties</param-value>
  </context-param>
  <listener>
    <listener-class>
			org.springframework.web.util.Log4jConfigListener
	</listener-class>
  </listener>
</web-app>

版权声明:本文为wfr661原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。