一个简单的 SpringMVC 实例

12 篇文章 0 订阅
9 篇文章 0 订阅
  1. 添加 spring 框架所需的 jar 包。首先使用 Eclipse 新建一个动态的 Web 工程,命名为SpringMVCDome 如果没有特别的要求可以将 spring-framework-4.2.0.RELEASE(在我的spring框架学习-下载和文件说明中有介绍怎么下载)文件夹下 libs 中的 class 类型的 jar 包都加入。
  2. 在 web.xml 中配置前端控制器 DispatcherServlet。
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
    	http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
    	id="WebApp_ID" version="3.1">
    	<!-- 定义Spring MVC的前端控制器 -->
      <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </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>
    </web-app>
    web.xml 文件的内容告诉 Web 容器,将使用 spring MVC 的 DispatcherServlet,并通过配置 url-pattern 元素的值为“/”,将所有的 URL 映射到该 Servlet。
  3. 配置spring MVC 的 controller 的配置文件,路径:SpringMVCDemo/WebContent/WEB-INF/springmvc-config.xml
    <?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:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd     
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-4.2.xsd">
            
        <!-- spring可以自动去扫描base-pack下面的包或者子包下面的java文件,
        	如果扫描到有Spring的相关注解的类,则把这些类注册为Spring的bean -->
        <context:component-scan base-package="org.springmvc.controller"/>
        
        <!-- 配置处理映射器 -->
        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
         
         <!-- 配置处理器适配器-->
        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
    
    
    	<!-- 视图解析器 -->
    	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
    	
    </beans>
    使用注解类型就不需要再在配置文件中使用 XML 描述 Bean。 spring 使用扫描机制查找应用程序中所有基于注解的控制器类。
  4. 基于注解的控制器
    package org.springmvc.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;
    
    /**
     *  HelloController是一个基于注解的控制器,
     *  可以同时处理多个请求动作,并且无须实现任何接口。
     *  org.springframework.stereotype.Controller注解用于指示该类是一个控制器
     */
    @Controller
    public class HelloController{
    
    	 private static final Log logger = LogFactory
    	            .getLog(HelloController.class);
    	 
    	 /**
    	  * org.springframework.web.bind.annotation.RequestMapping注解
    	  * 用来映射请求的的URL和请求的方法等。本例用来映射"/hello"
    	  * hello只是一个普通方法。
    	  * 该方法返回一个包含视图路径或视图路径和模型的ModelAndView对象。
    	  * */
    	 @RequestMapping(value="/hello")
    	 public ModelAndView hello(){
    		 logger.info("hello方法 被调用");
    		 // 创建准备返回的ModelAndView对象,该对象通常包含了返回视图的路径、模型的名称以及模型对象
    		 ModelAndView mv = new ModelAndView();
    		 //添加模型数据 可以是任意的POJO对象  
    	     mv.addObject("message", "Hello World!");  
    	     // 设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面  
    	     mv.setViewName("/WEB-INF/content/welcome.jsp"); 
    		// 返回ModelAndView对象。
    		return mv;
    	 }
    
    }
    

  5. 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>welcome</title>
    </head>
    <body>
    <!-- 页面可以访问Controller传递传递出来的message -->
    ${requestScope.message}
    </body>
    </html>

  6. 请求
    http://localhost:8080/SpringMVCDemo/hello
    请求成功后页面会显示“Hello World!”。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值