文章预览:

  • 一 .SpringMVC入门(重点)
      • 1.需求
      • 2.分析
      • 3.实现
        • 3.1 编写HelloController
        • 3.2 编写SpringMVC的配置文件
        • 3.3 在web.xml里面配置核心控制器
        • 3.4 入门案例加载流程
  • 二. SpringMVC 的请求响应流程 【面试】
        • 1. 入门案例中涉及的组件(了解)
  • 三. RequestMapping注解
        • 1. 使用位置
        • 2. RequestMapping的属性
  • 四 .获取请求参数
        • 1. (name=value&name=value)类型
          • 1.1 . 一个一个参数进行获取
          • 1.2 .封装请求参数
            • **1.pojo类型**
            • **2.Map类型**
            • **3.多个同名参数(例如删除ids=1,ids=2...)**
            • 4.一个参数名对应多个参数值(例如List hobbies)
        • 2. Json类型
            • 2.1 格式
            • 2.2 @RequestBody
            • 2.3 具体使用
  • 五.乱码问题和自定义类型转换器(掌握)
        • 5.1 请求参数乱码处理
        • 5.2 自定义类型转换器(了解)
          • 5.2.1 使用DateTimeFormate注解进行局部类型转换
          • 5.2.2 自定义类型转换器 (了解)
        • 5.3 使用 ServletAPI 对象作为方法参数(了解)
  • 六.RestFul(重点)
        • 6.1 PathVariable【重点】
        • 6.2 RESTFul 风格 URL
        • 6.3 使用说明
        • 6.4 使用实例
  • 七.一些不太重要的注解
        • 7.1. RequestHeader【了解】 ,也有使用场景
          • 7.1.1使用说明
          • 7.1.2使用实例
        • 7.2. CookieValue【了解】
          • 7.2.1使用说明
          • 7.2.2使用实例
        • 7.3. ModelAttribute (了解)
          • 7.3.1使用说明
          • 7.3.2使用实例
        • 7.3. SessionAttributes (了解)
          • 7.3.1使用说明
          • 7.3.2使用实例
  • 八.响应数据和结果视图(了解)
      • 1.目标
      • 2.路径
      • 3.讲解
        • 3.1 字符串
        • 3.2 ModelAndView
      • 4.小结
    • 知识点-请求转发和重定向(了解)
      • 1.目标
      • 2.路径
      • 3.讲解
        • 3.1forward 转发
        • 3.2Redirect 重定向
      • 4.小结
        • 4.1转发和重定向区别
        • 4.2 转发和重定向(返回String)
  • 九.ResponseBody响应 json数据【重点】
      • 1.目标
      • 2.路径
      • 3.讲解
        • 3.1使用说明
        • 3.2使用示例
      • 4.小结
        • 4.1实现步骤
    • 解决DispatcherServlet拦截静态资源的问题(重要)
    • 综合案例

一 .SpringMVC入门(重点)

1.需求

​ 浏览器请求服务器(SpringMVC)里面HelloController,会打印一句话, 然后响应跳转到成功页面

  1. HelloController中的某一个方法,可以接收处理请求
  2. 使用SpringMVC的方式进行跳转

2.分析

  1. 创建Maven工程(war),导入坐标
  2. 创建HelloController类, 添加注解, 定义方法
  3. 创建springmvc.xml(开启包扫描,视图解析器)
  4. 配置web.xml

3.实现

3.1 编写HelloController

@Controller
public class HelloController {@RequestMapping(value="/hello/sayHello")public String sayHello(){System.out.println("HelloController 的 sayHello 方法执行了。。。。 ");return "success";}
}

3.2 编写SpringMVC的配置文件

  • 在classpath目录下创建applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--1. 配置spring创建容器时要扫描的包 --><context:component-scan base-package="com.wjs"></context:component-scan><!--2. 加载mvc注解驱动--><mvc:annotation-driven /><!--3. 配置视图解析器 --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/pages/"></property><property name="suffix" value=".jsp"></property></bean></beans>

3.3 在web.xml里面配置核心控制器

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置初始化参数,用于读取 SpringMVC 的配置文件 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></init-param><!-- 配置 servlet 的对象的创建时间点:应用加载时创建。取值只能是非 0 正整数,表示启动顺序 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

在web.xml中必须要配置加载核心配置文件,因为需要根据类名调用方法,类必须要Ioc,所以要加载核心配置文件

3.4 入门案例加载流程

1、服务器启动,应用被加载。 读取到 web.xml 中的配置创建 spring 容器并且初始化容器中的对象。
2、浏览器发送请求,被 DispatherServlet 捕获,该 Servlet 并不处理请求,而是把请求转发出去。转发的路径是根据请求 URL,匹配@RequestMapping 中的内容。
3、匹配到了后,执行对应方法。该方法有一个返回值。
4、根据方法的返回值,借助 InternalResourceViewResolver 找到对应的结果视图。
5、渲染结果视图,响应浏览器

二. SpringMVC 的请求响应流程 【面试】

在这里插入图片描述

1. 入门案例中涉及的组件(了解)

  • DispatcherServlet:前端控制器**(最重要最关键**)

    ​ 用户请求到达前端控制器,它就相当于 mvc 模式中的 c, dispatcherServlet 是整个流程控制的中心,由
    它调用其它组件处理用户的请求, dispatcherServlet 的存在降低了组件之间的耦合性(符合面向对象设计的"迪米特法则")。

  • HandlerMapping:处理器映射器

    ​ HandlerMapping 负责根据用户请求找到 Handler 即处理器, SpringMVC 提供了不同的映射器实现不同的
    映射方式,例如:配置文件方式,实现接口方式,注解方式等。

  • Handler:处理器 (自己写的Controller类)

    ​ 它就是我们开发中要编写的具体业务控制器。由 DispatcherServlet 把用户请求转发到 Handler。由
    Handler 对具体的用户请求进行处理。

  • HandlAdapter:处理器适配器

    ​ 通过 HandlerAdapter 对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理
    器进行执行。

  • View Resolver:视图解析器:将Controller返回的字符串,解析成具体的视图对象

    ​ View Resolver 负责将处理结果生成 View 视图, View Resolver 首先根据逻辑视图名解析成物理视图名
    即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用户。

  • View:视图

    ​ SpringMVC 框架提供了很多的 View 视图类型的支持,包括:jsp , jstlView、 freemarkerView、 pdfView等。我们最常用的视图就是 jsp。
    ​ 一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

<mvc:annotation-driven> 注解说明 :

​ 在 SpringMVC 的各个组件中,处理器映射器、处理器适配器、视图解析器称为 SpringMVC 的三大组件。使 用 <mvc:annotation-driven> 自 动 加 载 RequestMappingHandlerMapping ( 处 理 映 射 器 )RequestMappingHandlerAdapter ( 处 理 适 配 器 ) , 可 用 在 SpringMVC.xml 配 置 文 件 中 使 用
<mvc:annotation-driven/> 替代注解处理器和适配器的配置。

三. RequestMapping注解

1.RequestMapping注解,用于配置请求的映射路径

1. 使用位置

Controller类上,以及方法上
1.1 类上的RequestMapping注解的值其实就是该模块(类)的标识,
这里就要求每一个Controller类上的RequestMapping的值不同
1.2 同一个类中的各个方法的RequestMapping的值就是该方法的标识,
这里就要求同一个类的每个方法的RequestMapping的值不同

2. RequestMapping的属性

2.1 path或者value,指定请求映射路径
2.2 method,指定该方法支持的请求方式
以下注解代表意思一样,都代表该方法支持Post方式,get等方式同理

@RequestMapping(value = "/say/wei",method = RequestMethod.POST)
@PostMapping("/say/wei")

2.3 其他不重要的属性:params指定请求参数的规则和headers指定请求头的规则

四 .获取请求参数

1. (name=value&name=value)类型

1.1 . 一个一个参数进行获取

在处理请求的方法中,添加和请求参数同名的参数即可
如果请求参数名和方法的参数名不一致,我们可以通过@RequestParam注解,指定获取的请求参数名
在这里插入图片描述

1.2 .封装请求参数
1.pojo类型

在方法中加入一个pojo类型的参数,要求pojo中的属性请求参数名一致,pojo的属性一定要有set方法和无参构造
在这里插入图片描述

2.Map类型

在方法中加入一个map类型的参数,此时map中接收的参数的key就是参数名,value就是参数值,一定要在Map类型的参数前添加RequestParam注解
在这里插入图片描述

3.多个同名参数(例如删除ids=1,ids=2…)

我们可以使用List或者数组进行封装,比如说"批量删除"
1.添加RequestParam注解
2.方法的参数名要和接收的请求参数名一致

4.一个参数名对应多个参数值(例如List hobbies)

如果接收的请求参数是:既有一个name对应一个value,也有一个name对应多个value
比如注册的时候:username、password、nickname、birthday、hobbies那么我们就将请求参数封装到POJO中,一个参数名对应一个参数值的情况我们就使用简单类型,一个参数名对应多个参数值的情况我们就使用List类型
在这里插入图片描述

2. Json类型

2.1 格式

{参数名:参数值,参数名:参数值}json类型的请求参数,vue的post方式提交请求参数

2.2 @RequestBody

json类型的请求参数,例如使用axios发送异步的post请求携带的请求参数,而RequestBody注解的作用就是将json类型的请求参数封装到POJO对象或者Map中

2.3 具体使用

1.JackSon依赖
添加jackson的依赖,因为Springmvc 默认用 MappingJacksonHttpMessageConverter 对 json 数据进行转换,需要添加jackson依赖。

 <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.0</version></dependency>

2.@RequestBody注解

@RequestMapping("/useJson")
public String useJson(@RequestBody User user){//目标: 使用body参数来获取请求体的内容----->从请求体中获取参数System.out.println("请求体的内容是:" + user);return "success";
}

3. 前端可以使用postman发送post请求测试

五.乱码问题和自定义类型转换器(掌握)

4.   在springmvc.xml中开启
<!-- 支持mvc注解驱动 --><mvc:annotation-driven enable-matrix-variables="true" />

5.1 请求参数乱码处理

  • 在web.xml里面配置编码过滤器
    1.post请求方式提交参数时候的中文乱码问题: 使用过滤器(使用spring提供的过滤器),我们需要做的就是在web.xml中配置过滤器
    1.1 在web.xml中配置过滤器的拦截路径
    1.2 在web.xml中通过过滤器的初始化参数配置,告诉过滤器我们想要使用什么编码
<!--配置解决全局乱码的过滤器-->
<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>

5.2 自定义类型转换器(了解)

默认情况下,SpringMVC已经实现一些数据类型自动转换。 内置转换器全都在: org.springframework.core.convert.support 包下 ,如遇特殊类型转换要求,需要我们自己编写自定义类型转换器。

5.2.1 使用DateTimeFormate注解进行局部类型转换

在要进行转换的变量上添加DateTimeFormate注解,指定转换的格式

@Data
public class User implements Serializable {private String username;private String password;private String nickname;@DateTimeFormate("yyyy-MM-dd")private Date birthday;private List<String> hobbies;
}

这种方式有局限性,只能是添加了DateTimeFormate注解的变量能够进行转换,没有添加的变量还是会使用SpringMVC默认的转换规则

5.2.2 自定义类型转换器 (了解)

其实SpringMVC中内置有类型转换器,它可以进行一些基本类型的转换,比如说String转成int等等操作

步骤:

  1. 创建一个类实现Converter 接口
  2. 配置类型转换器

实现:

  • 定义一个类,实现 Converter 接口

    该接口有两个泛型,S:表示接受的类型, T:表示目标类型(需要转的类型)

package com.wjs.convert;import org.springframework.core.convert.converter.Converter;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateConverter implements Converter<String, Date>{@Overridepublic Date convert(String source) {//source就是要进行类型转换的那个字符串,比如"1998-08-03"SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//返回值就是转换成的Datetry {return simpleDateFormat.parse(source);} catch (ParseException e) {e.printStackTrace();throw new RuntimeException("Date转换异常!!!");}}
}
  • 在springmvc.xml里面配置转换器

    spring 配置类型转换器的机制是,将自定义的转换器注册到类型转换服务中去

<!-- 配置类型转换器 -->
<bean id="converterService"class="org.springframework.context.support.ConversionServiceFactoryBean"><!-- 给工厂注入一个新的类型转换器 --><property name="converters"><array><!-- 配置自定义类型转换器 --><bean class="com.wjs.convert.DateConverter"></bean></array></property>
</bean>
  • 在 annotation-driven 标签中引用配置的类型转换服务
<!--配置Spring开启mvc注解-->
<mvc:annotation-driven conversion-service="converterService"></mvc:annotation-driven>

5.3 使用 ServletAPI 对象作为方法参数(了解)

​ SpringMVC 还支持使用原始 ServletAPI 对象作为控制器方法的参数。我们可以把它们直接写在控制的方法参数中使用。 支持原始 ServletAPI 对象有 :

​ HttpServletRequest

​ HttpServletResponse

​ HttpSession

​ java.security.Principal

​ Locale

​ InputStream

​ OutputStream

​ Reader

​ Writer

  • 页面
<a href="account/testServletAPI?name=zs">使用 ServletAPI 对象作为方法参数</a>
  • AccountController.java
@RequestMapping("/useServletApi")
public String userServletApi(HttpSession session, HttpServletRequest request){String header = request.getHeader("User-Agent");System.out.println(header);//向使用session对象存值session.setAttribute("username","奥巴马");return "success";
}

六.RestFul(重点)

6.1 PathVariable【重点】

该注解的作用是,获取RestFul风格的url上的参数

 @RequestMapping("/go/{name}/{id}")public String restfulStyle(@PathVariable String name,@PathVariable String id){System.out.println("name"+name+"id"+id);return  "success";}

6.2 RESTFul 风格 URL

​ REST(英文: Representational State Transfer,简称 REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种 Web 服务交互方案中, REST 相比于 SOAP(Simple Object Access protocol,简单对象访问协议)以及 XML-RPC 更加简单明了,无论是对 URL 的处理还是对 Payload 的编码, REST 都倾向于用更加简单轻量的方法设计和实现。值得注意的是 REST 并没有一个明确的标准,而更像是一种设计的风格。它本身并没有什么实用性,其核心价值在于如何设计出符合 REST 风格的网络接口。

  • restful 的优点

    它结构清晰、符合标准、易于理解、 扩展方便,所以正得到越来越多网站的采用。

  • restful 的特性:

    ​ 资源(Resources) : 网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以用一个 URI(统一资源定位符)指向它,每种资源对应一个特定的 URI 。要获取这个资源,访问它的 URI 就可以,因此 URI 即为每一个资源的独一无二的识别符。表现层(Representation) : 把资源具体呈现出来的形式,叫做它的表现层 (Representation)。比如,文本可以用 txt 格式表现,也可以用 HTML 格式、 XML 格式、 JSON 格式表现,甚至可以采用二进制格式。状态转化(State Transfer) : 每 发出一个请求,就代表了客户端和服务器的一次交互过程。HTTP 协议,是一个无状态协议,即所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段, 让服务器端发生“ 状态转化” (State Transfer)。而这种转化是建立在表现层之上的,所以就是 “ 表现层状态转化” 。具体说,就是 HTTP 协议里面,四个表示操作方式的动词: GET 、 POST 、 PUT、DELETE。它们分别对应四种基本操作: GET 用来获取资源, POST 用来新建资源, PUT 用来更新资源, DELETE 用来删除资源 .

  • 实例

保存传统:http://localhost:8080/user/saveREST:http://localhost:8080/user						    POST方式	执行保存更新传统:http://localhost:8080/user/update?id=1REST:http://localhost:8080/user/1					    PUT方式	执行更新   1代表id删除	传统:http://localhost:8080/user/delete?id=1REST:http://localhost:8080/user/1				       DELETE方式	执行删除 1代表id  查询传统:http://localhost:8080/user/findAllREST:http://localhost:8080/user						  GET方式	查所有传统:http://localhost:8080/user/findById?id=1REST:http://localhost:8080/user/1 					  GET方式	根据id查1个

6.3 使用说明

  • 作用:

    用于绑定 url 中的占位符。 例如:请求 url 中 /delete/{id}, 这个{id}就是 url 占位符。
    url 支持占位符是 spring3.0 之后加入的。是 springmvc 支持 rest 风格 URL 的一个重要标志。

  • 属性:

    value: 用于指定 url 中占位符名称。
    required:是否必须提供占位符。

6.4 使用实例

  • UserController.java
/***  .../findCheckItem?mealId=1&groupId=3&itemId=10* 目标: /套餐id/检查组的id/检查项的id ----> .../1/3/10* @return*/
@RequestMapping(method = RequestMethod.GET,path = "/{mealId}/{groupId}/{itemId}")
public String findCheckItem(@PathVariable("mealId") int mealId,@PathVariable("groupId") int groupId,@PathVariable("itemId") int itemId){System.out.println("根据id查询:mealId=" + mealId + ",groupId=" + groupId + ",itemId=" + itemId);return "success";
}@RequestMapping(method = RequestMethod.DELETE,path = "/{mealId}/{groupId}/{itemId}")
public String deleteCheckItem(@PathVariable("mealId") int mealId,@PathVariable("groupId") int groupId,@PathVariable("itemId") int itemId){System.out.println("根据id删除:mealId=" + mealId + ",groupId=" + groupId + ",itemId=" + itemId);return "success";
}

在这里插入图片描述

七.一些不太重要的注解

7.1. RequestHeader【了解】 ,也有使用场景

7.1.1使用说明
  • 作用:
    用于获取请求消息头。
  • 属性:
    value:提供消息头名称
    required:是否必须有此消息头
7.1.2使用实例
  • UserController.java
/*** 获取userAgent请求头的信息* @return*/
@RequestMapping("/getUserAgent")
public String getUserAgent(@RequestHeader(value="user-Agent") String userAgent){System.out.println("请求头userAgent的信息:" + userAgent);return "success";
}

7.2. CookieValue【了解】

7.2.1使用说明
  • 作用:

    用于把指定 cookie 名称的值传入控制器方法参数。

  • 属性:

    value:指定 cookie 的名称。
    required:是否必须有此 cookie。

7.2.2使用实例
  • UserController.java
/*** 获取名字叫做JSESSIONID的cookie的值* @param cookieValue* @return*/
@RequestMapping("/getCookieValue")
public String getCookieValue(@CookieValue("JSESSIONID") String cookieValue){System.out.println("获取的cookie的值为:" + cookieValue);return "success";
}

7.3. ModelAttribute (了解)

7.3.1使用说明
  • 作用:

    ​ 该注解是 SpringMVC4.3 版本以后新加入的。它可以用于修饰方法和参数。

    ​ 出现在方法上,表示当前方法会在控制器的方法执行之前,先执行。它可以修饰没有返回值的方法,也可以修饰有具体返回值的方法。

  • 属性:
    value:用于获取数据的 key。 key 可以是 POJO 的属性名称,也可以是 map 结构的 key。

  • 应用场景:
    当表单提交数据不是完整的实体类数据时,保证没有提交数据的字段使用数据库对象原来的数据。
    例如:
    ​ 我们在编辑一个用户时,用户有一个创建信息字段,该字段的值是不允许被修改的。在提交表单数
    ​ 据是肯定没有此字段的内容,一旦更新会把该字段内容置为 null,此时就可以使用此注解解决问题。 (例如我们修改学科的时候前端传入的值没有学科的id,但是我们又需要,我们可以提前设置好)

7.3.2使用实例
  • 页面
<form action="user/testModelAttribute" method="post">用户名:<input type="text" name="username"/><br/>密码:<input type="text" name="password"/><br/><input type="submit" value="testModelAttribute"/>
</form>
  • UserController.java(用在方法上面)
@ModelAttribute
public Account getAccountById(int id){System.out.println("根据id查询账户信息:" + id);Account account = new Account();account.setName("张三");account.setMoney(1000.0);return account;
}@RequestMapping("/updateAccount")
public String updateAccount(Account account){System.out.println("要修改的用账户的数据是:" + account);return "success";
}

7.3. SessionAttributes (了解)

7.3.1使用说明
  • 作用:

    用于多次执行(多次请求)控制器方法间的数据共享。(该注解定义在类上)

  • 属性:
    value:用于指定存入的属性名称
    type:用于指定存入的数据类型。

7.3.2使用实例
  • SessionController.java
@Controller
@RequestMapping("/user")
@SessionAttributes(value = {"msg"})
public class UserController {
/*** 调用该方法:往域对象中存放一个msg的值* @return*/
@RequestMapping("/msg")
public String msg(Model model){//SpringMVC中model表示数据模型,其实也就是往域对象中存放数据model.addAttribute("msg","我是域对象中msg信息");return "success";}
}

八.响应数据和结果视图(了解)

1.目标

  • 掌握Controller的返回值使用

2.路径

  1. 字符串
  2. ModelAndView

3.讲解

3.1 字符串

controller 方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。

  • 页面
<a href="response/testReturnString">返回String</a><br>
  • Controller
@Controller
@RequestMapping("/response")
public class ResponseController {//指定逻辑视图名,经过视图解析器解析为 jsp 物理路径: /WEB-INF/pages/success.jsp@RequestMapping("/testReturnString")public String testReturnString(){System.out.println("testReturnString");return "success";}
}

3.2 ModelAndView

ModelAndView 是 SpringMVC 为我们提供的一个对象,该对象也可以用作控制器方法的返回值。

  • 页面
<a href="response/testReturnModelAndView">ModelAndView类型返回值</a><br>
  • Controller
@RequestMapping("testReturnModelAndView")
public ModelAndView testReturnModelAndView() {ModelAndView mv = new ModelAndView();//数据模型和视图//ModelAndView对象既能够绑定视图名字,又能够绑定数据(将数据存储到request域对象)mv.addObject("name","张三");mv.addObject("age",18);mv.setViewName("success");//去找视图解析器,解析viewName,使用请求转发跳转到对应的视图return  mv;
}

4.小结

  1. 返回String. 返回值是逻辑视图, 通过视图解析器解析成物理视图
  2. 返回ModelAndView
    • 设置数据 向request存
    • 设置视图 逻辑视图

知识点-请求转发和重定向(了解)

1.目标

  • 掌握Controller中的转发和重定向使用

2.路径

  1. forward 转发
  2. Redirect 重定向

3.讲解

3.1forward 转发

​ controller 方法在提供了 String 类型的返回值之后,默认就是请求转发。我们也可以加上 forward: 可以转发到页面,也可以转发到其它的controller方法

  • 转发到页面

    ​ 需要注意的是,如果用了 formward: 则路径必须写成实际视图 url,不能写逻辑视图。它相当于“request.getRequestDispatcher(“url”).forward(request,response)”

    //转发到页面@RequestMapping("forwardToPage")public String forwardToPage(){System.out.println("forwardToPage...");//请求转发,不需要视图解析器return "forward:/WEB-INF/pages/success.jsp";}
  • 转发到其它的controller方法

    语法: forward:/类上的RequestMapping/方法上的RequestMapping

    //转发到其它controller@RequestMapping("forwardToOtherController")public String forwardToOtherController(){System.out.println("forwardToOtherController...");return "forward:/response/testReturnModelAndView";}

3.2Redirect 重定向

​ contrller 方法提供了一个 String 类型返回值之后, 它需要在返回值里使用: redirect: 同样可以重定向到页面,也可以重定向到其它controller

  • 重定向到页面

    ​ 它相当于“response.sendRedirect(url)” 。需要注意的是,如果是重定向到 jsp 页面,则 jsp 页面不能写在 WEB-INF 目录中,否则无法找到。

    //重定向到页面@RequestMapping("redirectToPage")public String redirectToPage(){System.out.println("redirectToPage...");return "redirect:/redirect.jsp";}
  • 重定向到其它的controller方法

    语法: redirect:/类上的RequestMapping/方法上的RequestMapping

    //重定向到其它Controller@RequestMapping("redirectToOtherController")public String redirectToOtherController(){System.out.println("redirectToOtherController...");return "redirect:/response/testReturnModelAndView";}

4.小结

4.1转发和重定向区别

  1. 转发是一次请求, 重定向是两次请求
  2. 转发路径不会变化, 重定向的路径会改变
  3. 转发只能转发到内部的资源,重定向可以重定向到内部的(当前项目里面的)也可以是外部的(项目以外的)
  4. 转发可以转发到web-inf里面的资源, 重定向不可以重定向到web-inf里面的资

4.2 转发和重定向(返回String)

  1. 转发到页面
forward:/页面的路径
  1. 转发到Controller
forward:/类上面的RequestMapping/方法上面的RequestMapping
  1. 重定向到页面
redirect:/页面的路径
  1. 重定向到Controller
redirect:/类上面的RequestMapping/方法上面的RequestMapping

九.ResponseBody响应 json数据【重点】

1.目标

  • 掌握SpringMVC与json交互

2.路径

  1. 使用说明
  2. 使用示例

3.讲解

3.1使用说明

​ 该注解用于将 Controller 的方法返回的对象,通过 HttpMessageConverter 接口转换为指定格式的数据如: json,xml 等,通过 Response 响应给客户端

3.2使用示例

需求: 发送Ajax请求, 使用@ResponseBody 注解实现将 controller 方法返回对象转换为 json 响应给客户端

步骤:

  1. 导入jackson坐标
  2. 把什么对象转json, 方法返回值就定义什么类型
  3. 添加@ResponseBody注解

实现:

  • Springmvc 默认用 MappingJacksonHttpMessageConverter 对 json 数据进行转换,需要添加jackson依赖。
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.0</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.0</version>
</dependency>
  • JsonController.java
@RequestMapping("/responseJson")
@ResponseBody
public User responseJson(){//模拟从数据库查询数据User user = new User();user.setUsername("");user.setPassword("");//将user转换成json响应给客户端return user;
}

4.小结

  1. 可以在方法上添加ResponseBody注解
  2. 可以在类上添加ResponseBody注解
  3. 可以将Controller注解改成RestController注解

4.1实现步骤

  1. 添加jackson坐标
  2. 把什么对象转成json, 方法的返回值就是什么类型
  3. 在方法上面或者方法的返回值前面添加@ResponseBody

解决DispatcherServlet拦截静态资源的问题(重要)

方式一(不常用): DispatcherServlet如果配置映射路径为"/"会拦截到所有的资源(除了JSP),导致一个问题就是静态资源(img、css、js)也会被拦截到,从而不能被使用。解决问题就是需要配置静态资源不进行拦截.

语法: <mvc:resources location="/css/" mapping="/css/**"/>, location:webapp目录下的包,mapping:匹配请求路径的格式

在springmvc.xml配置文件添加如下配置

<!-- 设置静态资源不过滤 -->
<mvc:resources location="/css/" mapping="/css/**"/>  <!-- 样式 -->
<mvc:resources location="/images/" mapping="/images/**"/>  <!-- 图片 -->
<mvc:resources location="/js/" mapping="/js/**"/>  <!-- javascript -->

方式二:让DefaultServlet去处理静态资源,DispatcherServlet就不处理静态资源了
<mvc:default-servlet-handler />(推荐)

方式三:改变DispatcherServlet的映射路径,改成"*.do"

综合案例

####步骤

  1. 引入相关依赖(直接copy老师的代码)
    1. spring相关的依赖
      1. spring-webmvc
      2. spring-jdbc
    2. mysql驱动
    3. mybatis
    4. mybatis-spring
    5. lombok
    6. 日志相关的依赖
    7. jackson
  2. 编写包结构、接口、类
  3. 编写mybatis的映射配置文件
  4. 编写springmvc的配置文件
  5. 包扫描
  6. 加载mvc的注解驱动
  7. 整合mybatis
  8. 编写web.xml配置文件,进行DispatcherServlet、CharacterEncodingFilter的配置
  9. 给类添加IOC、DI的注解
  10. 前端代码
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Android开发者:音视频已强势崛起,我们该如何快速入门音视频技术

    **除了5G的到来可以让音视频得到更广范的应用外&#xff0c;音视频技术在未来还有更重要的作用。**事实上&#xff0c;在人类可以识别的信息中&#xff0c;音视频包含的信息是最丰富的&#xff0c;但人类并没有很好的将它们利用起来。 究其原因&#xff0c;是因为这些信息都是…...

    2024/4/14 13:43:37
  2. 中国科技成果转化服务“十四五”规划及2035年远景目标报告2022~2028年

    中国科技成果转化服务“十四五”规划及2035年远景目标报告2022&#xff5e;2028年 第一章 中国科技成果转化服务行业发展背景分析 25 1.1 中国科技成果转化服务行业的界定 25 1.1.1 科技成果的相关概念 25 &#xff08;1&#xff09;科技成果的界定 25 &#xff08;2&#xff…...

    2024/4/18 5:55:12
  3. 利用sqlmap辅助手工注入

    目录预备知识了解Sqlmap实验目的实验环境实验步骤一利用sqlmap选项--sql-query辅助手工注入实验步骤二预备知识 了解Sqlmap sqlmap是一款开源、功能强大的自动化SQL注入工具&#xff0c;支持Access&#xff0c;MySQL&#xff0c;Oracle&#xff0c;SQL Server&#xff0c;DB2…...

    2024/4/21 12:53:36
  4. Paper写作应该注意哪些内容?

    Paper写作一般指几千字级别的小论文或课程论文&#xff0c;通常只有文献综述和对文献的批判分析&#xff0c;可以没有独立的数据和实证&#xff0c;可以没有完整的数据或文献&#xff0c;也可以只针对一些著作或观点谈谈自己的想法和见解&#xff0c;可以是批判性的&#xff0c…...

    2024/5/10 8:09:16
  5. SpringCloudRPC远程调用核心原理:代理模式与RPC客户端实现类

    代理模式与RPC客户端实现类 本节首先介绍客户端RPC远程调用实现类的职责&#xff0c;然后从基础原理讲起&#xff0c;依次介绍代理模式的原理、使用静态代理模式实现RPC客户端类、使用动态代理模式实现RPC客户端类&#xff0c;一步一步地接近Feign RPC的核心原理知识。 客户端…...

    2024/4/27 12:06:01
  6. 美盘休假现货金行情稳定 市场关注下周美联储会议加息信号

    1月17日&#xff0c;美市于马丁路德金纪念日休假一天&#xff0c;在全球经济放缓忧虑与美国国债收益率上升两大因素来回拉锯情况下&#xff0c;日内现货黄金行情稳定、于10美元区间内交投&#xff0c;收盘报1819.42美元/盎司。 针业金融业人士的最新调查显示&#xff0c;由于通…...

    2024/5/9 10:15:06
  7. Python学习笔记_列表

    列表相当于其他语言中的数组 列表中可以存储多个不同的数据类型 列表的创建方式&#xff1a; ①使用中括号[] ②调用内置函数list() lst [hello, world, 98] lst2 list([hello, world, 98]) print(lst) print(lst2) print(lst[1]) # world print(lst[-2]) # world列表的特…...

    2024/5/8 1:57:20
  8. 初识回调函数

    序言 今天就一个知识点&#xff0c;回调函数&#xff0c;我们以例子讲解 回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另一个函数&#xff0c;当这个指针被用来调用其所指向的函数时&#xff0c;我们就说这…...

    2024/5/8 11:02:09
  9. Linux提权-脏牛内核漏洞

    靶机环境下载地址https://www.vulnhub.com/entry/lampiao-1,249/ 环境&#xff1a;攻击机&#xff1a;kali虚拟机192.168.76.132 靶机&#xff1a;ip未知 过程&#xff1a;探针目标-CMS漏洞利用-脚本探针提权漏洞-利用内核提权 靶机密码也没有&#xff0c;ip也没有 探针目标 …...

    2024/5/8 3:32:37
  10. Installed Build Tools revision 32.0.0 is corrupted. Remove and install again using the SDK Manager.

    进入SDK目录/build-tools/32.0.0&#xff0c;讲d8改为dx&#xff0c;进入/build-tools/32.0.0/lib&#xff0c;将d8.jar改为dx.jar&#xff0c;重启&#xff0c;解决...

    2024/5/8 3:55:53
  11. 质量基础设施一站式服务平台建设,NQI线上系统开发

    质量基础设施一站式服务平台建设&#xff0c;NQI线上系统开发 质量基础设施一站式服务平台&#xff0c;整合分散的计量测试、标准研究、认证服务、检验检测等技术资源&#xff0c;构建起全要素、集约化质量服务平台&#xff0c;形成了全链条“一站式”服务新机制&#xff0c;有…...

    2024/5/7 13:59:06
  12. Android Studio 常用快捷键

    快捷键又称为“热键”&#xff0c;多个按键的组合可以实现某些快速操作&#xff0c;例如Window中最常用的CtrlC和CtrlV&#xff0c;熟练使用快捷键可以大大提高开发效率并可以减少某些错误的发生。Android Studio也默认提供了众多快捷键方式供开发者调用&#xff0c;推荐使用An…...

    2024/5/7 22:38:46
  13. 2022年骨传导耳机哪个好、骨传导耳机品牌推荐

    耳机是生活中离不开的一个“伴侣”了&#xff0c;很多伙伴运动、看书、洗澡、跳舞的时候都会有戴耳机听音乐的习惯。现在2021年了&#xff0c;随着各位朋友们的生活体验提高&#xff0c;为了我们的耳朵保护&#xff0c;别再用入耳式耳机了&#xff0c;戴久了不舒服是事小&#…...

    2024/5/7 14:27:45
  14. Docker commit 镜像

    测试Commit镜像&#xff0c;我需要先拉取基础镜像&#xff0c;运行容器&#xff0c;在容器中添加jdk和tomcat。再将这个容器commit为一个新的镜像&#xff0c;再运行新的镜像。 1.拉取一个基础的centos镜像 docker pull centos:72.创建一个容器 docker run -itd --name song…...

    2024/4/15 23:52:06
  15. 洛谷P1056排座椅 贪心思想

    洛谷 P1056 排座椅 基本思路&#xff1a; 用 row[ i ] 表示第 i 行和第 i1 行之间作为通道的话&#xff0c;可以减少多少对交头接耳的学生。 用 col[ i ] 表示第 i 列和第 i1 列之间作为通道的话&#xff0c;可以减少多少对交头接耳的学生。 在输入数据的时候即可确定row[]和c…...

    2024/4/14 13:42:46
  16. leetcode第406题根据身高重建队列

    leetcode第406题根据身高重建队列 贪心&#xff1a; 当有两个维度需要进行处理是&#xff0c;先想如何确立一个维度&#xff0c;然后按照另外一个维度重新排列&#xff0c;需要注意的一点是两个维度一起考虑一定会顾此失彼第一次排序按照身高&#xff0c;一定是按照从小到大排…...

    2024/5/7 20:49:10
  17. 使用Fiddler进行移动端抓包和模拟弱网络测试

    背景 需要再不同网络环境下查看允许情况&#xff0c;根据测试结果优化方案 一、Fiddler连接移动端 1.Fiddler设置 设置Fiddler如下图所示&#xff1a; 设置Fiddler如下图所示&#xff1a; 勾选Decrypt HTTPS traffic,下拉框选择from remote clients only &#xff0c;只获…...

    2024/4/14 13:42:36
  18. [2019watevrCTF]Supercalc wireup

    [2019watevrCTF]Supercalc wireup calc&#xff01;这个界面看着就像ssti 这里直接输入报语法错误&#xff0c;ast是python的模块&#xff0c;set应该是指我们输入的{} 查看header发现有session&#xff0c;应该是flask session伪造 利用脚本&#xff08;https://github.co…...

    2024/5/8 4:21:37
  19. python总结作业

    python内置容器&#xff1a; 容器篇&#xff1a; 变量这种存储单个数据的容器&#xff0c;也会提供存储多个数据容器 线性容器&#xff1a; 数组&#xff08;Array&#xff09;&#xff1a;连续内存 链表&#xff08;List&#xff09;&#xff1a;python list的容器&#x…...

    2024/4/14 13:43:06
  20. 《Linux C++通信架构实战》第2章

    《Linux C通信架构实战》第2章安装前提nginx源码目录编译安装启动和使用Nginx整体结构、进程模型Nginx整体结构Nginx进程模型细说Nginx&#xff0c;轻量级Web服务器&#xff0c;并发处理百万级别的TCP连接&#xff0c;运行稳定&#xff0c;热部署&#xff08;运行时升级&#x…...

    2024/4/14 13:43:47

最新文章

  1. 当导师和学生陷入「隐形冲突」

    ::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验&#xff0c;帮助大家尽早适应研究生生活&#xff0c;尽快了解科研的本质。祝一切顺利&#xff01;—…...

    2024/5/10 10:43:28
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/9 21:23:04
  3. centos后台运行使用nohup命令

    nohup ./my_script.sh & nohup命令运行后如何关闭 nohup 命令用于在用户注销系统后继续运行指定的命令。如果您想关闭使用 nohup 运行的进程&#xff0c;您可以使用 kill 命令。 首先&#xff0c;您需要找到 nohup 运行的进程的进程ID&#xff08;PID&#xff09;。可以使…...

    2024/5/7 16:06:00
  4. 探索进程控制第一弹(进程终止、进程等待)

    文章目录 进程创建初识fork函数fork函数返回值fork常规用法fork调用失败的原因 写时拷贝进程终止进程终止是在做什么&#xff1f;进程终止的情况代码跑完&#xff0c;结果正确/不正确代码异常终止 如何终止 进程等待概述进程等待方法wait方法waitpid 进程创建 初识fork函数 在…...

    2024/5/9 18:30:09
  5. #QT项目实战(天气预报)

    1.IDE&#xff1a;QTCreator 2.实验&#xff1a; 3.记录&#xff1a; &#xff08;1&#xff09;调用API的Url a.调用API获取IP whois.pconline.com.cn/ipJson.jsp?iphttp://whois.pconline.com.cn/ipJson.jsp?ip if(window.IPCallBack) {IPCallBack({"ip":&quo…...

    2024/5/10 0:15:56
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/9 15:10:32
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/9 4:20:59
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/10 10:22:18
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/9 17:11:10
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57