`
cywhoyi
  • 浏览: 421064 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Jersey使用HTTP CACHE

 
阅读更多

在使用Jersey的restful的过程中,对于Http Cache有一定的基础了解,

Cache-Control

  • -private/public : private是并不能呗CDN或者代理接受,但是public可以
  • -no-cache,no-store,max-age 属性值用来给Cache的特性设置

 

	@GET
	@Path("/map")
	public Response queryMCSViewFields() {
		CacheControl cc = new CacheControl();
		cc.setMaxAge(300);
		cc.setNoStore(true);
		cc.setPrivate(true);
		cc.setNoCache(false);
		List<MCSAdaptiveModel> list = getCustomizeViewFieldService()
				.queryMCSFields("MCS_ORDER_SCHEDULE");
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("success", true);
		map.put("data", list);
		String jsonString = JSON.toJSONString(map);
		ResponseBuilder builder = Response.ok(jsonString,
				MediaType.APPLICATION_JSON);
		builder.cacheControl(cc);
		return builder.build();

	}

 

 



 

Etag

也可以通过etag来根据etag来判断是否需要Cache

 

@Path("{id}")
	@GET
	@Produces(MediaType.APPLICATION_XML)
	public Response getUserWithEtagSupport(@PathParam("id") Long id,
			@Context Request request){
		User user = userDB.get(id);
		//generating Etag out of hashCode of user
		EntityTag tag = new EntityTag(Integer.toString(user.hashCode()));
		CacheControl cc = new CacheControl();
		cc.setMaxAge(1000);

		ResponseBuilder builder = request.evaluatePreconditions(tag);
		if(builder!=null){
	
			builder.cacheControl(cc);
			return builder.build();
		}

		builder = Response.ok(user,MediaType.APPLICATION_XML);
		builder.cacheControl(cc);
		builder.tag(tag);
		return builder.build();

	}

 

 

  • 大小: 7.9 KB
分享到:
评论

相关推荐

    jersey-core-1.18.2.zip

    ScalaCache的核心功能是为各种缓存后端(如Guava Cache、Memcached或Redis)提供统一的API,简化了在Scala项目中集成缓存的过程。"coresimple"可能指的是ScalaCache的简单核心实现,提供基础的缓存功能,不依赖于...

    xwiki-commons-tool-verification-resources-5.3-milestone-2.zip

    在`xwiki-commons-tool-verification-resources-5.3-milestone-2.zip`这个压缩包中,我们可以看到一个名为`jersey-cache-control.zip`的文件,它包含了`Jersey`的基于注释的缓存控制功能,这是一个非常实用的特性,...

    meta_ws:球衣Springmybatis基本演示

    一、背景 针对目前各项目代码结构混乱,导致维护难,他人拒绝接收的问题,本人制定出适合本公司现有的JavaWeb技术架构,整理出一个标准的架构。 二、目标 让开发人员只需关注业务逻辑的实现 ...Guava Cache使用教

    JavaRESTful

    同时,理解HTTP缓存头(如Cache-Control和ETag)的使用,可以有效减少不必要的网络请求。 通过阅读《Java RESTful Web Service实战》这本书,你可以获得更深入的理论知识和实践技巧,从而在实际项目中更好地运用...

    jerseysse:泽西岛SSE测试项目

    response.setHeader("Cache-Control", "no-cache"); response.setHeader("Connection", "keep-alive"); response.setContentType("text/event-stream"); // 发送事件 response.getWriter().write("data: 欢迎...

    WEB框架——REST原理(架构风格与基于网络的软件架构设计)

    RESTful设计原则还包括**统一接口**,即所有资源的访问方式一致,以及**缓存机制**,通过HTTP的Cache-Control和ETag头支持客户端缓存,提高性能。 总结来说,REST是一种设计Web服务的理念,它提倡使用HTTP协议的...

    rest-services-tutorial:REST服务教程和样本

    缓存控制则通过HTTP响应头中的`Cache-Control`字段来指定。 在`rest-services-tutorial-master`这个压缩包中,可能包含了完整的示例代码、教程文档和运行指南,可以帮助学习者深入了解如何在Java中构建REST服务。...

    RestAPI

    4. **缓存(Cache)**: REST允许使用HTTP缓存机制来提高性能,但并非所有响应都可缓存。 5. **层式系统(Layered System)**: REST允许中间层,如代理、网关和缓存,来增强系统的可伸缩性和安全性。 在Java中实现...

    客户休息Api:客户休息Api

    通过HTTP响应头中的Cache-Control字段控制。 5. **统一接口**:保持接口的一致性,便于理解和使用。通常包括资源的URI、HTTP方法、编码格式(如JSON或XML)等。 Java中实现RESTful API: 1. **JAX-RS**:Java API...

    REST-demos:REST演示应用程序

    通过研究这个REST-demos项目,开发者可以深入理解RESTful服务的工作原理,掌握Java中使用JAX-RS和Jersey构建REST服务的方法,以及如何进行接口测试和部署。这是一个非常实用的学习资源,对于想要涉足或提升在Web服务...

    restservices

    它集成了Jersey(JAX-RS实现)、Jackson(JSON处理)、Jetty(HTTP服务器)和 Metrics(监控)等组件。创建Dropwizard应用时,你需要定义一个资源类,类似于JAX-RS: ```java @Path("/users") public class ...

    RESTfull_webService

    - **缓存(Cache)**:允许客户端缓存响应,提高性能。 - **层式系统(Layered System)**:中间层可以增加透明性,比如负载均衡和安全过滤。 2. **HTTP方法** - **GET**:获取资源,安全、幂等。 - **POST**:...

    Server-side-saving:Java制造

    7. **RESTful API设计**:使用Java的Jersey或Spring Boot可以构建RESTful服务,使客户端和服务器之间的交互更加标准化和高效。 8. **错误与异常处理**:通过try-catch-finally结构,Java提供了一套完整的错误和异常...

    spring-boot-reference.pdf

    27.3. JAX-RS and Jersey 27.4. Embedded Servlet Container Support 27.4.1. Servlets, Filters, and listeners Registering Servlets, Filters, and Listeners as Spring Beans 27.4.2. Servlet Context ...

Global site tag (gtag.js) - Google Analytics