SpringMVC

一、什么是SpringMVC?

  Spring MVC框架是一个开源的Java平台,为开发强大的基于Java的Web应用程序提供全面的基础架构支持非常容易和非常快速。

  Spring web MVC框架提供了MVC(模型 - 视图 - 控制器)架构和用于开发灵活和松散耦合的Web应用程序的组件。 MVC模式导致应用程序的不同方面(输入逻辑,业务逻辑和UI逻辑)分离,同时提供这些元素之间的松散耦合。

  • 模型(Model)封装了应用程序数据,通常它们将由POJO类组成。
  • 视图(View)负责渲染模型数据,一般来说它生成客户端浏览器可以解释HTML输出。
  • 控制器(Controller)负责处理用户请求并构建适当的模型,并将其传递给视图进行渲染。

二、SpringMVC的原理

 

三、SpringMVC的简单使用:

    1.导入Spring框架的jar包

    2.在 web.xml 中配置前端控制器 DispatcherServlet

    

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 3     xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
 4     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
 5     http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
 6     id="WebApp_ID" version="3.1">
 7     <!-- 定义Spring MVC的前端控制器 -->
 8   <servlet>
 9     <servlet-name>springmvc</servlet-name>
10     <servlet-class>
11         org.springframework.web.servlet.DispatcherServlet
12     </servlet-class>
13     <init-param>
14       <param-name>contextConfigLocation</param-name>
15       <param-value>/WEB-INF/springmvc-config.xml</param-value>
16     </init-param>
17     <load-on-startup>1</load-on-startup>
18   </servlet>
19   <!-- 让Spring MVC的前端控制器拦截所有请求 -->
20   <servlet-mapping>
21     <servlet-name>springmvc</servlet-name>
22     <url-pattern>/</url-pattern>
23   </servlet-mapping>

    3.配置spring MVC 的 controller 的配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:mvc="http://www.springframework.org/schema/mvc"
 5     xmlns:context="http://www.springframework.org/schema/context"
 6     xsi:schemaLocation="
 7         http://www.springframework.org/schema/beans
 8         http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
 9         http://www.springframework.org/schema/mvc
10         http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd     
11         http://www.springframework.org/schema/context
12         http://www.springframework.org/schema/context/spring-context-4.2.xsd">
13         
14     <!-- spring可以自动去扫描base-pack下面的包或者子包下面的java文件,
15         如果扫描到有Spring的相关注解的类,则把这些类注册为Spring的bean -->
16     <context:component-scan base-package="org.springmvc.controller"/>
17     
18     <!-- 配置处理映射器 -->
19     <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
20      
21      <!-- 配置处理器适配器-->
22     <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
23     <!-- 视图解析器 -->
24     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
25     
26 </beans>

    4.基于注解的控制器

 1 package org.springmvc.controller;
 2  
 3 import org.apache.commons.logging.Log;
 4 import org.apache.commons.logging.LogFactory;
 5 import org.springframework.stereotype.Controller;
 6 import org.springframework.web.bind.annotation.RequestMapping;
 7 import org.springframework.web.servlet.ModelAndView;
 8  
 9 /**
10  *  HelloController是一个基于注解的控制器,
11  *  可以同时处理多个请求动作,并且无须实现任何接口。
12  *  org.springframework.stereotype.Controller注解用于指示该类是一个控制器
13  */
14 @Controller
15 public class HelloController{
16  
17      private static final Log logger = LogFactory
18                 .getLog(HelloController.class);
19      
20      /**
21       * org.springframework.web.bind.annotation.RequestMapping注解
22       * 用来映射请求的的URL和请求的方法等。本例用来映射"/hello"
23       * hello只是一个普通方法。
24       * 该方法返回一个包含视图路径或视图路径和模型的ModelAndView对象。
25       * */
26      @RequestMapping(value="/hello")
27      public ModelAndView hello(){
28          logger.info("hello方法 被调用");
29          // 创建准备返回的ModelAndView对象,该对象通常包含了返回视图的路径、模型的名称以及模型对象
30          ModelAndView mv = new ModelAndView();
31          //添加模型数据 可以是任意的POJO对象  
32          mv.addObject("message", "Hello World!");  
33          // 设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面  
34          mv.setViewName("/WEB-INF/content/welcome.jsp"); 
35         // 返回ModelAndView对象。
36         return mv;
37      }
38  
39 }

    5.view页面:

 1 %@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>welcome</title>
 8 </head>
 9 <body>
10 <!-- 页面可以访问Controller传递传递出来的message -->
11 ${requestScope.message}
12 </body>
13 </html>

 

posted @ 2019-05-10 08:48  123gogo  阅读(159)  评论(0编辑  收藏  举报