参考书籍:httpClient4.1入门教程
测试环境:
server:apache-tomcat-7.0.30
client:HttpClient 4.2.1
测试结果:
1、HTTP1.1默认打开keep-Alive功能。客户端和服务器端均默认自动开启。
默认情况下:
a、单个连接request次数设置为200时仍然有效
b、超时时间设置20s时仍然有效。
2、setHeader("Keep-Alive", "5"); 超时时间通过此方式设置后未发现效果。
3、client段开启并发链接数在700左右时达到最大,提示无法开启新链接,可做为tomcat最大并发数的参考。
package jre.demo;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
class TimePrinter extends Thread {
int pauseTime;
String name;
int count = 1000;
HttpClient mClient = new DefaultHttpClient();
HttpGet mHttpget = new HttpGet("http://10.100.157.172:8080/HelloTomcat/hello");
public TimePrinter(int x, String n) {
pauseTime = x;
name = n;
}
public void run() {
while (count > 0) {
try {
System.out.print("count is : " + count + "\n");
request();
count --;
Thread.sleep(pauseTime);
} catch (Exception e) {
System.out.println(e);
}
}
}
public void request() {
try {
HttpResponse response;
// mHttpget.setHeader("Keep-Alive", "5");
mHttpget.setHeader("Connection", "Keep-Alive");
response = mClient.execute(mHttpget);
HttpEntity entity = response.getEntity();
System.out.print(response.getStatusLine());
if (entity != null) {
System.out.print("content length is :" + entity.getContentLength() + "\n");
System.out.print("content is :" + EntityUtils.toString(entity) + "\n");
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
}
}
static public void main(String args[]) {
Thread t= new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
TimePrinter tp = new TimePrinter(100, "Guy");
tp.start();
}
}});
t.start();
//
// TimePrinter tp1 = new TimePrinter(100, "Fast Guy");
//
// tp1.start();
//
// TimePrinter tp2 = new TimePrinter(100, "Slow Guy");
//
// tp2.start();
//
// TimePrinter tp3 = new TimePrinter(100, "Slow Guy1");
//
// tp3.start();
//
// TimePrinter tp4 = new TimePrinter(100, "Slow Guy2");
//
// tp4.start();
//
// TimePrinter tp5 = new TimePrinter(100, "Slow Guy3");
//
// tp5.start();
}
}
分享到:
相关推荐
主要介绍了vue中keep-alive,include的缓存问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
今天讲一下网络方面的知识,希望对你的学习提供很好的帮助。
umi-plugin-keep-alive 中文说明 | 此 <KeepAlive> 功能基于 在线示例 umi 多 tabs 示例: 使用方法 安装 npm install umi-plugin-keep-alive --save # or yarn add umi-plugin-keep-alive 从 umi 中导出 KeepAlive...
如果需要频繁切换路由,这个时候就可以考虑用keep-alive了,来达到避免数据的重复请求的目的 keep-alive用来缓存组件,避免多次加载相应的组件,减少性能消耗。 简单一点来说就是从页面A链接到其他页面后回退到页面A...
vue使用keep-alive切换页面,2种方法实现页面保持滚动位置 下载后 先 npm i 安装依赖
将要缓存的组件使用 keep-alive 包裹住即可。 keep-alive优点的介绍: 1. 切换组件时,当前组件不会触发销毁的生命周期钩子。也就是说不会销毁了。 2. 切换回来时,也不会重新创建。(既然都没有被销毁,哪里来的...
1.keep-alive 能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。和 相似, 是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在父组件...
keep-alive用法:动态组件&vue-router keep-alive源码解析 keep-alive组件及其包裹组件的钩子 keep-alive组件及其包裹组件的渲染 二、keep-alive介绍与应用 2.1 keep-alive是什么 keep-alive是一个抽象组件:它...
v-keep-alive-chain vue缓存链控制,Vue前进刷新,后退不刷新(Forward refresh, back not refresh) Installation Use $ npm install v-keep-alive-chain // main.js import { mergeBeforeEachHook, ...
1.keep-alive的作用以及好处 在做电商有关的项目中,当我们第一次进入列表页需要请求一下数据,当我从列表页进入详情页,详情页不缓存也需要请求下数据,然后返回列表页,这时候我们使用keep-alive来缓存组件,防止...
Nextjs-keep-alive 实现,vue中有这个专门的keep-alive插件,但是react没有,更别提nextjs了,这是现成的项目demo。 next9,10,11,12,13,14 及以上都可以用。直接使用或者移植到你的项目,非常方便。集成了发送...
为什么keep-alive可以直接使用 开发者无需注册和引入,直接可以在模板中使用。 跟开发者使用Vue.component自定义的组件不同,keep-alive无需注册,在模板中直接可以使用,如下所示: <keep> <component is=view></...
目前keep-alive可以有效缓存一级,二级的路由菜单,3级以上菜单并不能做到缓存,这里提供一个解决方案: 在cachedViews中手动加上一级菜单和三级菜单之间,缺失的二级菜单的名字,这样二级菜单下的组件就会缓存了 ...
HTTP协议Keep-Alive模式详解
all-keep-alive Features 一个升级版的keep-alive,可以用来缓存所有的页面,包括复用页面。 可以在实现一些多标签页面,打开标签需要缓存页面数据的场景下使用 install npm install all-keep-alive 使用 import { ...
React保持活力 保持组件状态并避免重复渲染的组件。 English | :sparkles: 特征不基于React Router,... 要将React Keep Alive与React应用程序一起使用: npm install --save react-keep-alive :hammer: 用法React Kee
Vue路由器保持活动帮助器 Vue Router Keep-alive Helper是用于管理Vue.js项目中的缓存页面的自动工具,只能使用一行配置代码。 English |为什么需要此帮手: 当使用vue-router开发Vue.js的SPA项目时, <keep>总是...
欢迎对router-keep-alive做出React :waving_hand: :house: :cow_face: :pig_nose: 仅支持哈希路由模式! :backhand_index_pointing_left: React路由器组件,真正保持活动组件 安装 yarn add router-keep-alive # ...
3、当前组件的route-view,外层包裹keep-alive,include用你从仓库里面取出来的数组 4、关闭标签页(也就是后退路由的时候),清空store里的数组 总结:通过动态的设置include(要缓存的组件)的数组,来动态的控制...