框架--SpringWeb
文章目录
- 一、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相关推荐
- <a> 元素相关属性及方法
<a> 元素 <a>元素用来设置链接.除了网页元素的通用接口(Node接口.Element接口.HTMLElement接口),它还继承了HTMLAnchorElement接口和 ...
- 使用maven搭建ssm框架的javaweb项目
目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...
- SSM框架——Spring+SpringMVC+Mybatis的搭建教程
一:概述 SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛. Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP. S ...
- 初学ssm框架的信息
ssm框架,就是Spring ,SpringMVC ,mybstis 的简称,我们是从mybstis 开始学起的,mybatis的作用作为一个连接数据库的框架,可以很好配置连接好数据库, 有mybat ...
- ssm框架mysql配置_ssm框架使用详解配置两个数据源
学习ssm框架已经快一年了,今天把这个框架总结一下. SSM 就是指 spring.SpringMVC和Mybatis.先说一下基本概念(百度上搜的) 1.基本概念 1.1.Spring Spring ...
- idea springmvc_SSM三大框架使用Maven快速搭建整合(SpringMVC+Spring+Mybatis)
本文介绍使用SpringMVC+Spring+MyBatis三大框架使用Maven快速搭建一个demo,实现数据从数据库中查询返回到页面进行展示的过程. 技术选型:SpringMVC+Spring+M ...
- SSM框架整合(IntelliJ IDEA + maven + Spring + SpringMVC + MyBatis)
使用IDEA创建Spring + SpringMVC + MyBatis 框架的Maven的项目. 一. 创建maven项目 1. File -> New Module,进入创建项目窗口. 2. ...
- [转]SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
使用SSM(spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合 ...
- spring核心框架体系结构(jar包依赖)
很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下 ...
最新文章
- Spring Boot + Security + MyBatis + Thymeleaf + Activiti 快速开发平台项目
- mysql的count报错_mysql的floor()报错注入方法详细分析
- flat在java中的含义_java – 在flatingBy中使用flatMap的优雅方法
- 洛谷P1006 传纸条 (棋盘dp)
- 多级菜单栏展开隐藏动画
- php代码编辑器6,优秀的PHP代码编辑器_Blumentals Rapid PHP V13.6 免费版
- linux两个数字正则,正则表达式-Linux readelf显示具有不同数字系...
- Opencv打印显示Mat方法
- nginx日志中$request_time时间异常问题排查
- 传感器 esp8266_如何使用ESP8266微控制器构建烟雾传感器
- codeforces731E Funny Game(DP)
- 2018年python工作好找吗-2018年排名前20的数据科学Python库
- 常见物质相对介电常数(室温,频率低于1kHz)
- 二十六 .ajax登录 认证 验证码(session)
- 影响我此生的几首歌(转载)
- php实现店铺装修,php 实现店铺装修2
- js插件-压缩文件夹zip-dir
- 志翔科技亮相2022数博会 工业大数据技术支撑电力数智化
- 数据规整化:清理、转换、合并、重塑 《用Python进行数据分析》读书笔记第7章
- 如何用MathType编辑集合运算符号
热门文章
- 人脸识别接口_视壮人脸识别机相关接口
- 读《马云创造:颠覆传统的草根创业者传奇》永不消逝的激情!
- 打怪小游戏(暂时只支持主线任务、刷怪和作者商店)
- Java项目:新闻管理系统(java+javaweb+jdbc)
- iView表单空格验证
- 同是软件测试,你年薪百万,我年薪10万,真的差距这么大吗?
- 元旦英语祝福语-恭喜发财(十四)
- VIM快捷键操作(复制/粘贴/删除/查找/跳转/撤销)
- 给大家整理了一篇Python+selenium爬取智联招聘的职位信息
- 武汉php比Java好_关于Java和PHP哪个前景好的比较