Jersey框架常用注解4:最强大的注解@Context

本文详细介绍了@Context注解在Java EE和JAX-RS框架中的应用,它用于注入上下文参数,如ResourceInfo、UriInfo、HttpServletRequest等,是自定义注解和日志记录中的关键元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@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,程序的输出如图所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值