- 浏览: 666980 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
bboss mvc控制器实现etag和last modify两种http缓存机制(本文参考《聊聊高并发系统之HTTP缓存》编写)
1.缓存控制器实现
缓存控制器的类文件:
HttpCache.java
实现etag和last modify两种http缓存机制方法分别如下:
last modify
etag
运行和访问实例
启动示例应用之前,必须先安装好gradle并配置好gradle环境变量,至少gradle 3.0+ (Complete distribution)版本
从github下载源码工程:
git clone -b master --depth 1 https://github.com/bbossgroups/bestpractice.git
切换到在命令行,进入源码目录
cd bestpractice
执行gradle指令
gradle :mvc:tomcatStart
启动成功后访问示例:
etag
http://localhost:8080/mvc/caches/etgcache.page
Last-Modified
http://localhost:8080/mvc/caches/cache.page?millis=1473172518546
1.缓存控制器实现
缓存控制器的类文件:
HttpCache.java
实现etag和last modify两种http缓存机制方法分别如下:
last modify
public ResponseEntity<String> cache( //为了方便测试,此处传入文档最后修改时间 @RequestParam(name="millis") long lastModifiedMillis, //浏览器验证文档内容是否修改时传入的Last-Modified If-Modified-Since @RequestHeader (name = "If-Modified-Since", required = false,dateformat="EEE, d MMM yyyy HH:mm:ss.SSS 'GMT'",locale = "en_US") Date ifModifiedSince) { //当前系统时间 long now = System.currentTimeMillis(); //文档可以在浏览器端/proxy上缓存多久 long maxAge = 20; //判断内容是否修改了,此处使用等值判断 if(ifModifiedSince != null && ifModifiedSince.getTime() == lastModifiedMillis) { return new ResponseEntity<String>(HttpStatus.NOT_MODIFIED); } DateFormat gmtDateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss.SSS 'GMT'", Locale.US); System.out.println(System.currentTimeMillis()); String body = "<a href=''>点击访问当前链接</a>"; MultiValueMap<String, String> headers = new HttpHeaders(); //文档修改时间 headers.add("Last-Modified", gmtDateFormat.format(new Date(lastModifiedMillis))); //当前系统时间 headers.add("Date", gmtDateFormat.format(new Date(now))); //过期时间 http 1.0支持 headers.add("Expires", gmtDateFormat.format(new Date(now + maxAge))); //文档生存时间 http 1.1支持 headers.add("Cache-Control", "max-age=" + maxAge); return new ResponseEntity<String>(body, headers, HttpStatus.OK,"String"); }
etag
public ResponseEntity<String> etgcache( //浏览器验证文档内容的实体 If-None-Match @RequestHeader (name = "If-None-Match", required = false) String ifNoneMatch) { //当前系统时间 long now = System.currentTimeMillis(); //文档可以在浏览器端/proxy上缓存多久 long maxAge = 10; String body = "<a href=''>点击访问当前链接</a>"; //弱实体 String etag = "W/\"" + DigestUtils.md5DigestAsHex(body.getBytes()) + "\""; if(ifNoneMatch != null && ifNoneMatch.equals(etag)) { return new ResponseEntity<String>(HttpStatus.NOT_MODIFIED); } DateFormat gmtDateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss 'GMT'", Locale.US); MultiValueMap<String, String> headers = new HttpHeaders(); //ETag http 1.1支持 headers.add("ETag", etag); //当前系统时间 headers.add("Date", gmtDateFormat.format(new Date(now))); //文档生存时间 http 1.1支持 headers.add("Cache-Control", "max-age=" + maxAge); return new ResponseEntity<String>(body, headers, HttpStatus.OK); }
运行和访问实例
启动示例应用之前,必须先安装好gradle并配置好gradle环境变量,至少gradle 3.0+ (Complete distribution)版本
从github下载源码工程:
git clone -b master --depth 1 https://github.com/bbossgroups/bestpractice.git
切换到在命令行,进入源码目录
cd bestpractice
执行gradle指令
gradle :mvc:tomcatStart
启动成功后访问示例:
etag
http://localhost:8080/mvc/caches/etgcache.page
Last-Modified
http://localhost:8080/mvc/caches/cache.page?millis=1473172518546
发表评论
-
bboss mvc控制器方法跳转地址设置方法介绍
2017-12-09 21:52 844bboss mvc控制器方法跳转地址设置方法介绍 1.直接指 ... -
bboss mvc json插件设置日期类型格式方法
2017-02-28 11:33 670bboss mvc json插件设置日期类型格式方法 一般的 ... -
bboss wordpdf构建部署介绍
2016-09-02 15:47 513bboss wordpdf构建部署介绍 下载 源码下载地址: ... -
解决tomcat stop报Illegal access: this web application instance has been stopped异常方法
2015-12-26 23:41 5817解决tomcat stop报Illegal access: t ... -
bboss mvc文件上传实例
2015-06-08 11:13 37本文着重介绍bboss mvc文件上传功能,切入正题 功能点 ... -
bboss mvc @RequestBody注解使用说明
2014-10-23 15:53 992@RequestBody可以将客户端请求报文体通过数据类型转换 ... -
bboss安全认证过滤器认证后重定向到请求页面功能介绍
2014-10-12 10:55 1258本文介绍bboss安全认证 ... -
bboss mvc控制器方法响应报文注解ResponseBody使用说明
2014-09-20 22:39 1138bboss mvc控制器方法响应 ... -
bboss mvc启动事件监听器使用方法
2014-09-02 20:25 1098在实际应用,往往需要在mvc容器启动后执行相应的操作,bbos ... -
bboss session共享使用方法介绍
2014-05-10 16:12 5869bboss session共享使用方法 ... -
bboss将一个组件同时发布为webservice,hessian,http三种服务方法介绍
2014-04-12 14:31 1600bboss将一个组件同时发布为webservice,hessi ... -
bboss发布apache cxf 2.7.6服务和定义客户端服务实例可能产生冲突解决办法
2014-03-22 23:16 1026bboss发布apache cxf 2.7.6服务和定义客户端 ... -
bboss mvc接收和响应xml格式数据的方法
2013-12-28 19:14 1009本文介绍bboss mvc接收和响应xml格式数据的方法 1 ... -
bboss mvc忽略对bean属性进行参数绑定方法
2013-10-10 20:20 922bboss mvc忽略对bean属性进行参数绑定方法非常简单, ... -
bboss mvc参数绑定注解RequestParam使用说明
2013-08-17 00:02 4131bboss mvc参数绑定注解RequestParam使用说明 ... -
bboss mvc参数绑定注解MapKey使用说明
2013-08-10 23:27 1099bboss mvc参数绑定注解MapK ... -
bboss mvc获取request,session,response,pageContext对象方法
2013-07-12 13:19 1324本文介绍基于bboss mvc后台java程序如何获取requ ... -
bboss mvc ajax响应输出中文乱码解决方法
2013-07-10 23:08 1014对于bboss mvc ajax请求响应出现的中文乱码问题,怎 ... -
bboss libreoffice结合使用说明
2012-12-23 23:03 1215bboss libreoffice结合使用说明已经文件下载插件 ... -
bboss 属性编辑器在mvc中的应用
2012-11-22 13:25 745bboss 中提供了EditorInf属 ...
相关推荐
NULL 博文链接:https://yin-bp.iteye.com/blog/926166
NULL 博文链接:https://yin-bp.iteye.com/blog/1528721
NULL 博文链接:https://yin-bp.iteye.com/blog/1131637
官方版本,亲测可用
自动代码生成器是针对bboss框架和bboss开发平台的自动代码生成工具,可以根据模板,自动生成给定表的增,删,改,分页查询,列表查询,国际化功能对应的程序和配置文件: 1.mvc控制器 2.业务组件 3.实体类 4.jsp文件...
bboss会话共享培训文档,学习bboss不可多得的资料,值得拥有。
bboss es特点请访问: https://www.oschina.net/p/bboss-elastic
企业级 J2EE 开源框架:bboss
官方版本,亲测可用
资源目录: 项目源码(eshelloword.rar) bboss elasticsearch开发入门教程.wmv 搭建bboss elasticsearch开发环境.wmv 说明.txt
NULL 博文链接:https://yin-bp.iteye.com/blog/1449900
bboss+es基本操作示例,elasticsearch,bboss,java使用demo
springboot集成ElasticsearchBboss调用Elasticsearch的案例分享
官方版本,亲测可用
bboss-datatran 由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能。
bboss功能涵盖ioc,mvc,jsp自定义标签库,持久层,全局事务托管,安全认证,SSO,web会话共享,cxfwebservice服务发布和管理,hessian服务发布和管理等功能。另外还提供了符合中国式自由流的bboss activiti工作流...
Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿