- 浏览: 695085 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (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 910bboss mvc控制器方法跳转地址设置方法介绍 1.直接指 ... -
bboss mvc json插件设置日期类型格式方法
2017-02-28 11:33 742bboss mvc json插件设置日期类型格式方法 一般的 ... -
bboss wordpdf构建部署介绍
2016-09-02 15:47 569bboss wordpdf构建部署介绍 下载 源码下载地址: ... -
解决tomcat stop报Illegal access: this web application instance has been stopped异常方法
2015-12-26 23:41 5947解决tomcat stop报Illegal access: t ... -
bboss mvc文件上传实例
2015-06-08 11:13 37本文着重介绍bboss mvc文件上传功能,切入正题 功能点 ... -
bboss mvc @RequestBody注解使用说明
2014-10-23 15:53 1047@RequestBody可以将客户端请求报文体通过数据类型转换 ... -
bboss安全认证过滤器认证后重定向到请求页面功能介绍
2014-10-12 10:55 1340本文介绍bboss安全认证 ... -
bboss mvc控制器方法响应报文注解ResponseBody使用说明
2014-09-20 22:39 1190bboss mvc控制器方法响应 ... -
bboss mvc启动事件监听器使用方法
2014-09-02 20:25 1156在实际应用,往往需要在mvc容器启动后执行相应的操作,bbos ... -
bboss session共享使用方法介绍
2014-05-10 16:12 6144bboss session共享使用方法 ... -
bboss将一个组件同时发布为webservice,hessian,http三种服务方法介绍
2014-04-12 14:31 1654bboss将一个组件同时发布为webservice,hessi ... -
bboss发布apache cxf 2.7.6服务和定义客户端服务实例可能产生冲突解决办法
2014-03-22 23:16 1088bboss发布apache cxf 2.7.6服务和定义客户端 ... -
bboss mvc接收和响应xml格式数据的方法
2013-12-28 19:14 1070本文介绍bboss mvc接收和响应xml格式数据的方法 1 ... -
bboss mvc忽略对bean属性进行参数绑定方法
2013-10-10 20:20 972bboss mvc忽略对bean属性进行参数绑定方法非常简单, ... -
bboss mvc参数绑定注解RequestParam使用说明
2013-08-17 00:02 4194bboss mvc参数绑定注解RequestParam使用说明 ... -
bboss mvc参数绑定注解MapKey使用说明
2013-08-10 23:27 1182bboss mvc参数绑定注解MapK ... -
bboss mvc获取request,session,response,pageContext对象方法
2013-07-12 13:19 1389本文介绍基于bboss mvc后台java程序如何获取requ ... -
bboss mvc ajax响应输出中文乱码解决方法
2013-07-10 23:08 1068对于bboss mvc ajax请求响应出现的中文乱码问题,怎 ... -
bboss libreoffice结合使用说明
2012-12-23 23:03 1280bboss libreoffice结合使用说明已经文件下载插件 ... -
bboss 属性编辑器在mvc中的应用
2012-11-22 13:25 827bboss 中提供了EditorInf属 ...
相关推荐
BBoss MVCDemo 是一个基于Java的企业级应用框架,它主要为开发者提供了一种高效、灵活的MVC(Model-View-Controller)开发模式。这个框架的目的是简化企业级Web应用的开发流程,提高开发效率,并且具备良好的可扩展...
bboss MVC框架支持JSONP,意味着开发者可以设置控制器方法来响应JSONP请求。具体步骤可能包括: 1. 在bboss MVC的Controller类中定义一个处理请求的方法,添加`@Jsonp`注解,表明该方法支持JSONP。 2. 方法的参数...
NULL 博文链接:https://yin-bp.iteye.com/blog/1131637
bboss MVC中的控制器是业务逻辑和视图之间的桥梁,通常由BeanNameUrlHandlerMapping来处理URL和控制器的映射。配置中,`alwaysUseFullPath`属性确保URL始终使用完整路径,而`handlerMap`引用了处理URL和控制器映射的...
bboss会话共享是一种分布式会话管理技术,它针对在集群环境下应用部署时如何解决会话数据丢失和单点登录问题提供了专门的解决方案。根据提供的文档内容,我们可以详细探讨bboss会话共享涉及的关键知识点。 首先,...
6. **安全控制**:BBoss提供了用户认证和授权机制,包括基于角色的访问控制(RBAC)、会话管理以及CSRF防护等,保障系统安全性。 7. **缓存支持**:集成多种缓存技术,如Ehcache、Redis等,优化数据读取性能,减轻...
BBoss安全认证过滤器是Java Web开发中一种用于实现用户身份验证和权限控制的重要组件。在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在...
官方版本,亲测可用
总结来说,BBoss Persistent 1.0.2在处理CLOB和BLOB这类大字段时,通过缓存策略、流式处理、事务管理和源码可读性等方面,为开发者提供了高效且可靠的解决方案。对于需要处理大量文本或二进制数据的应用来说,这是一...
4. **更新和删除**: 更新已存在的文档,或者根据条件删除数据,同样可以通过 BBoss API 实现。 5. **高级功能**: 学习如何利用 BBoss 进行聚合分析、自定义插件开发、性能优化等进阶操作。 **五、视频教程** 1. **...
该工具是一款基于bboss...此工具能够自动生成bboss MVC、IOC、持久化、JSP、i18n、SQL配置文件、Web服务、Hessian服务等相关源代码,适用于快速开发和项目迭代。详细文档请参考:http://yin-bp.iteye.com/blog/2256948
2. **缓存机制**:提供缓存策略,减少对数据库的直接访问,提高性能。 3. **批量操作**:支持数据的批量插入、更新和删除,优化大数据量操作的效率。 4. **动态SQL**:允许在运行时构建和执行SQL,增加了代码的灵活...
自动代码生成器是针对bboss框架和bboss开发平台的自动代码生成工具,可以根据模板,自动生成给定表的增,删,改,分页查询,列表查询,国际化功能对应的程序和配置文件: 1.mvc控制器 2.业务组件 3.实体类 4.jsp文件...
本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...
它实现了流批一体化的数据处理能力,使得用户能够灵活地应对实时和批量的数据处理场景。在大数据领域,这种工具对于构建数据湖、数据仓库或者实施实时数据分析具有重要的价值。 ### 数据采集 bboss-datatran 支持...
通过这些库的组合,BBoss Elasticsearch提供了一种高效且灵活的方式来批量和定时将数据库数据导入Elasticsearch,减轻了开发者手动处理大量数据的负担。开发者可以通过配置和编写少量代码,实现复杂的数据迁移任务,...