- axios+springboot 文件上传
Msr 王
代码块
思路:客户端通过表单方式上传服务端使用@RequestParam接收注意事项:服务端接收所有表单数据时,只能使用@RequestParam,不能使用@RequestBody前端要把文件代码:@PutMapping(path="/app/questions/{id}")@Transactionalpublicvoidupdate(@PathVariableLongid,@RequestParamSt
- 使用@RequestBodyAdvice处理客户端的加密请求体
SpringBoot中文社区
业务场景:客户端把json数据进行加密后,编码成Base64字符串,提交给服务器。服务器再进行解密。使用@RequestBodyAdvice,可以在不修改任何Controller代码的前提下,轻松完成。之前写过一篇帖子,使用@ResponseBodyAdvice统一对响应的数据进行处理。演示了,使用ResponseBodyAdvice统一对响应给客户的json进行AES加密。RequestBody
- SpringMVC参数校验(针对`@RequestBody`返回`400`)
Ryan-Miao
springspringmvc
SpringMVC参数校验(针对@RequestBody返回400)前言习惯别人帮忙做事的结果是自己不会做事了。一直以来,spring帮我解决了程序运行中的各种问题,我只要关心我的业务逻辑,设计好我的业务代码,返回正确的结果即可。直到遇到了400。spring返回400的时候通常没有任何错误提示,当然也通常是参数不匹配。这在参数少的情况下还可以一眼看穿,但当参数很大是,排除参数也很麻烦,更何况,既
- springboot 外卖-Day3-1
CHARLIIE
springbootjava后端
进度好难推救命自定义注解注解@Target和@Retention的作用_target注解retention注解-CSDN博客其实都是规定动作AOP三点:切面、切入点、通知SpringBoot中使用Aspect实现切面,超详细_aspect切面-CSDN博客自定义注解中定义了value这个方法参数要有@AutoFill(value=OperationType.INSERT)@RequestBody要
- spring-webmvc @RequestBody 典型用法
张紫娃
注解springwindowsjava
典型用法接收JSON请求体并转换为Java对象@PostMapping("/users")publicStringcreateUser(@RequestBodyUseruser){return"Usercreated:"+user.getName();}//客户端请求示例(JSON):{"name":"Alice","email":"
[email protected]"}//Spring自动使用H
- Vue+Java导入excel文件解析(xlsx格式文件)
青莳吖
vue.jsjavaexcel
Java代码/***导入总表数据*/@PostMapping("/importGeneralTable")publicAjaxResultimportGeneralTable(@RequestBody@RequestParam("files")MultipartFilefiles,@RequestParam("devType")Stringtype){try{//文件转换Filefile=Mult
- HTTP中的GET,POST和PUT
飞天小牛肉
计算机网络httppost
HTTP中定义了以下几种请求方法:1、GET;2、POST;3、PUT;4、DELETE;5、HEAD;6、TRACE;7、OPTIONS;Get和Post的区别Get:请求的数据会附加在URL之后,因此GET请求的数据会暴露在地址栏中Post:POST请求会把请求的数据放置在HTTP请求包的包体(Requestbody)中,因此POST请求的数据不会暴露在地址栏中;POST的安全性比GET的高P
- SpringMVC 常用注解及页面跳转方式(面试)
郭尘帅666
面试职场和发展
1.SpringMVC常用注解@Controller:标识一个类是SpringMVC的控制器,返回视图名(需要视图解析器),即返回一个HTML页面@RequestMapping:映射URL到控制器方法,对HTTP请求进行处理@RequestBody:将请求体转换为Java对象,也就是用java对象去接收请求参数@GetMapping/@PostMapping:特定HTTP方法的@RequestMa
- 计算机网络面试题
Vermouth_00
面试准备计算机网络面试
整理了20道常见的计算机网络面试题。1.GET请求和POST请求的区别GET请求是查询服务器指定的资源,POST请求根据报文主体对请求的资源作出处理。GET请求的参数在URL中传递,参数数据类型为ASCII字符;POST请求参数在requestbody中传递,没有数据类型的限制。GET请求是安全且幂等的,POST请求不安全且不幂等。GET请求会被主动缓存,支持收藏为书签;POST请求不会缓存,不能
- @Builder注释导致@RequestBody的前端json反序列化失败,HTTP400
結城
Javajavaspringboot
项目里发生了一个bug,就是前端请求一个接口时候,报了HTTP400BadRequest通常来说这个问题是前后端的参数没对齐,比如前端传了个String,但后端对应的是Integer。所以我就排查了半天,结果没发现啥错误,有点懵。最后发现问题出在Controller层里,@RequestBodySubmitParam。而SubmitParam中的某一个参数,我给加上了@Data和@Builder,
- API 参数“隐身”之谜:@RequestBody 与 @RequestParam 的正确“站位”与前端妙用!!!
小丁学Java
产品资质管理系统java
API参数“隐身”之谜:@RequestBody与@RequestParam的正确“站位”与前端妙用嘿,各位开发者伙伴们!又到了我们的“踩坑与爬坑”分享时间。这次我们要聊一个在SpringMVC(Model-View-Controller,模型-视图-控制器)后端开发中非常经典,但也容易让人迷惑的问题:前端明明在JSON(JavaScriptObjectNotation,JavaScript对象表
- Spring Boot接收请求时出现 Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported
正在努力Coding
springbootjava后端
因为数据库里面没有设置json格式,所有会报错,可以将@RequestBody删了,或者改为@RequestParam
- http头部注入攻击
Yungoal
信息安全http网络协议网络
1.HTTP请求的组成部分HTTP(HyperTextTransferProtocol)请求由请求行(RequestLine)、请求头(Headers)、空行(BlankLine)和请求体(RequestBody)组成。具体结构如下:1.请求行(RequestLine)请求行是HTTP请求的第一行,包含三个部分:请求方法(HTTPMethod):定义客户端希望执行的操作(如GET、POST、PUT
- Spring的业务层,持久层,控制层的关系
白日依山尽yy
spring数据库java
在Spring框架中,控制层(Controller)、业务层(Service)和持久层(Repository/Mapper)是分层架构的核心组成部分,职责分离明确,通过依赖注入(DI)协作。1.各层职责(1)控制层(Controller)作用:处理HTTP请求和响应,是前后端交互的入口。职责:接收请求参数(如@RequestParam、@RequestBody)。调用业务层处理逻辑。返回JSON数
- JavaWeb学习打卡-Day8-Spring Task、WebSocket、RESTful API、@RequestBody@PathVariable和@RequestParam
hello1114-
学习springwebsocket
SpringTaskSpringTask是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。定位:定时任务框架。作用:定时自动执行某段Java代码。应用场景:信用卡每月还款提醒、售票系统处理超时未支付订单、入职纪念日为用户发送通知······cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间。构成规则:分为6或7个域,由空格分隔开,每个域代表一个含
- Spring MVC HttpMessageConverter 的作用是什么?
冰糖心书房
SpringMVC源码系列springmvcjava
HttpMessageConverter(HTTP消息转换器)是SpringMVC框架中一个非常核心的组件,它的主要作用是在HTTP请求、响应体与Java对象之间进行双向转换。核心作用:读取请求体(RequestBody)到Java对象:当Controller方法的参数使用@RequestBody注解时,SpringMVC会尝试找到一个合适的HttpMessageConverter来读取HTTP请
- 【SpringBoot】开发常见注解
鹏阿鹏
SpringBootJavaSpringspringboot后端java
目录Controller@Controller@RestController@ResponseBody@GetMapping与@PostMapping@RequestMapping@RequestParam@PathVariable@RequestBody@ValidService@Service@Autowired@Resource@Scheduled@AsyncEntity@Data@Json
- python+pytest接口自动化(5)-requests发送post请求
阿里测试君
pytestjsonpython开发语言
【文章末尾给大家留下了大量的福利】简介在HTTP协议中,与get请求把请求参数直接放在url中不同,post请求的请求数据需通过消息主体(requestbody)中传递。且协议中并没有规定post请求的请求数据必须使用什么样的编码方式,所以其请求数据可以有不同的编码方式,服务端通过请求头中的Content-Type字段来获知请求中的消息主体是何种编码方式,再以对应方式对消息主体进行解析。post请
- 若依Vue + Spring Boot:前后端参数传递实践与 @RequestParam、@RequestBody、@ModelAttribute 使用详解
程序员诚哥
若依实战分享vue.jsspringboot前端
一、Vue前端封装请求与拦截器实践为了统一管理请求行为,项目中通常使用Axios进行封装,并配置请求拦截器。以下是常见写法:✅请求封装exportfunctionlistMenu(query){returnrequest({url:'/system/menu/list'
- 关于https请求丢字符串导致收到报文解密失败问题
一只很酸de橘子
javahttps网络协议http
加密方法:AES+两次URLEncoder问题现象:服务端收到的报文中少了类似%25这样的字符,导致解密失败问题分析:用@RequestBody接受也有可能是springboot自动做了一次解码URLDecoder,自己只需要解码一次就好了
- Spring Boot 项目常用注解汇总(全面超详细总结-代码示例)
malloc-l
Java后端相关知识springboot后端java笔记
目录SpringBoot常用注解汇总启动注解@SpringBootApplication@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan二、Controller相关注解@Controller@RestController@RequestBody@RequestMapping@GetMapping和@PostMapping三
- 请求参数、路径参数、查询参数、Spring MVC/FeignClient请求相关注解梳理
Bling_
springmvcjavaspringcloud
目录1请求分类1.1URL参数--查询参数1.2URL参数--路径参数2请求相关注解2.1@RequestParam--查询参数2.2@PathVariable--路径参数
[email protected]@
[email protected]请求参数注解用在FeignClient里使用SpringMVC处理http请求或使用FeignClient进行请求时,会使用到许多
- Spring Boot--@PathVariable、@RequestParam、@RequestBody
努力冲冲
springboot后端java
目录声明!!什么是RESTful?RESTful的基本原则无状态性(Stateless)统一接口(UniformInterface)分层系统(LayeredSystem)缓存(Cacheable)按需代码(CodeonDemand,可选)HTTP协议里面,四个表示操作方式的动词:@PathVariable@PathVariable映射URL绑定的占位符@PathVariable的参数基本用法多个路
- Spring专题
喃寻1
springjava后端
一:SpringMVC常用注解@RequestMapping:用于映射请求路径。@RequestBody:json数据转java对象@ResponseBody:java对象转json@RestController:controller+ResponseBody@RequestParam:指定请求参数的名称(前后台参数名称不一样,或者设置参数默认值)@Resource@Autowired区别@Res
- @RequestBody 注解详解
有诺千金
spring
1.注解出处@RequestBody是Spring框架提供的注解,属于org.springframework.web.bind.annotation包,首次发布于Spring3.0版本。它是SpringMVC处理HTTP请求体的核心注解,用于将请求体中的数据(如JSON、XML)反序列化为后端Java对象,简化复杂数据结构的接收。2.核心功能•数据绑定:自动将HTTP请求体中的内容(如JSON、X
- ASP.NET Core Web API 参数传递方式
[email protected]
asp.net后端.netcore
文章目录前言一、参数传递方式路由参数(RouteParameters)查询字符串参数(QueryStringParameters)请求体参数(RequestBody)表单数据(FormData)请求头参数(HeaderParameters)服务注入(ServiceInjection)二、高级用法与技巧混合参数来源模型绑定(自动绑定)自定义模型绑定三、验证与安全性数据注解验证敏感参数处理文件上传安全
- 浅谈HTTP请求GET与POST方法
为你挡风遮雨
计算机网络httppostget
GET与POST的区别GET请求在URL中传送的参数是有长度限制的,而POST没有。GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。而POST数据不会显示在URL中,是放在Requestbody中。对参数的数据类型,GET只接受ASCII字符,而POST没有限制。GET请求参数会被完整保留在浏览器历史记录里;相反,POST请求参数也不会被浏览器保留。GET请求只能进
- 解决springboot集成minio报错:The following method did not exist: okhttp3.RequestBody.create([BLokhttp3
DN金猿
springboot组件专题springbootjavaspringminio
报错信息:首先是一条警告提醒:2024-07-1816:19:51.789WARN30592---[restartedMain]ConfigServletWebServerApplicationContext:Exceptionencounteredduringcontextinitialization-cancellingrefreshattempt:org.springframework.be
- RESTful如何传递参数
[email protected]
restful后端.netcore
文章目录前言一、REST遵循核心原则二、REST的优点和缺点1.优点2.缺点三、常见参数传递方式1)路径参数(PathParameters)2)查询参数(QueryParameters)3)请求体参数(RequestBody)4)表单参数(FormData)5)请求头参数(Headers)6)混合参数传递7)动态参数(DynamicObject)四、关键技术与调试技巧模型绑定控制复杂模型验证处理数
- @RequestBody注解解释
Fly_hao.belief
java
@ResponseBody是Spring框架中的一个注解,主要用于将方法的返回值直接写入HTTP响应体中,而不是解析为视图进行跳转。以下是详细介绍:作用机制:当一个方法被@ResponseBody注解标记后,Spring会根据请求头中的Accept字段(表示客户端期望接收的数据格式)和配置的消息转换器,将返回值转换为对应的格式(如JSON、XML等)写入响应体。例如,客户端请求时Accept为ap
- 戴尔笔记本win8系统改装win7系统
sophia天雪
win7戴尔改装系统win8
戴尔win8 系统改装win7 系统详述
第一步:使用U盘制作虚拟光驱:
1)下载安装UltraISO:注册码可以在网上搜索。
2)启动UltraISO,点击“文件”—》“打开”按钮,打开已经准备好的ISO镜像文
- BeanUtils.copyProperties使用笔记
bylijinnan
java
BeanUtils.copyProperties VS PropertyUtils.copyProperties
两者最大的区别是:
BeanUtils.copyProperties会进行类型转换,而PropertyUtils.copyProperties不会。
既然进行了类型转换,那BeanUtils.copyProperties的速度比不上PropertyUtils.copyProp
- MyEclipse中文乱码问题
0624chenhong
MyEclipse
一、设置新建常见文件的默认编码格式,也就是文件保存的格式。
在不对MyEclipse进行设置的时候,默认保存文件的编码,一般跟简体中文操作系统(如windows2000,windowsXP)的编码一致,即GBK。
在简体中文系统下,ANSI 编码代表 GBK编码;在日文操作系统下,ANSI 编码代表 JIS 编码。
Window-->Preferences-->General -
- 发送邮件
不懂事的小屁孩
send email
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
- 动画合集
换个号韩国红果果
htmlcss
动画 指一种样式变为另一种样式 keyframes应当始终定义0 100 过程
1 transition 制作鼠标滑过图片时的放大效果
css
.wrap{
width: 340px;height: 340px;
position: absolute;
top: 30%;
left: 20%;
overflow: hidden;
bor
- 网络最常见的攻击方式竟然是SQL注入
蓝儿唯美
sql注入
NTT研究表明,尽管SQL注入(SQLi)型攻击记录详尽且为人熟知,但目前网络应用程序仍然是SQLi攻击的重灾区。
信息安全和风险管理公司NTTCom Security发布的《2015全球智能威胁风险报告》表明,目前黑客攻击网络应用程序方式中最流行的,要数SQLi攻击。报告对去年发生的60亿攻击 行为进行分析,指出SQLi攻击是最常见的网络应用程序攻击方式。全球网络应用程序攻击中,SQLi攻击占
- java笔记2
a-john
java
类的封装:
1,java中,对象就是一个封装体。封装是把对象的属性和服务结合成一个独立的的单位。并尽可能隐藏对象的内部细节(尤其是私有数据)
2,目的:使对象以外的部分不能随意存取对象的内部数据(如属性),从而使软件错误能够局部化,减少差错和排错的难度。
3,简单来说,“隐藏属性、方法或实现细节的过程”称为——封装。
4,封装的特性:
4.1设置
- [Andengine]Error:can't creat bitmap form path “gfx/xxx.xxx”
aijuans
学习Android遇到的错误
最开始遇到这个错误是很早以前了,以前也没注意,只当是一个不理解的bug,因为所有的texture,textureregion都没有问题,但是就是提示错误。
昨天和美工要图片,本来是要背景透明的png格式,可是她却给了我一个jpg的。说明了之后她说没法改,因为没有png这个保存选项。
我就看了一下,和她要了psd的文件,还好我有一点
- 自己写的一个繁体到简体的转换程序
asialee
java转换繁体filter简体
今天调研一个任务,基于java的filter实现繁体到简体的转换,于是写了一个demo,给各位博友奉上,欢迎批评指正。
实现的思路是重载request的调取参数的几个方法,然后做下转换。
- android意图和意图监听器技术
百合不是茶
android显示意图隐式意图意图监听器
Intent是在activity之间传递数据;Intent的传递分为显示传递和隐式传递
显式意图:调用Intent.setComponent() 或 Intent.setClassName() 或 Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
隐式意图;不指明调用的名称,根据设
- spring3中新增的@value注解
bijian1013
javaspring@Value
在spring 3.0中,可以通过使用@value,对一些如xxx.properties文件中的文件,进行键值对的注入,例子如下:
1.首先在applicationContext.xml中加入:
<beans xmlns="http://www.springframework.
- Jboss启用CXF日志
sunjing
logjbossCXF
1. 在standalone.xml配置文件中添加system-properties:
<system-properties> <property name="org.apache.cxf.logging.enabled" value=&
- 【Hadoop三】Centos7_x86_64部署Hadoop集群之编译Hadoop源代码
bit1129
centos
编译必需的软件
Firebugs3.0.0
Maven3.2.3
Ant
JDK1.7.0_67
protobuf-2.5.0
Hadoop 2.5.2源码包
Firebugs3.0.0
http://sourceforge.jp/projects/sfnet_findbug
- struts2验证框架的使用和扩展
白糖_
框架xmlbeanstruts正则表达式
struts2能够对前台提交的表单数据进行输入有效性校验,通常有两种方式:
1、在Action类中通过validatexx方法验证,这种方式很简单,在此不再赘述;
2、通过编写xx-validation.xml文件执行表单验证,当用户提交表单请求后,struts会优先执行xml文件,如果校验不通过是不会让请求访问指定action的。
本文介绍一下struts2通过xml文件进行校验的方法并说
- 记录-感悟
braveCS
感悟
再翻翻以前写的感悟,有时会发现自己很幼稚,也会让自己找回初心。
2015-1-11 1. 能在工作之余学习感兴趣的东西已经很幸福了;
2. 要改变自己,不能这样一直在原来区域,要突破安全区舒适区,才能提高自己,往好的方面发展;
3. 多反省多思考;要会用工具,而不是变成工具的奴隶;
4. 一天内集中一个定长时间段看最新资讯和偏流式博
- 编程之美-数组中最长递增子序列
bylijinnan
编程之美
import java.util.Arrays;
import java.util.Random;
public class LongestAccendingSubSequence {
/**
* 编程之美 数组中最长递增子序列
* 书上的解法容易理解
* 另一方法书上没有提到的是,可以将数组排序(由小到大)得到新的数组,
* 然后求排序后的数组与原数
- 读书笔记5
chengxuyuancsdn
重复提交struts2的token验证
1、重复提交
2、struts2的token验证
3、用response返回xml时的注意
1、重复提交
(1)应用场景
(1-1)点击提交按钮两次。
(1-2)使用浏览器后退按钮重复之前的操作,导致重复提交表单。
(1-3)刷新页面
(1-4)使用浏览器历史记录重复提交表单。
(1-5)浏览器重复的 HTTP 请求。
(2)解决方法
(2-1)禁掉提交按钮
(2-2)
- [时空与探索]全球联合进行第二次费城实验的可能性
comsci
二次世界大战前后,由爱因斯坦参加的一次在海军舰艇上进行的物理学实验 -费城实验
至今给我们大家留下很多迷团.....
关于费城实验的详细过程,大家可以在网络上搜索一下,我这里就不详细描述了
在这里,我的意思是,现在
- easy connect 之 ORA-12154: TNS: 无法解析指定的连接标识符
daizj
oracleORA-12154
用easy connect连接出现“tns无法解析指定的连接标示符”的错误,如下:
C:\Users\Administrator>sqlplus username/
[email protected]:1521/orcl
SQL*Plus: Release 10.2.0.1.0 – Production on 星期一 5月 21 18:16:20 2012
Copyright (c) 198
- 简单排序:归并排序
dieslrae
归并排序
public void mergeSort(int[] array){
int temp = array.length/2;
if(temp == 0){
return;
}
int[] a = new int[temp];
int
- C语言中字符串的\0和空格
dcj3sjt126com
c
\0 为字符串结束符,比如说:
abcd (空格)cdefg;
存入数组时,空格作为一个字符占有一个字节的空间,我们
- 解决Composer国内速度慢的办法
dcj3sjt126com
Composer
用法:
有两种方式启用本镜像服务:
1 将以下配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置)。见“例1”
2 将以下配置信息添加到你的项目的 composer.json 文件中(针对单个项目配置)。见“例2”
为了避免安装包的时候都要执行两次查询,切记要添加禁用 packagist 的设置,如下 1 2 3 4 5
- 高效可伸缩的结果缓存
shuizhaosi888
高效可伸缩的结果缓存
/**
* 要执行的算法,返回结果v
*/
public interface Computable<A, V> {
public V comput(final A arg);
}
/**
* 用于缓存数据
*/
public class Memoizer<A, V> implements Computable<A,
- 三点定位的算法
haoningabc
c算法
三点定位,
已知a,b,c三个顶点的x,y坐标
和三个点都z坐标的距离,la,lb,lc
求z点的坐标
原理就是围绕a,b,c 三个点画圆,三个圆焦点的部分就是所求
但是,由于三个点的距离可能不准,不一定会有结果,
所以是三个圆环的焦点,环的宽度开始为0,没有取到则加1
运行
gcc -lm test.c
test.c代码如下
#include "stdi
- epoll使用详解
jimmee
clinux服务端编程epoll
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linu
- Hibernate对Enum的映射的基本使用方法
linzx0212
enumHibernate
枚举
/**
* 性别枚举
*/
public enum Gender {
MALE(0), FEMALE(1), OTHER(2);
private Gender(int i) {
this.i = i;
}
private int i;
public int getI
- 第10章 高级事件(下)
onestopweb
事件
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- 孙子兵法
roadrunners
孙子兵法
始计第一
孙子曰:
兵者,国之大事,死生之地,存亡之道,不可不察也。
故经之以五事,校之以计,而索其情:一曰道,二曰天,三曰地,四曰将,五
曰法。道者,令民于上同意,可与之死,可与之生,而不危也;天者,阴阳、寒暑
、时制也;地者,远近、险易、广狭、死生也;将者,智、信、仁、勇、严也;法
者,曲制、官道、主用也。凡此五者,将莫不闻,知之者胜,不知之者不胜。故校
之以计,而索其情,曰
- MySQL双向复制
tomcat_oracle
mysql
本文包括:
主机配置
从机配置
建立主-从复制
建立双向复制
背景
按照以下简单的步骤:
参考一下:
在机器A配置主机(192.168.1.30)
在机器B配置从机(192.168.1.29)
我们可以使用下面的步骤来实现这一点
步骤1:机器A设置主机
在主机中打开配置文件 ,
- zoj 3822 Domination(dp)
阿尔萨斯
Mina
题目链接:zoj 3822 Domination
题目大意:给定一个N∗M的棋盘,每次任选一个位置放置一枚棋子,直到每行每列上都至少有一枚棋子,问放置棋子个数的期望。
解题思路:大白书上概率那一张有一道类似的题目,但是因为时间比较久了,还是稍微想了一下。dp[i][j][k]表示i行j列上均有至少一枚棋子,并且消耗k步的概率(k≤i∗j),因为放置在i+1~n上等价与放在i+1行上,同理