
Web
可可keketrtr
QQ:564964596
微信:keketrtr
展开
-
ab(http)与abs(https)压测工具
在学习ab工具之前,我们需了解几个关于压力测试的概念 吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。 计算公式:总请求数 / 处理完成这些请求数所花费的时间,即 Request per second = Complet...转载 2020-03-16 11:47:44 · 2735 阅读 · 1 评论 -
使用cookie实现跨域系统单点登录
单点登录作为目前比较流行的服务于企业业务整合的解决方案之一, 使得在多个应用系统中,用户只需要 登录一次 就可以访问所有相互信任的应用系统。实现这一需求的思路和技术各有千秋.一、SSO 的主要实现方式有:1、 共享 cookies基于共享同域的 cookie 是 Web 刚开始阶段时使用的一种方式,它利用浏览同域名之间自动传递 cookies 机制,实现两个域名之间系统转载 2017-06-27 10:39:50 · 5551 阅读 · 0 评论 -
SSO系列之——同域下单点登录系统介绍
Single-Sign-On即单点登录,从一个页面登录,就可以访问其他互信系统,避免用户重新登录,例如登录了百度,则百度云等其他百度旗下其他网站均可免登录访问。在整个业务服务群中起到了辅助、集成的作用。 SSO体系结构客户端调用模块认证中心认证中心是SSO系统的核心,它先验证用户是否有权限访问系统,如果有让用户访问系统资源;如果没有,提供一个登录转载 2017-06-27 10:38:31 · 691 阅读 · 0 评论 -
异步上传文件并获得返回值(完全跨域)
异步上传文件并获得返回值(完全跨域)AJAX可以进行数据的异步请求,但对于文件和跨域问题却束手无策。 Jsonp可以进行跨域数据的异步请求,但同样不能使用于文件。 表单可以进行跨域数据和文件的上传,但却会使页面跳转。 那么如何同时实现“异步”+“跨域”+“文件”+“返回值”这几个特性呢?方法如下: 原理: 将表单通过一个ifra转载 2017-04-27 16:16:36 · 606 阅读 · 0 评论 -
Spring4+WebSocket实例
WebSocket是H5的新特性,用于客户端和服务端的实时消息交互,例如聊天室。有些WEB容器的新版本也对websocket提供了支持。例如,resin4以上版本,tomcat8以上版本。但是如果你不想升级你的Web容器版本,也可以实现,就是spring4以上版本支持websocket。一、先从web.xml配置文件说起,在web.xml里面需要做的事情就是让websocket请求走sprin原创 2017-05-15 16:11:32 · 1588 阅读 · 0 评论 -
Server-Sent Events实现服务端单向推送消息事件
Server-Sent Events(简称SSE)也是H5的新特性,除了IE之外,其他的主流浏览器都支持。这个技术不需要服务端的特别支持,只需要服务端输出的时候设置内容类型为text/event-stream即可。下面是具体的代码实现(我用java实现的)。一、jsp页面pageEncoding="UTF-8"%> Server-Sent Events D原创 2017-05-15 16:26:50 · 2574 阅读 · 0 评论 -
footer固定在网页底部且居中,超过一屏自动撑开(最简单的CSS实现)
html {height: 100%;}body {margin: 0;padding: 0;min-height: 100%;position: relative;}#footer{position: absolute;left: 0;right: 0;bottom: 0;color: #969696;text-align: cente原创 2017-05-03 17:22:15 · 8097 阅读 · 0 评论 -
当你访问网站时,Session会立刻建立吗?
Session 机制:session机制是一种服务器端的机制,用来在无状态的HTTP协议下越过多个请求页面来维持状态和识别用户。当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识。这个标识称为session id,如果已包含一个session id则说明以前已经为此客户端创建过session,转载 2017-05-11 16:53:55 · 1141 阅读 · 1 评论 -
Maven中央仓库无法更新jar包的解决办法
今天在学习Maven时,在pom.xml文件中配置了maven依赖,但是去更新不下来。本地仓库显示.lastUpdated,说明没有下载成功。后来发现中央仓库的地址已经不是http://repo1.maven.org/maven2/了,而是改成了http://search.maven.org。于是我删掉了.lastUpdated文件,然后到settings.xml文件中配置了一个镜像。如下:原创 2015-04-03 23:24:57 · 42499 阅读 · 4 评论 -
chrome格式化json串( jsonView插件安装)
1、打开 https://github.com ;2、搜索 jsonView 链接:https://github.com/search?utf8=%E2%9C%93&q=jsonview;3、选择需要的插件(我是选这个gildas-lormeau/JSONView-for-Chrome);4、点击【Download Zip】,插件下载完成,解压缩到相应目录(D:\Downl转载 2017-09-04 14:33:46 · 3267 阅读 · 0 评论 -
WebSocket开发过程中遇到的几个小问题
问题一:WebSocket连接后一分钟自动断开关闭这是因为websocket长连接有默认的超时时间(1分钟),就是超过一定的时间没有发送任何消息,连接会自动断开。解决办法就是让浏览器每隔一定时间(要小于超时时间)发送一个心跳。代码如下:window.setInterval(function(){ //每隔5秒钟发送一次心跳,避免websocket连接因超时而自动断开var ping =原创 2017-06-05 10:59:41 · 21837 阅读 · 10 评论 -
聊一聊PV和并发、以及计算web服务器的数量的方法
转自http://www.chinaz.com/web/2016/0817/567752.shtml最近和几个朋友,聊到并发和服务器的压力问题。很多朋友,不知道该怎么去计算并发?部署多少台服务器才合适? 所以,今天就来聊一聊PV和并发,还有计算web服务器的数量 的等方法。这些都是自己的想法加上一些网上的总结,如有不对,欢迎拍砖。 几个概念网站流量是指网站的访问量,用来描述转载 2017-11-23 11:13:53 · 367 阅读 · 0 评论 -
远程调用方式 ==> RPC与Http的比较
一.远程调用方式无论是微服务还是分布式服务(都是SOA,都是面向服务编程),都面临着服务间的远程调用。那么服务间的远程调用方式有哪些呢?常见的远程调用方式有以下几种:RPC:Remote Produce Call远程过程调用,类似的还有RMI(Remote Methods Invoke 远程方法调用,是JAVA中的概念,是JAVA十三大技术之一)。自定义数据格式,基于原生TCP通信,速度...转载 2019-09-11 10:05:37 · 242 阅读 · 0 评论 -
Nginx + Tomcat + HTTPS 配置不需要在 Tomcat 上启用 SSL 支持
Nginx SSL+tomcat集群 Nginx tomcat no 不用https最近做了个Web项目, 架构上使用了 Nginx +tomcat 集群, 且全站HTTPS,用nginx 做负载,nginx和tomcat 使用内网http通信,遇到http css,js静态资源被浏览器拦截问题,网上搜索到的很多文章在描述 Nginx + Tomcat 启用 HTTPS 支持的时候,都必须在 Ng...转载 2018-05-25 10:33:30 · 1412 阅读 · 0 评论 -
request.getParameter()、request.getInputStream()和request.getReader()
这是一个异常引发的故事:需要实现一个手机客户端行为分析的需求,手机客户端需要上传一些数据文件。手机客户端通过http协议post方式上传数据文件的时候,我们发现在服务器端无法通过request.getInputStream()获取到相应的数据,调用request.getInputStream()读取数据里头啥都木有。经过各种尝试我们注意到如下的情况:1.在不做任何修改的情况下,调用request....转载 2018-04-20 15:15:07 · 511 阅读 · 1 评论 -
centos7.2 在同一台服务器中,同时运行多个tomcat
tomcat作为许多java项目的运行的环境,常用来跑java项目。而一台服务器只跑一个tomcat服务又太浪费资源了,so,我们可以在同一台服务器上,同时跑多个tomcat服务进程,分别对应不同的端口。来运行多个java项目。下面记录一下,如何进行配置,才能同时启动多个tomcat。1. 配置环境变量, JAVA和TOMCAT的环境 变量。$ vim /etc/profile (修改环境变量)#...转载 2018-02-12 18:05:36 · 493 阅读 · 0 评论 -
nginx实现请求的负载均衡 + keepalived实现nginx的高可用
前言 使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求。这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问及存储压力。通过负载均衡调度服务器,将来自浏览器的访问请求分发到应用服务器集群中的任何一台服务器上,如果有更多的用户,就在集群中加入更转载 2017-12-15 10:52:25 · 254 阅读 · 0 评论 -
Yslow---一款很实用的web性能测试插件
YSlow可以对网站的页面进行分析,并告诉你为了提高网站性能,如何基于某些规则而进行优化。 YSlow可以分析任何网站,并为每一个规则产生一个整体报告,如果页面可以进行优化,则YSlow会列出具体的修改意见。YSlow的安装:1、安装 firebug插件。针对不同的浏览器插件也是不同的,例如 针对chrome.插件名称为:Firebug Lite for Google Chrome转载 2017-11-24 18:23:02 · 1059 阅读 · 1 评论 -
使用Spring JMS收发消息
摘要: ActiveMQ学习笔记(四)http://my.oschina.net/xiaoxishan/blog/380446 中记录了如何使用原生的方式从ActiveMQ中收发消息。可以看出,每次收发消息都要写许多重复的代码,Spring 为我们提供了更为方便的方式,这就是Spring JMS。我们通过一个例子展开讲述。包括队列、主题消息的收发相关的Spring配置、代码、测试。转载 2016-11-17 17:32:39 · 506 阅读 · 0 评论 -
http请求重写为https要注意的问题
通过nginx将http请求重写为https。当http协议的post请求过来时,会返回301状态码,即页面永久性移走(301重定向),这时浏览器会重新用https协议发起请求,问题是这时候的https协议的请求已经不是post方式了,而是变成了get方式。之前post提交的参数也全部丢失!所以,尽量不要在发起post请求时将URL写死为http,而是项目的相对路径,即request.getC原创 2017-04-18 17:34:16 · 2270 阅读 · 0 评论 -
搭建大众点评网CAT监控
项目地址:https://github.com/dianping/cat关于cat的介绍和安装网上很多,这篇文章只是写一下我安装cat的过程。一、可以用git下载这个项目,也可以直接按下图所示下载zip文件,解压缩后是一个多模块的Maven项目。我把解压缩后的文件都放在了E:\cat目录下。命令行窗口进入E:\cat目录,执行mvn clean in原创 2017-03-08 10:45:55 · 14527 阅读 · 4 评论 -
SpringMVC ResponseBody返回字符串带双引号解决
今天在springmvc中返回字符串结果都是带双引号最后经过测试后发现是因为string类型在输出后经过了json编码,所以带了双引号。解决方法:在json转换之前先进行string转换 mvc:annotation-driven> mvc:message-converters> bean class="org.spring转载 2017-03-23 13:54:28 · 18372 阅读 · 2 评论 -
找不到varnishstat、varnishtop、varnishhist等命令
通过源码包安装了varnish之后想执行varnishstat命令,竟然没找到。在网上找到答案:如果是RedHat/CentOS系统,在安装varnish的时候首先要安装以下软件包automakeautoconflibtoolncurses-devellibxsltgroffpcre-develpkgconfig这些安装包直接用yum安装即可。yum原创 2015-11-02 14:44:56 · 838 阅读 · 0 评论 -
CentOS6.5安装Varnish3.0.3
wget http://repo.varnish-cache.org/source/varnish-3.0.3.tar.gztar -zxf varnish-3.0.3.tar.gzcd varnish-3.0.3yum -y install gcc gcc-c++ pcre pcre-devel./configuremakemake install我本来想安装3.0.转载 2015-10-19 17:17:30 · 835 阅读 · 0 评论 -
解决后台传到前台的值是中文乱码的问题
直接说解决办法:在后台这样处理 String msg = URLEncoder.encode("中文", "UTF-8").replace("+","%20")在前台这样处理 decodeURIComponent(msg)其实前台传后台、后台传前台,对于乱码的解决思路是一样的,无非是编码再解码。上面用replace("+","%20")是因为enco原创 2015-09-25 15:50:36 · 12050 阅读 · 1 评论 -
关于jqGrid动态改变列的解决方案
项目中使用了jqGrid列表控件,碰到“通过选择不同的日期段,出现该日期段中每一天的统计数据”这样的需求。因为之前对这个列表控件不是很熟悉,网上的资料显示和列相关的两个属性:colName、colModel都是不可更改的。所以这个办法行不通,也就退而求其次,想通过重新加载的方法,为这两个列重新设置值。但是,这仍然没有成功。中文社区中,也没有很有效的解决方案。后来同事在英文社区,给找到了相应转载 2015-08-10 18:23:12 · 4218 阅读 · 0 评论 -
当html页面乱码需要修改编码时
有些时候打开一个html页面,发现显示中文乱码。于是在浏览器==》工具==》编码中修改默认的编码方式。但每次打开页面都需要修改编码,实在是太麻烦。其实只需要在你的html页面的标签内添加下面一行代码就行了当然如果你的页面需要gb2312才能正常显示,那就把utf-8改成gb2312原创 2015-07-28 17:18:50 · 4292 阅读 · 0 评论 -
利用JS判断客户端是否已安装Adobe Reader软件并提示下载安装
function isAcrobatPluginInstall() { var flag = false; // 如果是firefox浏览器 if (navigator.plugins && navigator.plugins.length) { for (x = 0; x if (navigator.plugins[x].name == 'Adobe Acrobat') flag = true; } } // 下面代码都是处理IE浏览器的情况 else if (window.Activ转载 2010-10-28 16:59:00 · 7349 阅读 · 2 评论 -
Unable to find a value for "tStatus" in object of class org.entity.Passport using operator "."
<br />我在用<c:forEach>标签时遇到的这个问题。我隐隐约约好像在spring里看到过给变量命名时有几点注意事项:<br />1.首字母不要大写且第二个字母也不要大写。<br />2.如果非要首字母大写,第二个字母最好也大写。<br />当然这在Java规范中也没有明确要求,我们一般首字母小写就可以啦。但有些组件却有以上的要求。<br />我在类org.entity.Passport中定义了一个变量tStatus,这个写法违背了第一条。我把它改成tstatus并重新生成setter、getter原创 2010-09-16 13:35:00 · 2009 阅读 · 0 评论 -
ireport特殊字符变成乱码的解决办法
后台传入ireport中的参数是GBK编码,ireport不能正常显示其中的特殊字符例如“·······”,所以要先将GBK格式转成支持更多中文编码的GB2312就可以了。new String("param".getBytes("GBK"),"GB2312")可以在ireport的文本字段表达式里直接写,也可以在后台写。原创 2010-04-01 17:07:00 · 4576 阅读 · 0 评论 -
SpringMvc下载文件
package com.clj.test.down.util; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.springframework.context.annotation.Scope; imp转载 2015-11-25 17:45:22 · 641 阅读 · 0 评论 -
ipvsadm+keepalived安装错误解决
1、环境: rhel 6.0+ipvsadm-1.2.6+keepalived-1.2.52、安装 实现LVS/DR最重要的两个东西是ipvs内核模块和ipvsadm工具包,现在的系统已经包含ip_vs模块 1)检查内核模块,看一下ip_vs 是否被加载 # lsmod |grep ip_vs ip_vs 35009 0 如果没有显示,则原创 2015-12-31 09:48:34 · 9332 阅读 · 0 评论 -
使用apache ab对nginx+varnish+tomcat进行压力测试的结果报告
测试地址:http://172.16.15.111/arch1/toIndex第一次配置的时候,在varnish的配置文件的vcl_recv里我把该地址配置成lookup,这个没问题,但我在vcl_fetch里配置的时候放到了hit_for_pass后面,导致根本不去缓存,这种情况下,访问varnish肯定不如直接访问tomcat,毕竟是绕路了。下面是该错误导致的测试结果:(Requests原创 2015-11-03 16:20:15 · 1880 阅读 · 0 评论 -
springMVC4.2返回日期格式化的json串,同时解决中文乱码
访问SpringMVC项目报这个错误this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.意思大约是输出的内容类型不被接受。在springmvc的配置文件里配置如下内容即可解决。原创 2017-03-19 12:16:06 · 730 阅读 · 0 评论 -
Ajax+Spring MVC实现跨域请求(JSONP)
背景:AJAX向后台(springmvc)发送请求,报错:已阻止交叉源请求:同源策略不允许读取 http://127.0.0.1:8080/DevInfoWeb/getJsonp 上的远程资源。可以将资源移动到相同的域名上或者启用 CORS 来解决这个问题。百度一下,发现是遇到了跨域请求请求问题。搜集资料如下JSONP解释在解释JSONP之前,我们需转载 2016-10-20 08:58:31 · 350 阅读 · 0 评论 -
resin配置https
修改resin.properties文件app.http : 8080app.https : 443web.http : 8080web.https : 443原创 2016-10-20 09:49:39 · 1646 阅读 · 0 评论 -
SpringMVC输出中文乱码
首先springmvc处理ajax请求,直接输出数据而不是跳转页面,可以在方法上加@ResponseBody这时候如果有中文乱码,可以在@RequestMapping中加produces = "text/html;charset=UTF-8"如果还不行,可以在方法里response.setContentType("text/html;charset=UTF-8");原创 2016-09-28 13:47:03 · 454 阅读 · 0 评论 -
浏览器兼容的文件上传
.input-group{ position: relative; display: table; border-collapse: separate; width: 90%;}.input-group-btn{vertical-align: middle;}.btn-file{ position: relative; o原创 2016-03-21 17:00:51 · 449 阅读 · 0 评论 -
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certific
应用程序客户端访问https服务时报错。直接给出解决方案:package http;import java.net.MalformedURLException;import java.net.URL;public class HttpClientTest3 {public static void main(String[] args) throws Malfor原创 2016-02-23 17:26:13 · 13731 阅读 · 1 评论 -
IE浏览器兼容问题
在公共jsp页面添加一下代码:DD_belatedPNG.fix('*');需要引用的文件在附件中,下载下来,把后缀的.jpg去掉后解压即可。原创 2016-03-04 13:39:46 · 461 阅读 · 0 评论