当WEB服务器不支持utf-8编码网页时就会发生这样的错误了。一般这种情况常出现在用NetBox之类的asp本地调试工具运行utf-8格式的网页的时候,因为这类工具一般都不支持utf-8编码,这样凡是含中文字符串的代码就会出错的。
解决办法一般有:
1、改用IIS
2、把网页的编码格式改为gb2312
3、上传到网上真实的虚拟主机空间
总之一句话:代码是没错的,是运行的环境错了
联系方式[微信]:徐多蔚15309695130 感恩有您的陪伴,我们用心服务每一位客户 – 徐多蔚 xuduowei
当WEB服务器不支持utf-8编码网页时就会发生这样的错误了。一般这种情况常出现在用NetBox之类的asp本地调试工具运行utf-8格式的网页的时候,因为这类工具一般都不支持utf-8编码,这样凡是含中文字符串的代码就会出错的。
解决办法一般有:
1、改用IIS
2、把网页的编码格式改为gb2312
3、上传到网上真实的虚拟主机空间
总之一句话:代码是没错的,是运行的环境错了
事务中 return [ ‘code’=>0 ,’msg’=>’错误信息’];
如下代码:
if (!$captchaResult) {
// $this->error(__('Captcha is incorrect'));
return [ 'code'=>0 ,'msg'=>'验证码不正确'];
}
首先恭喜你,当你看到这篇文章的时候,不管你是小白还是大咖,你都将直接获得一个高级技能:轻松上手可实时刷新的酷炫大屏。
制作可视化大屏,一般有这么几种方案:
前者对于大部分人来说门槛较高,而且尤其是大屏需求比较多,比方说要做10个的情况下,亲身试验写代码容易奔溃。如果涉及大量的动态可视化,涉及大数据量,没有底层技术,性能就会大打折扣。而且投到不同尺寸的屏幕,调试起来非常麻烦。
那么有没有一种简单的可视化大屏方案,可以快速的设计样式呈现效果、自适应不同大小的屏幕、而且还可以实时刷新数据?
有,选择后者,直接用数据可视化工具。
市面上能做到直接呈现在LED屏幕的大屏可视化工具并不多,多数需要代码调试,报表工具FineReport和FineBI工具可直接实现,相对来讲FineBI使用更简单,本文也是基于FineBI,来教大家做可实时刷新的数据大屏。
先来看看我们今天即将要教大家做的大屏效果(请接受一波酷炫可视化的冲击!)
1、快速上手学习BI工具
FineBI是一个可视化的自助式BI工具,整个操作就是导数据/连数据库——处理数据(可视化ETL)选择图表——拖数据字段——可视化展现&美化,操作简单上手快。多数情况下,这个工具都是拿来做可视化报表,对接企业大数据平台,做企业数据运营分析用。
2、构建数据模型
掌握了finebi的基础功能:怎么连接数据,怎么趋势,怎么做图表。接下来就到了正式做大屏步骤,先是构建数据模型。
大屏也是有主题的,本质是对一类业务的分析,然后综合展示,比如销售大屏。像这类业务分析一般要用到多张维度表和事实明细表的数据(例如下图中的分公司维度表和合同事实表)。常规操作是将不同业务系统的sql表拼接、宽表拼接,构成一个星型数据模型,需要你有专业的数据仓库技能。那这里化繁为简,可以直接用工具自带的敏捷数据模型去替代上述的工作,原理是自动构建雪花型模型,跨数据源关联。
搭建好上图的销售demo业务包的数据表和关联模型之后,下一步就可以进行正式的销售管理驾驶舱大屏搭建。
3、大屏布局设计
在给大家介绍具***作过程之前先讲解一下通常管理驾驶舱的布局方式。管理驾驶舱往往展现的是一个企业全局的业务,一般分为主要指标和次要指标两个层次,主要指标反映核心业务,次要指标用于进一步阐述分析。所以在制作时给予不一样的侧重,这里推荐几种常见的版式。
上面几个版式不是金科定律,只是通常推荐的主次分布版式,能让信息一目了然。实际项目中,不一定使用主次分布,也可以使用平均分布,或者可以二者结合进行适当调整。比如下图所示,指标很多很多,存在多个层级的,就根据上面所说的基本原则进行一些微调,效果会很好。
4、实际分析制作过程
有了以上的布局设计,每一个模块就单独用一类图表分析一块内容,比如销售分布、签单分布、回款金额分析……整体呈现一个主题(在这里是销售业务)的分析。
那具体如何用工具操作呢?
首先,既然是销售管理驾驶舱,那么我们可以先从领导和高层最为关注的公司签单金额和回款金额入手。对于这样的汇总指标,选择仪表板进行数据展示再合适不过了。选择拖入合同事实表中的合同金额和合同回款表中的回款金额两个指标,样式这里选择圆环仪表盘,同时两个指标的单位都设置成亿,最大刻度输入当前合同金额,2.78亿。这样一来,2.78亿的合同回款,2.25亿的回款金额以及80.87%的总的回款率也就统计出来了,企业的签单金额和回款金额/回款率都一目了然。
其他部分也是一样的原理,篇幅原因不多介绍,核心是要知道展现哪些数据指标。
5、实时刷新功能
如何做出实时刷新的数据大屏,本篇还有一个重点内容就是大屏的实时刷新功能,也是大家问得比较多的。
所谓实时刷新,即你展示出来的酷炫大屏上面的数据将是动态刷新,能够实时反映数据库中的数据。我们的大屏通常连接着数据库,我们打开报表的时候,会读取数据库中的数据,但数据库中的数据可能是动态变化的,如果要读取变化的数据的话,不需要我们重新打开刷新报表,报表中的数据将动态自动刷新。
FineBI实时刷新的底层技术和性能:
实时刷新的实现所依靠的一个重要支撑,是FineBI自带的FineDirect直连引擎。FineDirect直连引擎给出了数据端到应用端的完整解决方案,支持连接企业已有的大数据计算平台,如Hadoop、Kylin、Greenplum、Vertica等,在充分利用平台计算性能的同时,也解决了TB至PB级超大数据量多维分析的难题。
FineDirect是FineBI推出的大数据直连引擎功能模块,用于更好地处理超大数据量的分析要求和数据源实时性的需求。通过FineDirect直连引擎可以直接对接现有的数据源,无论是传统的关系型数据库(Oracle,Sqlserver),还是日益成熟的Hadoop生态圈,Mpp架构的解决方案,都可以直接进行自助取数分析,实现更敏捷的、更及时的决策分析。
FineDirect引擎核心特点
①PB级别数据量多维分析
FineDirect直连引擎给出了数据端到应用端的完整解决方案,支持连接企业已有的大数据计算平台,如Hadoop、Kylin、Greenplum、Vertica等,在充分利用平台计算性能的同时,也解决了TB至PB级超大数据量多维分析的难题。
②实时大数据分析
FineDirect能够连接实时数据进行分析,及时返回分析结果。基于FineDirect的可视化引擎,可以将用户拖拽分析的操作,实时地转化为经过处理的查询语言,实现对企业数据库实时分析的效果。
③双引擎模式灵活搭配
FineBI已有FineIndex引擎(原cube)和新的FineDirect直连引擎可以搭配使用,来满足不同的应用场景。企业可以根据实际需求的不同准备两种类型的数据,通过FineIndex模式配置那些不经常更新、实时性要求不高的数据;通过FineDirect直连引擎配置大数据量且有实时分析需求的数据,双管齐下。
最后,如果对大屏制作感兴趣,可以下载FineBI体验下~
1、说一说Servlet生命周期
servlet的生命周期是初始化(init)、服务(service)、销毁(destroy)
1.初始化(init):当第一次访问Servlet时调用init方法进行初始化,只初始化一次
2.服务(service):方法被调用时调用service方法进行服务,在项目启动期间可以进行多次服务
3.销毁(destory):当服务器关闭时调用destory方法进行销毁。只销毁一次
2、什么是jsp?jsp和Servlet有什么区别?
Servlet是服务器端的程序
JSP是服务器页面程序
JSP本质上就是一个Servlet,在访问jsp时,在服务器端会将jsp先转换成servlet,再将生产的servlet的结果响应给浏览器。
jsp相当于html页面中内嵌Java代码,侧重页面显示;Servlet是中书写Java代码,侧重逻辑控制;
3、Servlet接口中有哪些方法?
1.init(ServletConfig):初始化方法,第一次请求前执行,完成servlet初始化工作
2.service(ServletRequest,ServletResponse):执行方法,一次请求执行一次。
3.destroy():销毁方法,Servlet对象应该从服务中被移除的时候,容器会调用该方法进行销毁操作
4.getServletConfig():获得ServletConfig配置对象,包括初始化参数等。
5.getServletInfo():获得Servlet描述,一般没有用。
4、什么情况下调用doGet()和doPost()?
1、doGet():地址栏url方式访问、超链接访问、以及form表单中的method属性值为get方式访问,则调用doGet()方法
2、doPost():form表单中的method属性值为post方式访问,则调用doPost()方法
5、get请求和post请求有何区别
1. 表现形式:get在url中拼凑请求参数。Post请求参数在请求体中;
2. 安全性:get请求参数追加在路径上,可见不安全,post请求参数在请求体中,一般人不可见,较安全。
3. 数据大小:get提交数据有限,post无限。
6、forward和redirect的区别
1.地址栏是否改变:forward浏览器端网址不会发生变化,redirect浏览器端地址会变成;
2.是否可共享请求参数:forward是转发,属于同一个请求,request域中的数据可以传递;redirect是两次请求,request域中的数据不能传递;
3.是否可站外跳转:forward一般用于网站内部跳转,redirect可在站内跳转,也可跳转到其它网站。
7、JSP九大内置对象
1.request:请求对象
2.response:响应对象
3.session:回话对象
4.pageContext:页面上下文对象
5.application:类型是ServletContext,表示servlet上下文对象,可以在整个web项目中共享资源。
6.out 输出对象
7.page JSP网页本身
8.config Servlet的配置对象
9.exception 异常对象
8、讲解JSP中的四种作用域。
application:在当前web项目中有效
session:在当前会话中有效
request:在当前请求中有效
page:在当前页面有效
1. Controller, RestController的共同点
都是用来表示Spring某个类的是否可以接收HTTP请求
2. Controller, RestController的不同bai点
@Controller标识一个Spring类是Spring MVC controller处理器
@RestController: a convenience annotation that does nothing more than adding the@Controller and@ResponseBody annotations。 @RestController是@Controller和@ResponseBody的结合体,两个标注合并起来的作用。
3、如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
例如:本来应该到success.jsp页面的,则其显示success.
4、如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
5、如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
在组件只能可以通过this.$store.state访问到状态,为什么不能在组件中直接修改state?
1、为了保证数据时单向流动的,只能在store中操作数据,而组件只能够使用状态,不能修改。
mutations中必须是同步操作,而在actions中可以有异步操作,
所有mutations才能操作state,如果actions中能操作state的话,数据会变得难以管理
mutations中的数据变化是可以被vue的开发工具vue-devTools观测到。 actions中的数据变化是不可以被vue的开发工具vue-devTools观测到。
所以需要在mutations中做操作。
2、什么时候应vuex:
多个组件共享数据,中大型项目。
如何在VC运行环境下不出现press any key to continue
(如何在DOS系统中不是立刻结束执行)
方法:在程序末尾加一个getch(); 注意加头文件conio.h
解析:
getch():
所在头文件:conio.h
函数用途:从控制台读取一个字符,但不显示在屏幕上
函数原型:int getch(void)
返回值:读取的字符
例如:
char ch;或int ch;
getch();或ch=getch();
用getch();会等待你按下任意键,再继续执行下面的语句;
用ch=getch();会等待你按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。
#include<stdio.h>
#include<math.h>
void main()
{
printf(“www.itwenda.com”);
getch();
}
指定端口是交换机向所连网段转发配置BPDU的端口, 每个网段有且只能有一个指定端口。 一般情况下, 根桥的每个端口总是指定端口。
根端口是非根交换机去往根桥路径最优的端口。 在一个运行STP协议的交换机上最多只有一个根端口, 但根桥上没有根端口。如果一个端口既不是指定端口也不是根端口, 则此端口为预备端口。 预备端口将被阻塞。
扩展资料:
注意事项:
交换机通电启动后,还不知道网络中有没有别人,所以认为是根桥,并把这个消息通过BPDU通告出去,每台交换机也会收到其他交换机发来的BPDU,比较一下其中的BID,即可选举出根桥。
根桥选出后,其他交换机都可以叫指定桥。指定桥不再主动发出BPDU,只会转发根桥的BPDU。根桥每间隔Hello Time(默认2秒)时间周期性发出BPDU。
STP中选举根端口时需要考虑以下:端口优先级、端口到达根交换机的Cost、端口槽位编号,如G0/0/1。
STP协议利用BPDU中三个Field――路径开销、网桥ID、端口优先级/端口ID来确定到根桥的最佳路径顺序:
路径开销:所有端口开销的综合为路径开销,路径开销低的端口为转发端口。网桥ID:同一个交换机上有两条链路达到根桥(如平行链路),那么最佳路径就由下面的端口优先级或端口ID决定
端口优先级/端口ID:端口优先级范围0~63,缺省值32,具有低优先级的端口将转发数据。如果端口优先级相同,端口ID则是决定因素,低端口ID将转发数据。
扩展资料
STP 端口状态
Disable – 被关闭的端口,Blocking – 初始状态或是被 STP 阻塞状态,该状态停留 Max Age,始终只能收到 BPDU,如果 Max Age 都没有收到 BPDU,就转到 Listening 状态
Listening – 收发 BPDU,以确信在传输数据帧时网络无环路,停留 Forward Delay
Learning – 收发 BPDU,学习 MAC 地址,但不转发数据帧,停留 Forward Delay
Forwarding – 除非不存在环路,并且确定它是到达根交换机的最佳路径,不然永远不会进入该状态。