文章目录

  • 一、springweb
    • 1.概述
    • 2.springWeb层搭建
    • 3.请求中的地址如何定义
    • 4.如何接收请求中的数据
    • 5.直接使用对象接收
    • 6.post请求中文乱码处理
    • 7.Ajax 返回 JSON
    • 8.跨域问题
    • 9.拦截器
    • 10.总结

一、springweb

1.概述

​SpringWeb就是spring框架中的一个模块,对web层进行封装,使用起来更加方便。

参数接收框架进行封装(方便)

MVC架构:也是后端的架构,是jsp时代的称呼。mvc的概念在前后端分离的时代不存在了

(Cotroller 控制层 servlet 接收 处理 响应)

(Model 数据模型 dao model)

(View 视图 jsp 用于将数据添加到html中 然后进行响应 --现在不学这个模块)

现在的ssm(spring springweb mybatis)

SprngMVC运行流程:
1.用户发起请求
2.DispatcherServlet 负责分发控制的servlet

​ service–>doget–>dopost

(1)DispatcherServlet 是一个总调度,负责控制接收所有的请求,然后调用映射处理器,适配器 ====(ip+port/项目名/处理器地址–》(2))((1–》(4)))

(2)Handler Mapping 映射处理器 解析请求中的处理器地址 看项目中有没有对应的处理器(如果有拦截器,会执行对应的拦截器)(–》(1))

(3)Handler spring中自己封装的处理器 自定义的处理器,可以配置映射地址,以便于spring框架找到自己 ====(最终执行的部分 数据响应 这部分是自己写的,其他的框架帮我们完成)

(4)HandlerAdapter 适配器 封装请求中的参数((4)–》(3))

2.springWeb层搭建

1.导入jar

<!--springweb--><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-webmvc</artifactId>    <version>5.2.2.RELEASE</version></dependency>

2.web.xml中配置 DispatcherServlet

  <!--      配置DispatcherServlet(请求分发servservlet)  负责接收前端所有的请求 -->  <servlet>      <servlet-name>application</servlet-name>      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>     <!-- 配置读取spring配置文件-->      <init-param>          <param-name>contextConfigLocation</param-name>          <param-value>classpath:spring.xml</param-value>      </init-param>      <!-- 控制servlet创建 初始化的时间 -1第一次访问时创建 >=0是服务器启动时创建-->      <load-on-startup>0</load-on-startup>  </servlet><!--  请求映射-->  <servlet-mapping>      <servlet-name>application</servlet-name>      <url-pattern>/</url-pattern>  </servlet-mapping>

3.添加spring配置文件开启 SpringMVC 注解

<!--配置开启使用springweb中的注解--><mvc:annotation-driven></mvc:annotation-driven>

4.创建定义自己的处理器

总结:1.用户发起请求 ip:端口/项目名/类地址/方法地址

​ 所有请求都可以到达DispatcherServlet

2.DispatcherServlet请求分发 核心的SpringWeb底层用的就是一个servlet 接收用户所有的请求,并分发给对应的映射处理器,适配器

3.HandlerMapping 映射处理器,用来解析请求中的地址,有没有对应的处理器类 如果本次请求有对应的拦截器,会执行相应的拦截器

4.HandlerAdapter 处理适配器 封装请求中的参数

5.到达自己创建的处理器,接收参数 处理响应

springweb层的控制器类中如何使用

web 层六字方针: 接收 处理 响应

3.请求中的地址如何定义

@RestController 修饰控制器类

@RequestMapping(path = “/loginCtl”) 可以在类和方法上使用

在类上面使用,整个项目中必须是唯一的 ,不能重复

在方法上定义时,同一个类中地址必须是唯一的

可以使用path/value定义地址

  • @RequestMapping(path = “/test”,method = RequestMethod.POST)
    method定义那种请求可以访问此方法

  • @RequestMapping(path = “/test”) 没有定义请求方式get/post请求都可以访问

  • @GetMapping(path = “/test”) get请求

  • PostMapping(path = “/test”) post请求

4.如何接收请求中的数据

1.使用request对象接收 req.getparameter()

2.直接在参数列表中定义形参接收,还可以帮我们进行类型转换

3.请求中的键名称与形参名一致 直接接收;否则,通过注解标签进行绑定

5.直接使用对象接收

400 请求的数据类型有问题

lombok 自动生成set get方法

6.post请求中文乱码处理

SpringMVC 中已经为我们提供了这个过滤器,只需要在 web.xml 中配置好即可

<!--配置spring框架中提供的编码过滤器-->
<filter>   <filter-name>characterEncodingFilter</filter-name>    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param>   <param-name>encoding</param-name>  <!--设置字符集编码-->   <param-value>UTF-8</param-value></init-param>
</filter>
<filter-mapping>    <filter-name>characterEncodingFilter</filter-name>    <url-pattern>/*</url-pattern>
</filter-mapping>

7.Ajax 返回 JSON

控制中返回结果,由于使用@RestController,里面包含@ResponseBody的注解标签,所以方法返回结果默认是json格式,并将json字符串写入到响应体中。返回一个对象时,必须加入一个转json的第三方组件

<!--
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.3</version>
</dependency>

8.跨域问题

加入依赖 配置过滤器

9.拦截器

过滤器是JavaServlet规范中定义的,是当请求进入servlrt之前,可以对请求进行拦截,可以加入到一些逻辑中。

拦截器是和过滤器有区别的,拦截是spring框架中自己定义的功能,和过滤器位置不同

拦截器只拦截进入到自己控制器中的请求,其余的不拦截

拦截器(HandlerInterceptor)

10.总结

springweb

以前请求都是直接找到servlrt --> service -->doget()/gopost()

1.访问后端:定义了一个servlet映射地址,处理很多事情 通过mark传参,通过参数进行区分
2.在servlet中需要接收前端请求的数据,非常麻烦

springweb对后端三层架构中的web层进行封装.
spring是总管家,集成mybatis数据持久层框架,本身对事物进行管理提供web层的封装
提供了一个DispatcherServlet(请求分发控制器)
接收前端发送的所有请求
然后取调用HandlerMapping(映射处理器),解析请求中的地址(@RequestMapping(path=“/loginCtl”))
接着找到后可以经过对应的拦截器
再去通过HandlerApter(适配器,数据封装)找到自己定义的控制器。
在自己的控制器中处理,响应 直接可以响应json格式的数据

框架--SpringWeb相关推荐

  1. <a> 元素相关属性及方法

    <a> 元素 <a>元素用来设置链接.除了网页元素的通用接口(Node接口.Element接口.HTMLElement接口),它还继承了HTMLAnchorElement接口和 ...

  2. 使用maven搭建ssm框架的javaweb项目

    目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...

  3. SSM框架——Spring+SpringMVC+Mybatis的搭建教程

    一:概述 SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛. Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP. S ...

  4. 初学ssm框架的信息

    ssm框架,就是Spring ,SpringMVC ,mybstis 的简称,我们是从mybstis 开始学起的,mybatis的作用作为一个连接数据库的框架,可以很好配置连接好数据库, 有mybat ...

  5. ssm框架mysql配置_ssm框架使用详解配置两个数据源

    学习ssm框架已经快一年了,今天把这个框架总结一下. SSM 就是指 spring.SpringMVC和Mybatis.先说一下基本概念(百度上搜的) 1.基本概念 1.1.Spring Spring ...

  6. idea springmvc_SSM三大框架使用Maven快速搭建整合(SpringMVC+Spring+Mybatis)

    本文介绍使用SpringMVC+Spring+MyBatis三大框架使用Maven快速搭建一个demo,实现数据从数据库中查询返回到页面进行展示的过程. 技术选型:SpringMVC+Spring+M ...

  7. SSM框架整合(IntelliJ IDEA + maven + Spring + SpringMVC + MyBatis)

    使用IDEA创建Spring + SpringMVC + MyBatis 框架的Maven的项目. 一. 创建maven项目 1. File -> New Module,进入创建项目窗口. 2. ...

  8. [转]SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

    使用SSM(spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合 ...

  9. spring核心框架体系结构(jar包依赖)

    很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下 ...

最新文章

  1. Spring Boot + Security + MyBatis + Thymeleaf + Activiti 快速开发平台项目
  2. mysql的count报错_mysql的floor()报错注入方法详细分析
  3. flat在java中的含义_java – 在flatingBy中使用flatMap的优雅方法
  4. 洛谷P1006 传纸条 (棋盘dp)
  5. 多级菜单栏展开隐藏动画
  6. php代码编辑器6,优秀的PHP代码编辑器_Blumentals Rapid PHP V13.6 免费版
  7. linux两个数字正则,正则表达式-Linux readelf显示具有不同数字系...
  8. Opencv打印显示Mat方法
  9. nginx日志中$request_time时间异常问题排查
  10. 传感器 esp8266_如何使用ESP8266微控制器构建烟雾传感器
  11. codeforces731E Funny Game(DP)
  12. 2018年python工作好找吗-2018年排名前20的数据科学Python库
  13. 常见物质相对介电常数(室温,频率低于1kHz)
  14. 二十六 .ajax登录 认证 验证码(session)
  15. 影响我此生的几首歌(转载)
  16. php实现店铺装修,php 实现店铺装修2
  17. js插件-压缩文件夹zip-dir
  18. 志翔科技亮相2022数博会 工业大数据技术支撑电力数智化
  19. 数据规整化:清理、转换、合并、重塑 《用Python进行数据分析》读书笔记第7章
  20. 如何用MathType编辑集合运算符号

热门文章

  1. 人脸识别接口_视壮人脸识别机相关接口
  2. 读《马云创造:颠覆传统的草根创业者传奇》永不消逝的激情!
  3. 打怪小游戏(暂时只支持主线任务、刷怪和作者商店)
  4. Java项目:新闻管理系统(java+javaweb+jdbc)
  5. iView表单空格验证
  6. 同是软件测试,你年薪百万,我年薪10万,真的差距这么大吗?
  7. 元旦英语祝福语-恭喜发财(十四)
  8. VIM快捷键操作(复制/粘贴/删除/查找/跳转/撤销)
  9. 给大家整理了一篇Python+selenium爬取智联招聘的职位信息
  10. 武汉php比Java好_关于Java和PHP哪个前景好的比较