SpringMVC 概述 入门案例 @RequestMapping @PathVariable REST风格 POJO

目录

 

1、SpringMvc概述

2、SpringMvc入门,实现helloworld

4、REST风格URL

5、映射请求参数&请求头&Cookie

6、使用 Servlet 原生API 作为spring容器函数调入参数


1、SpringMvc概述

(1)Spring 为展现层提供的基于 MVC 设计理念的优秀的 Web 框架,是目前最主流的 MVC 框架之一

(2)Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架

(3)Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。

(4)支持 REST风格的URL请求

(5)采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性

MVC模型简介

 架构模式是一个通用的、可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题。架构模式与软件设计模式类似,但具有更广泛的范围。

  模型-视图-控制器模式,也称为MVC模式(Model View Controller)。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。它把软件系统分为三个基本部分:

    模型(Model):负责存储系统的中心数据。

    视图(View):将信息显示给用户(可以定义多个视图)。

    控制器(Controller):处理用户输入的信息。负责从视图读取数据,控制用户输入,并向模型发送数据,是应用程序中处理用户交互的部分。负责管理与用户交互交互控制。

  视图和控制器共同构成了用户接口。

  且每个视图都有一个相关的控制器组件。控制器接受输入,通常作为将鼠标移动、鼠标按钮的活动或键盘输入编码的时间。时间被翻译成模型或试图的服务器请求。用户仅仅通过控制器与系统交互。

 

例如:小时候玩的那种卡带式游戏机,Control是主机,一般来说我买一个主机就行了,只要他不坏,他就能一直让我玩这一类的游戏。View则是电视机和游戏手柄,电视机可以独立工作,他不管输入的是电视信号、影碟机信号还是游戏机信号,他只管显示,而且他决定了我们看到的效果是怎么样的,如果我想要个尺寸更大的或者彩色的显示效果,我只需要买个相应的电视机就行了,手柄也是可以换的,遥杆还是带震动的。Model则是游戏卡带,他决定了我玩的是什么游戏,是魂斗罗还是超级玛莉,而且游戏机主机和电视机生产厂家永远也不知道在上面有可能会运行什么样的游戏。卡带中可能会有游戏代码和存储单元,都根据游戏的需要而设计。

运行流程概述:

2、SpringMvc入门,实现helloworld

(1)导入jar包(交给maven)

(2)在web.xml中配置DispatcherServlet(就是修改默认配置文件的名字和位置,建议用默认位置和名字,不修改)

说明:

   Servlet的web.xml配置文件 就会读到 spring 的配置文件 

    配置 DispatcherServlet :DispatcherServlet 默认加载 /WEB- INF/<servletName-servlet>.xml (蓝色部分自由命名,就是Servlet-name标签里面的名字)的 Spring 配置文件, 启动 WEB 层的 Spring 容器。可以通过 contextConfigLocation 初始化参数自定义配置文件的位置和名称。

 <load-on-startup>1</load-on-startup> 这个标签说明,加载的时候就创建该Servlet而不是第一次请求的时候才创建。

以下将配置文件位置修改为类路径下的springmvc.xml。如果不写 <init-param>标签下的默认值,就会默认加载/WEB- INF/springDispatcherServlet-servlet.xml

<!--配置DispatcherServlet-->
<Servlet>
  <Servlet-name>springDispatcherServlet</Servlet-name>
  <Servlet-class>org.springframework.web.servlet.DispatcherServlet</Servlet-class>
  <!--配置DiapatcherServlet的一个初始化参数:SpringMvc配置文件的位置和名称  -->
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:springmvc.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</Servlet>
  
<servlet-mapping>
  <Servlet-name>springDispatcherServlet</Servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

src文件夹下新建springmvc.xml配置文件,idea中可选择好需要哪些名称空间,至少要勾选context 和 mvc

配置好需要自动扫描的包

<context:component-scan base-package="com.atguigu.springmvc"></context:component-scan>

在src下新建包 com.atguigu.springmvc.handlers,在该包下新建HelloWorld类

package com.atguigu.springmvc.handlers;

@Controller //注入spring容器
public class HelloWorld{
  /**使用@RequestMapping注解来映射请求的URL
  */
  @RequestMapping("/helloworld")
  public String hello(){
    System.out.println("hello world"); //打印到控制台

    //返回值通过视图解析器解析为实际物理视图
    //通过prefix+returnVal+后缀这样的方式得到物理视图,然后转发
    return "success"; //返回被视图解析器解析额的xx/success.xx页面
  }
}

前端的index.jsp 超链接的herf被服务端的@RequestMapping注解捕获

<body>
    <a herf="helloworld
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值