SpringMVC

本文介绍了SpringMVC框架的核心作用,包括MVC设计模式的优缺点,详细阐述了其工作流程,并通过创建Module、启动类和Controller类展示了SpringMVC的入门案例。此外,还讲解了SpringMVC如何解析GET请求参数和RESTful风格的请求参数,提供了实际的代码示例。
摘要由CSDN通过智能技术生成

目录

一、概述

二、MVC设计模式

三、工作原理

四、入门案例

-1,创建Module

-2,创建启动类(RunApp类)

-3,创建资源(Controller类)

五、SpringMVC解析get请求的参数

–1,浏览器提交请求数据的方式

六、解析restful风格的请求参数

-1,项目结构

-2,修改网页

-3,修改pojo类(@Data)

-4,修改Controller

-5,改成ajax


一、概述

        SpringMVC框架的核心作用:接收浏览器发来的请求 + 给浏览器做出反应 

二、MVC设计模式

优点:实现分层的思想,达到松耦合的目的。提高代码的复用性,扩展性,容错性。

M:Model模型,用来封装数据

V:View视图,用来展示数据

C:Controller控制器,用来接收请求和处理响应

三、工作原理

 

1、用户发送请求至前端控制器DispatcherServlet。

2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、DispatcherServlet调用HandlerAdapter处理器适配器。

5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

6、Controller执行完成返回ModelAndView。

7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

9、ViewReslover解析后返回具体View。

10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

11、DispatcherServlet响应用户
 

-1,、前端控制器:DispatcherServlet,用来接收请求分发请求

-2、处理器映射器:HandlerMapping,用来根据url找具体的类里的具体方法

-3、处理器适配器:HandlerAdaptor,用来执行方法里的代码

-4、视图解析器:ViewResolver,定位页面的路径

-5、视图:View,有从来展示数据

四、入门案例

-1,创建Module

        访问链接: http://localhost:8080/car/get

-2,创建启动类(RunApp类)

package cn.tedu.controller;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication//这是一个启动类
public class RunApp {
    public static void main(String[] args) {
        SpringApplication.run(RunApp.class);//运行指定文件
    }
}

-3,创建资源(Controller类)

package cn.tedu.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController //接受请求   @Controller + @ResponseBody
@RequestMapping("car")//规定了浏览器访问这个类的方式   pojo中的car类(封装了car数据)
public class CarController {

    @RequestMapping("get")//规定了浏览器访问这个方法的方式
    public void get(){
        System.out.println(1000);
    }
}

五、SpringMVC解析get请求的参数

–1,浏览器提交请求数据的方式

1,get:参数拼接  http://localhost:8080/car/insert?id=1&name=张三&age=18

2,post:安全,参数不显示在地址栏上

六、解析restful风格的请求参数

-1,项目结构

        controller,pojo,RunApp

-2,修改网页

<body>
    <a href="http://localhost:8080/car/add/10/BMW/9.9">提交restful数据</a>
</body>

-3,修改pojo类(@Data)

-4,修改Controller

package cn.tedu.controller;

import cn.tedu.pojo.Car;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("car")
@CrossOrigin //解决跨域问题
public class CarController {
    
//优化get提交数据的方式restful:http://localhost:8080/car/add2/10/BMW/9.9 (前端发来的)
    @RequestMapping("add2/{id}/{y}/{x}")//{id}是占位符,表示这个参数的位置 (用占位符接收)
    public void add2(@PathVariable Integer id, //@PathVariabl用来获取{}中间的值
                     @PathVariable String y,
                     @PathVariable Double x){
        System.out.println(id+y+x);
    }
}

-5,改成ajax

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="old/jquery-1.8.3.min.js"></script>
		<script>
			function a(){
				$.ajax({
					type: "get" ,//要使用的请求方式
					url:"http://localhost:8080/car/get" , //要使用的请求路径 
					data: {//要拼接的数据---必须是JSON串
						"id":"10",
						"name":"BMW",
						"price":"9.9"
					},
					success: function(data){ //成功时的方案 
						console.log(data);
						console.log(data.id);
						alert(100);
					}
				})
			}
		</script>
	</head>
	<body>
		<a onclick="a();" href="#">点我获取汽车数据</a>
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值