@Context注解
该注解用来注入上下文参数,和Spring的@AutoWired效果类似。可以注入ResourceInfo、UriInfo、HttpHeaders、ServletConfig、ServletContext、HttpServletRequest、HttpServletResponse、SecurityContext等对象。
使用频率较高的对象如下:
ResourceInfo:资源信息,可获取处理请求的资源类和方法,在自定义注解中非常有用
UriInfo:访问地址
HttpServletRequest:使用频率最高的对象
HttpServletResponse:经常使用在日志记录注解中,获取响应的状态码
SecurityContext:用户认证相关
使用案例
@Path("/product")
public class ProductRes {
//资源信息,可获取处理请求的资源类和方法,在自定义注解中非常有用
@Context
ResourceInfo resourceInfo;
//访问地址
@Context
UriInfo uriInfo;
//请求头
@Context
HttpHeaders httpHeaders;
//经常使用在日志记录注解中,获取响应的状态码
@Context
HttpServletResponse response;
//使用频率最高的对象
@Context
HttpServletRequest request;
//用户认证相关
@Context
SecurityContext sc;
@Path("")
@GET
public String get() {
System.out.println(resourceInfo.getResourceClass());
System.out.println(resourceInfo.getResourceMethod());
System.out.println(uriInfo.getAbsolutePath());
System.out.println(uriInfo.getPath());
System.out.println(request.getMethod());
return "";
}
}
使用浏览器访问localhost/product
,程序的输出如图所示: