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 14:56  我不爱喝牛奶  阅读(118)  评论(0编辑  收藏  举报