编写第一个spring MVC程序

时间:2022-08-11 19:15:14

一、下载和安装spring框架

  进入http://repo.springsource.org/libs-release-local/org/springframework/spring/4.2.0.RELEASE/下载一个spring框架,然后打开lib目录里的jar文件拷贝到项目的WEB-INF/lib目录下。

二、配置web.xml文件

  Spring MVC 提供了一个名为org.springframework.web.servlet.DispatcherServlet的Servlet充当前端控制器,所有的请求驱动都围绕这个DispatcherServlet来分派请求。配置代码如下:

  <servlet>

    <!-- servlet名称 -->
    <servlet-name>springmvc</servlet-name>

    <!-- servlet对应的类 -->
    <servlet-class>
     org.springframework.web.servlet.DispatcherServlet
    </servlet-class>

    <!-- 当前servlet的参数信息 -->
    <init-param>

      <!-- contextConfigLocation是参数名称,该参数的值包括Spring MVC的配置文件路径-->
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/springmvc-config.xml</param-value>
    </init-param>

    <!-- 在web应用启动时立即加载Servlet -->
              <load-on-startup>1</load-on-startup>
   </servlet>
  <!-- 让Spring MVC的前端控制器拦截所有请求 -->
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

三、配置Spring MVC的Controller 

  <?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-4.2.xsd">

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

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

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

    <bean

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

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

    <bean

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

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

    <bean

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

  <beans>

三、Controller类的实现  

  package com.ibs.controller;

  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
  import org.springframework.stereotype.Controller;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.servlet.ModelAndView;

  @Controller
  public class HelloController {
    private static final Log logger = LogFactory.getLog(HelloController.class);

    // handleRequest是Controller接口必须实现的方法。

    // 该方法的参数是对应请求的HttpservletRequest和HttpservletResponse.

    // 该方法必须返回一个包含视图名或视图名和模型的ModelAndView对象

  @RequestMapping(value="/hello")
   public ModelAndView hello() {

    // 生成日志
    logger.info("hello,world!!");

    // 创建一个ModelAndView 对象
    ModelAndView mv = new ModelAndView();

    // 添加模型数据,可以是任意POJO对象
    mv.addObject("message","Another hello world...");

    // 设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面
    mv.setViewName("/WEB-INF/content/welcome.jsp");

    // 返回这个ModelAndView 对象
    return mv;
    }
  }

四、View页面 

  <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>欢迎页面</title>
  </head>
  <body>
    <!-- 页面可以访问Controller传递传递出来的message -->
    ${requestScope.message}
  </body>
  </html>