SpringMVC课程学习笔记-day05
1.Controller接收客户端传的参数
1)参数是基本数据类型/包装类型/String
@RequestMapping("test")
public String test(int age){...}
public String test(long id){...}
public String test(boolean flag){...}
public String test(Long id){...}
public String test(String name){...}
注意参数名字要和客户端传的参数名一致,否则需要使用@RequestParam来指定参数名
2)参数是数组类型
@RequestMapping("test")
public String test(int[] age){...}
public String test(long[] id){...}
public String test(boolean[] flag){...}
public String test(Long[] id){...}
public String test(String[] name){...}
注意客户端传值类似于这样:
name=tom&name=lisi
注意客户端传值还可以使用json的方式
@RequestMapping("/index")
@ResponseBody
public String index(@RequestBody String[] arr){...}
$("#btn").on("click",function(){
var arr = [];
arr.push("hello");
arr.push("world");
$.ajax({
type:"post",
url:"test/index",
contentType:"application/json", //发送数据的数据类型.
data:JSON.stringify(arr), //发送的数据
dataType:"json", //接收的返回数据的类型
success:function(data){
console.log("data = "+data);
}
});
});
3)参数是类类型(例如实体类Uesr、Student等)
@RequestMapping("test")
public String test(User user){...}
注意客户端传值类似于这样:
username=tom&password=123&dob=2017-10-21
注意:
1.username/password/dob必须是User中存在的property
2.日期类型的转换
4)参数是类类型的数组
例如:
@RequestMapping("/test")
public String test(@RequestBody User[] users){...}
$("#btn").on("click",function(){
var arr = [];
var json1 = {username:"tom",password:"123",dob:"1999-10-27"};
var json2 = {username:"zss",password:"456",dob:"2000-10-27"};
arr.push(json1);
arr.push(json2);
$.ajax({
type:"post",
url:"/test",
contentType:"application/json",
data:JSON.stringify(arr),
dataType:"json",
success:function(data){
console.log("data = "+data);
}
});
});
5)List/Set集合
例如1:如果是set集合,直接把List换成Set即可,其他不用改
@RequestMapping("/index")
@ResponseBody
public String index(@RequestBody List<String> list){...}
$("#btn").on("click",function(){
var arr = [];
arr.push("hello");
arr.push("world");
$.ajax({
type:"post",
url:"test/index",
contentType:"application/json",
data:JSON.stringify(arr),
dataType:"json",
success:function(data){
console.log("data = "+data);
}
});
});
例如2:如果是set集合,直接把List换成Set即可,其他不用改
@RequestMapping("/index")
@ResponseBody
public String index(@RequestBody List<User> list){....}
$("#btn").on("click",function(){
var arr = [];
var json1 = {username:"tom",password:"123",dob:"1999-10-27"};
var json2 = {username:"zss",password:"456",dob:"2000-10-27"};
arr.push(json1);
arr.push(json2);
$.ajax({
type:"post",
url:"test/index",
contentType:"application/json",
data:JSON.stringify(arr),
dataType:"json",
success:function(data){
console.log("data = "+data);
}
});
});
6)Map集合
例如:
@RequestMapping("/index")
@ResponseBody
public String index(@RequestBody Map<String,User> map){...}
$("#btn").on("click",function(){
var map = {};
var json1 = {username:"tom",password:"123",dob:"1999-10-27"};
var json2 = {username:"zss",password:"456",dob:"2000-10-27"};
map[json1.username] = json1;
map[json2.username] = json2;
$.ajax({
type:"post",
url:"test/index",
contentType:"application/json",
data:JSON.stringify(map),
dataType:"json",
success:function(data){
console.log("data = "+data);
}
});
});
7)以上任何类型遇到特殊情况下,都可以使用自定义类型转换器:
spring提供的转换器接口:
public interface Converter<S, T> {
T convert(S source);
}
可以让我们把任意类型S转换为T类型,但是转换的代码需要我们来提供给spring
编写完成后需要在spring中注册,例如:
<mvc:annotation-driven conversion-service="formatService"/>
<bean name="formatService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<!-- 自己编写的类型转换器,可以有多个 -->
<bean class="com.briup.web.converter.StringToDateConverter"></bean>
</set>
</property>
</bean>
2.SpringMVC中的跳转
1.因为在Controller中的功能处理方法上可以获得到request和response,所以可以像之前servlet中一样,进行服务器内部跳转和客户端重定向
例如:
@Controller
@RequestMapping("/dispatcher")
public class DispatcherController {
@RequestMapping("/b")
public String testB(){
System.out.println("testB");
return "index";
}
@RequestMapping("/c")
public String testC(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
System.out.println("testC");
//服务器内部跳转到一个页面
//request.getRequestDispatcher("/WEB-INF/jsp/index.jsp").forward(request, response);
//服务器内部跳转到一个功能处理方法
//request.getRequestDispatcher("/dispatcher/b").forward(request, response);
//客户端重定向到另一个功能处理方法
response.sendRedirect(request.getContextPath()+"/dispatcher/b");
return null;
}
}
2.Controller中可以使用字符串表示服务器内部跳转和客户端重定向
例如:
@Controller
@RequestMapping("/dispatcher")
public class DispatcherController {
@RequestMapping("/a")
public String testA(){
System.out.println("testA");
//服务器内部跳转到另一个功能处理方法
//return "forward:/dispatcher/b";
//客户端重定向到另一个功能处理方法
//return "redirect:/dispatcher/b";
//服务器内部跳转到一个页面
return "index";
}
@RequestMapping("/b")
public String testB(){
System.out.println("testB");
return "index";
}
}
3.Controller中使用ModelAndView进行跳转和重定向
@Controller
@RequestMapping("/dispatcher")
public class DispatcherController {
@RequestMapping("/b")
public String testB(){
System.out.println("testB");
return "index";
}
@RequestMapping("/d")
public ModelAndView testD() throws ServletException, IOException{
System.out.println("testD");
//服务器内部跳转到另一个功能处理方法
//ModelAndView mv = new ModelAndView("forward:/dispatcher/b");
//客户端重定向到另一个功能处理方法
//ModelAndView mv = new ModelAndView("redirect:/dispatcher/b");
//服务器内部跳转到一个页面
ModelAndView mv = new ModelAndView("index");
return mv;
}
}
3.SpringMVC中的数据验证
通常在项目中使用较多的是前端校验,比如页面中js校验。对于安全要求较高的建议在服务端同时校验
SpringMVC使用hibernate的实现的校验框架validation,所以需要导入相关依赖的jar包
classmate-1.1.0.jar
hibernate-validator-5.1.3.Final.jar
jboss-logging-3.1.4.GA.jar
validation-api-1.1.0.Final.jar
数据校验之后,如果有错误信息,那么需要使用spring提供的标签库中的标签在页面中显示校验信息
<%@taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>
例如:
valid.jsp页面主要代码:
<sf:form method="post" modelAttribute="user">
<sf:label path="name">用户名:</sf:label>
<sf:input path="name"/>
<sf:errors path="name" cssStyle="color:red"></sf:errors><br>
<sf:label path="age"> 年 龄:</sf:label>
<sf:input path="age"/>
<sf:errors path="age" cssStyle="color:red"></sf:errors><br>
<sf:label path="dob"> 生 日:</sf:label>
<sf:input path="dob"/>
<sf:errors path="dob" cssStyle="color:red"></sf:errors><br>
<input type="submit" value="提交"/>
</sf:form>
注意:
1.需要访问一个Controller再跳转到这个页面,同时需要向模型中添加一个名字叫user的对象(这就是之前说的命令/表单对象),否则跳转到这个页面的时候会报错
2.表单中没有这种action属性值,那么默认把数据提交给当前页面,但是提交方式是post
3.input标签中的path属性的值对应的是表单对象中的属性
4.Controller中映射的url为:/Valid/add , 如果是get方式访问这个url那么就把valid.jsp显示给用户,如果是post方式访问这个url,就表示要提交表单的数据。
5.在Controller中,在需要验证的参数前面加入@Valid注解
6.方法参数列表中,加入BindingResult对象,用来接收验证的错误信息,并根据这个进行不同情况的跳转
7.在被验证的表单对象所属类中,给需要验证的属性上加入指定注解
Controller中代码:
@Controller
@RequestMapping("/valid")
public class ValidController {
@RequestMapping(value="/add", method = {RequestMethod.GET})
public String showAddPage(Model model){
if(!model.containsAttribute("teacher")){
model.addAttribute("teacher", new Teacher());
}
return "valid";
}
@RequestMapping(value="/add",method = {RequestMethod.POST})
public String addTeacher(@Valid Teacher teacher,BindingResult bindingResult){
//如果验证数据中有错误信息,将保存在bindingResult对象中
if(bindingResult.hasErrors()){
List<ObjectError> errorList = bindingResult.getAllErrors();
for(ObjectError error : errorList){
System.out.println(error.getDefaultMessage());
}
//验证不通过在跳到valid页面,因为页面上有显示错误的标签
return "valid";
}
//没有错误则跳到test页面
return "test";
}
}
User类中代码:
public class User {
private long id;
@Size(min=5,max=8)
private String name;
private Integer age;
private Date dob;
get/set
}
常用的数据校验的注解
@Null 值只能为null
@NotNull 值不能为null
@NotEmpty 值不为null且不为空
@NotBlank 值不为null且不为空(先去除首尾空格)
@Pattern 正则表达式验证
@Size 限制长度在x和y之间
@Max 最大值
@Min 最小值
@Future 必须是一个将来的日期(和现在比)
@Past 必须是一个过去的日期(和现在比)
@Email 校验email格式
注意:日期属性上要加@DateTimeFormat(pattern="yyyy-MM-dd"),否则页面传的字符串是不能自动转为为日期的
4.SpringMVC中的异常处理
在SpringMVC中可以把异常统一进行处理,只需加入以下配置:
<!-- Spring提供的默认的异常解析器,也可以自定义 -->
<!-- 可以在jsp目录下新建一个error目录,然后放入显示错误页面 -->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<!-- 定义默认的异常处理页面,当该异常类型的注册时使用 -->
<!-- value="error" 表示跳转的逻辑视图名字 -->
<property name="defaultErrorView" value="error/error"></property>
<!-- 定义异常处理页面用来获取异常信息的变量名,默认名为exception -->
<property name="exceptionAttribute" value="ex"></property>
<!-- 定义需要特殊处理的异常,用简单类名或全限定名作为key,异常页名的逻辑视图名作为value -->
<property name="exceptionMappings">
<props>
<prop key="IOException">error/error_io</prop>
<prop key="java.sql.SQLException">error/error_sql</prop>
</props>
</property>
</bean>
Controller中代码:
@RequestMapping("/test")
public String test()throws Exception{
//int a = 1/0;
//System.out.println(a);
int a = 1;
if(a==1){
throw new IOException("不好了,出错了!");
}
return "test";
}
页面中:
1.如果使用jsp的脚本显示信息
<!-- 因为spring中修改了异常的默认名字,所以这里是ex -->
<% Exception ex = (Exception)request.getAttribute("ex"); %>
<H2>Exception: <%= ex.getMessage()%></H2>
<P/>
<% ex.printStackTrace(new java.io.PrintWriter(out)); %>
2.如果是EL显示错误信息
<div>${ex }</div>
<div>${ex.message }</div>
异常处理也可以使用注解的形式,注意这个@ExceptionHandler是要加在需要异常处理的Controller中(推荐使用上面的那种配置方式)
@Controller
public class XxxxController {
@RequestMapping("/test")
public String test()throws Exception{
// int a = 1/0;
// System.out.println(a);
int a = 1;
if(a==1){
throw new IOException("你说呢?");
}
return "test";
}
@ExceptionHandler(value={IOException.class,SQLException.class})
public String exp(Exception ex,HttpServletRequest request) {
request.setAttribute("ex", ex);
return "error_io";
}
}
5.SpringMVC中上传
使用上传功能需要引入俩个jar包:
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
利用spring中提供的MultipartFile接口实现上传功能
MultipartFile中几个重要的方法:
getName : 获取表单中文件组件的名字(上传框的名字)
getOriginalFilename : 获取上传文件的原名(上传文件名字)
transferTo(File newFile);把上传的文件转存到指定文件中(把上传的文件写入到一个指定的位置)
spring配置文件中加入以下配置:
<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->
<!-- 注意:bean的名字不要改,一定要叫multipartResolver -->
<bean name="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<!-- 指定所上传文件的总大小不能超过指定字节大小 -->
<property name="maxUploadSize" value="20000000"/>
</bean>
jsp页面代码:
<form action="upload/test" method="post" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="file" name="file"><br>
<input type="submit" value="上传">
</form>
Controller中的代码:
@Controller
@RequestMapping("/upload")
public class UploadController {
@RequestMapping("/show")
public String showUploadPage(){
return "upload";
}
@RequestMapping("/test")
public String upload(@RequestParam("file") MultipartFile[] files, HttpServletRequest request) {
if (files != null && files.length > 0) {
for (MultipartFile file : files) {
// 保存文件
saveFile(request, file);
}
}
// 重定向
return "redirect:/upload/show";
}
private void saveFile(HttpServletRequest request, MultipartFile file) {
// 判断文件是否为空
if (!file.isEmpty()) {
try {
//保存的文件路径
//需要的话可以给文件名上加时间戳
String filePath = request.getServletContext().getRealPath("/") + "upload/"
+ file.getOriginalFilename();
File newFile = new File(filePath);
//文件所在目录不存在就创建
if (!newFile.getParentFile().exists()){
newFile.getParentFile().mkdirs();
}
// 转存文件
file.transferTo(newFile);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
注意:在上传文件的同时,还可以接收其他正常的单个的值,例如username、age等,同时也可以把这些单个的值自动封装成User对象
6.SpringMVC中下载
SpringMVC的下只需要自己设置response信息中的各个部分就可以,可以使用之前学习过的ResponseEntity<T>来完成
@RequestMapping("/show")
public String showDownLoadPage(){
return "download";
}
@RequestMapping("/test")
public ResponseEntity<byte[]> test(String fileName,HttpServletRequest request) throws IOException {
//获得下载文件所在路径 可以指向系统中的任意一个有权访问的路径
String downLoadPath = request.getServletContext().getRealPath("/download");
//创建要下载的文件对象
File file = new File(downLoadPath,fileName);
//处理一下要下载的文件名字,解决中文乱码
String downFileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
//创建响应头信息的对象
HttpHeaders headers = new HttpHeaders();
//设置下载的响应头信息,通过浏览器响应正文的内容是用户要下载的,不用浏览器解析
headers.setContentDispositionFormData("attachment", downFileName);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
//通过响应内容、响应头信息、响应状态来构建一个响应对象并返回
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
}
页面代码:
<a href="download/test?fileName=测试.txt">点击下载</a>
7.ajax上传文件
在上面普通上传的例子中进行修改即可
1)spring中配置上传的解析器
<bean name="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<property name="maxUploadSize" value="20000000"/>
</bean>
2)页面中引入jquery以及ajax上传的插件
ajax上传的插件有很多,这里使用的一个插件为:ajaxfileupload.js
注意引入的先后顺序不能乱
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="js/ajaxfileupload.js"></script>
3)jsp页面代码及其对应js代码
<script type="text/javascript">
$(function(){
$("input:button").on("click",function(){
if(!$("input:file").val()){
alert("请选择上传文件");
return;
}
ajaxFileUpload();
});
});
function ajaxFileUpload(){
$.ajaxFileUpload(
{
url: 'ajax_upload/test',
secureuri: false,
fileElementId: 'myfile',
dataType: 'text',
success: function (data){
$("input:file").val("");
$("#sp").html(data).css("color","green");
},
error: function (data){
$("#sp").html(data).css("color","red");
}
}
);
}
</script>
<body>
<!-- ajax上传不需要表单 -->
<!-- 这个上传框的id值一定要写,需要和js中的设置对应 -->
<input id="myfile" type="file" name="myfile"><br>
<input type="button" value="上传"><br>
<span id="sp"></span>
</body>
4)Controller中功能处理函数的代码
@Controller
@RequestMapping("/ajax_upload")
public class AjaxUploadController {
@RequestMapping("/show")
public String show(){
return "ajax_upload";
}
@RequestMapping(value="/test",method=RequestMethod.POST)
@ResponseBody
public String upload(@RequestParam(value="myfile",required=false) MultipartFile[] files, HttpServletRequest request) throws Exception {
if (files != null && files.length > 0) {
for (MultipartFile file : files) {
saveFile(request, file);
}
}
//这里要解决中文乱码问题
return new String("上传成功".getBytes("utf-8"),"iso-8859-1");
}
private void saveFile(HttpServletRequest request, MultipartFile file) {
if (!file.isEmpty()) {
try {
String filePath = request.getServletContext().getRealPath("/") + "upload/"+ file.getOriginalFilename();
File newFile = new File(filePath);
if (!newFile.getParentFile().exists()){
newFile.getParentFile().mkdirs();
}
file.transferTo(newFile);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
8.SSM框架的搭建
注意:
1.SpringMVC和Spring
不需要什么特殊的配置就可以结合
2.MyBatis和Spring
1)需要引入额外的jar包:mybatis-spring-1.3.2.jar
2)配置数据源
3)把MyBatis中的SqlSessionFactory配置给Spring管理
4)在spring中配置需要扫描的MyBatis映射接口所在包的位置
3.Spring中配置SqlSessionFactory
1)可以在MyBatis的mybatis-config.xml中把MyBatis的信息配好,然后再让spring读取这个mybatis-config.xml文件
2)可以删除mybatis-config.xml文件,然后MyBatis的信息都配置到Spring中
4.spring配置文件中的重要信息
可以写在外部的资源文件中,然后再使用spring的标签读出来使用
例如:
<context:property-placeholder location="classpath:db.properties"/>
取值使用的形式:${key}
${driverClassName}
5.事务配置
1)事务的开启和提交需要配置在service层方法的俩端
2)配置事务需要三步
配置事务管理器
使用jdbc的事务管理器
配置事务拦截器
使用tx前缀的标签
spring的aop配置(把事务管理织入到指定的切入点)
使用aop前缀的标签
6.日志配置
1)使用之前MyBatis的日志文件即可
2)在log4j.properties文件中可以屏蔽掉spring日志(输出太多了...)
#ALL DEBUG INFO WARM ERROR FATAL OFF
log4j.logger.org.springframework = ERROR
7.web.xml文件配置
1)配置spring读取的配置文件
2)配置编码过滤
3)配置前端控制器
8.SpringMVC的容器和Spring核心容器的关系
1)使用xml或者注解进行配置,springMVC或者spring读取配置信息之后,会把配置的对象(就是spring中的bean)放到容器中进行管理
2)服务器启动的时候,SpirngMVC中的前端控制器会读取配置文件,把相关配置的对象放到自己产生的容器中进行管理(需要在web.xml配置)
3)服务器启动的时候spring也会读取配置文件,把相关配置的对象放到自己产生的容器中进行管理(需要在web.xml配置)
4)SpirngMVC创建容器中所管理的Bean一般是只对SpringMVC有效,如Controller、HandlerMapping、HandlerAdapter等等(因为它一般只读取SpringMVC的配置文件)
5)Spirng创建容器中所管理的Bean一般是对于整个应用程序共享的,一般如DAO层、Service层Bean。(因为它一般只读取service层和dao层的配置文件)
6)SpirngMVC创建的容器 【继承了】 Spirng创建的容器
7)子容器可以从父容器中拿出bean来使用,但是父容器不能从子容器中拿bean来使用。所以在Controller中可以注入service层的实现类对象,Controller在SpringMVC创建的容器中,service是在Spring创建的容器中。
9.具体实例参照SSM项目
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Java单例设计模式
文章目录1、单例设计模式介绍2、单例设计模式八种方式2.1、饿汉式(静态常量)步骤代码实现优缺点说明2.2、饿汉式(静态代码块)代码实现优缺点说明2.3、懒汉式(线程不安全)代码实现优缺点说明2.4、懒汉式(线程安全,同步方法)代码实现优缺点说明2.5、懒汉式(线程安全,同步代…...
2024/4/26 9:56:50 - iTunes C# Mobile Device API代码-立哥开发
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MobileDevice.Enumerates { public enum DeviceInfoKey {[Description("激活公钥")]ActivationPub…...
2024/4/15 3:14:47 - 4购物车
Shopping Cart店铺:麦象旗舰店电脑桌下键盘托架54抽屉滑轨到拖地60配件托盘70静音颜色分类:圆角70*27加强吊柜颜色备注¥89.36¥50.13-1+¥50.13移入收藏夹删除<div class="second-line"><div class="head-line"><input type="check…...
2024/4/17 11:46:27 - 【庖丁解牛】从零实现RetinaNet(六):RetinaNet的训练与测试
文章目录RetinaNet的训练在COCO数据集上测试RetinaNet在VOC数据集上测试RetinaNet完整训练与测试代码模型复现情况评估 所有代码已上传到本人github repository:https://github.com/zgcr/pytorch-ImageNet-CIFAR-COCO-VOC-training 如果觉得有用,请点个star哟! 下列代码均在…...
2024/4/15 3:14:43 - 现在统一回答一下经常被问及的一个问题:java中比较重要的章节和内容有哪些、便于准备面试笔试。
公司新人培训过程中,我们还是偏重于 1.基础语法的夯实、方法的有效定义、方法重载及重写的规范、 2.多态的理解和应用、不同接口的实现(函数接口对应的Lambda表达式应用)、 3.注解的使用、自定义、 4.泛型的理解、定义、及使用、 5.静态static的理解与使用;这些都是基础的东…...
2024/4/16 15:24:40 - C++11新特性之右值引用
C++11新特性之右值引用Rvalue references (右值引用) Rvalue references (右值引用) 左值:可以出现在operator=左边的 (左值与右值的根本区别在于能否获取内存地址,能取地址的即为左值,不能取地址的即为右值) 右值:只能出现在operator=右边的 通常临时对象(将亡值)、字…...
2024/4/27 5:22:42 - ugui获取UI物体的长和宽
宽:baigameObject.GetComponent().rect.width 高:gameObject.GetComponent().rect.height GetComponent().sizeDelta 或者GetComponent().rect.size 延展: UI(像素)坐标:RectTransform.position.x (0,0)表示最左下角的点...
2024/4/15 3:14:40 - 第 194 场力扣周赛题解
气死了啊,最后一题下标打错了,发现后已经来不及了。。。。。不过内推场能打到这个名次也还行。可是真的好可惜。5440. 数组异或操作思路:按照题目要求直接异或就okclass Solution {public int xorOperation(int n, int start) {int ans=0;for(int i=0;i<n;i++)ans^=start…...
2024/4/15 3:14:38 - 力扣周赛 5442. 避免洪水泛滥(min型线段树)
你的国家有无数个湖泊,所有湖泊一开始都是空的。当第 n 个湖泊下雨的时候,如果第 n 个湖泊是空的,那么它就会装满水,否则这个湖泊会发生洪水。你的目标是避免任意一个湖泊发生洪水。给你一个整数数组 rains ,其中:rains[i] > 0 表示第 i 天时,第 rains[i] 个湖泊会下…...
2024/4/24 14:24:58 - Django(part27)--聚合查询
学习笔记,仅供参考文章目录数据库的操作(CRUD操作)聚合查询不分组聚合分组聚合数据库的操作(CRUD操作)聚合查询聚合查询是指对某个数据表中的某个字段的数据计算其统计量,比如,求出bookstore_book数据表中书的平均价格,查询所有书的总个数等等等。不分组聚合不带分组的聚合…...
2024/4/24 14:24:57 - 机器学习算法准备提升——聚类算法
聚类是一种无标签数据输入的算法。 每个聚类算法都有两个变量:类别:调用fit方法在训练集上去学习聚合成多个类别; 给定的训练数据一、K-Means KMeans算法通过试着在n组方差相等的样本中分类样本来聚类数据,最小化评价标准。这个算法需要指明聚类的个数。它可以很好的拓展到…...
2024/4/24 14:24:57 - RabbitMQ的介绍,安装,使用
RabbitMQRabbitMQ1.MQ简介2.使用场景2.1.流量削峰流量削峰的由来2.2 日志处理2.3 应用解耦2.4 异步处理3. RabbitMQ简介4. AMQP 协议5. Windows环境下单节点安装下载安装包安装erlang:安装rabbitmq6.RabbitMQ 管理界面使用添加用户添加Virtual Host授权:7.RabbitMQ 消息种类7…...
2024/4/24 14:24:55 - 操作系统实验——磁盘调度算法(FIFS SSTF SCAN)
操作系统实验——磁盘调度算法(FIFS SSTF SCAN) 一、实验目的 1、了解磁盘调度的策略和原理; 2、理解和掌握磁盘调度算法——先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、电梯扫描算法(SCAN)。 二、实验内容 1、模拟先来先服务法(First-Come, First-Served,…...
2024/4/24 14:24:54 - 贝叶斯网络之父Judea Pearl:要建立真正的人工智能,少不了因果推理
贝叶斯网络之父Judea Pearl:要建立真正的人工智能,少不了因果推理 2011年图灵奖得主,贝叶斯网络之父Judea Pearl认为现在人工智能的发展进入的新的瓶颈期,各种新的成果不过本质上不过是重复简单的“曲线拟合”工作。Pearl 认为人们应该更关注人工智能中的因果(Cause and E…...
2024/4/24 14:24:53 - 关于百度七日打卡——强化学习的感悟
1.刚开始第一个作业搭建环境PARL: PARL是一个算法库,是对Agent的框架抽象。简单来说就是在一台机器上调用pip install parl,就可以启动集群并行计算,使运算加速。 PS:心里窃喜,对于我们小白,非常友好,因为之前有机器学习的基础,又经常~~白嫖~~ 参加aistudio的活动,所以…...
2024/4/24 14:24:53 - leetcode-6_递归和回溯
算法总结递归和回溯中的常见问题1.树形问题2.什么是回溯3.排列问题4.组合问题5.回溯法解决问题的优化6.二维平面上的回朔法7.foodfill算法8.回朔法是人工智能的基础 递归和回溯中的常见问题 1.树形问题 Leetcode相关题目: 17 (1) 电话号码的字母组合。(LeetCode:17) 2.什…...
2024/4/24 14:24:51 - contos 文件操作
contos 操作 xshell脚本 入门到放弃,边操作边记录 查看文件夹及文件: ls创建文件夹: mkdir 文件夹名进入文件夹:cd 文件夹名返回上一层: cd..创建文件: touch 文件名.后缀编辑文件:vi 文件名.后缀保存:按esc键,输入 :wq:w 保存文件但不退出 :w file 将修改另外保存…...
2024/4/24 14:24:50 - Chomp 游戏与偏序关系
Chomp 游戏与偏序关系一、游戏介绍Chomp是一个双人游戏,有 m X n 块曲奇饼排成一个矩形格状,称作棋盘。两个玩家轮流自选吃掉一块还剩下的曲奇饼,而且要把它右边和下面所有的曲奇饼都被取走(如果存在)。如果不吃左上角的那一块曲奇饼(位置记为(1, 1))就没有其他选择的玩…...
2024/4/24 14:24:49 - 永磁直流无刷电机设计之路(四)——仿真计算分析
永磁直流无刷电机设计之路(四)——仿真计算分析 在数学中,有限元法(FEM,Finite Element Method)是一种为求解偏微分方程边值问题近似解的数值技术。求解时对整个问题区域进行分解,每个子区域都成为简单的部分,这种简单部分就称作有限元。 它通过变分方法,使得误差函数…...
2024/4/26 23:59:55 - 模型压缩95%,MIT韩松等人提出新型Lite Transformer
文章目录长短距离注意力(LSRA)实验设置架构实验结果机器翻译与自动化设计模型的对比文本摘要 转载来源:https://zhuanlan.zhihu.com/p/146448576Transformer 的高性能依赖于极高的算力,这让移动端 NLP 严重受限。在不久之前的 ICLR 2020 论文中,MIT 与上海交大的研究人员提…...
2024/4/24 14:24:47
最新文章
- 怎么提高职场辩论的口才能力的方法
提高职场辩论的口才能力是一个综合而复杂的过程,涉及知识积累、技巧学习、实践锻炼等多个方面。以下是关于如何提高职场辩论口才能力的详细分析和建议。 一、引言 在职场中,良好的口才能力对于个人职业发展具有重要意义。优秀的口才不仅能够提升个人的…...
2024/4/27 14:16:28 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - axios拦截器:每次请求自动带上 token
Step 1:创建Axios实例并添加拦截器 在你的Vue项目中,一般我们会先导入axios,然后创建一个axios实例。这样做是为了方便统一管理和配置。 import axios from axios; // 引入axios// 创建一个axios实例 const service axios.create();// 添加请…...
2024/4/26 15:50:36 - 基于AI智能识别技术的智慧展览馆视频监管方案设计
一、建设背景 随着科技的不断进步和社会安全需求的日益增长,展览馆作为展示文化、艺术和科技成果的重要场所,其安全监控系统的智能化升级已成为当务之急。为此,旭帆科技(TSINGSEE青犀)基于视频智能分析技术推出了展览…...
2024/4/26 15:50:29 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/26 18:09:39 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/26 20:12:18 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/26 23:05:52 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/27 4:00:35 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/25 18:39:22 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/25 18:39:22 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/26 21:56:58 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/27 9:01:45 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/26 16:00:35 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/25 18:39:16 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/26 22:01:59 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/25 2:10:52 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/25 18:39:00 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/26 19:46:12 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/27 11:43:08 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/27 8:32:30 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) 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 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在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