门户类网站备案,付费设计网站,线上推广宣传方式有哪些,在百度工作但是是外包jax-rs jax-wsJAX-RS提供Context批注以在RESTful服务中注入各种资源。 一些最常用的注入组件是HTTP标头#xff0c;HTTP URI相关信息。 这是完整列表#xff08;无特定顺序#xff09; HTTP标头 HTTP URI详细信息 安全上下文 资源上下文 请求 组态 应用 提供者 让我… jax-rs jax-ws JAX-RS提供Context批注以在RESTful服务中注入各种资源。 一些最常用的注入组件是HTTP标头HTTP URI相关信息。 这是完整列表无特定顺序 HTTP标头 HTTP URI详细信息 安全上下文 资源上下文 请求 组态 应用 提供者 让我们借助示例逐一查看 HTTP标头 尽管可以使用HeaderParam批注来注入HTTP标头但是JAX-RS还提供了注入HttpHeaders接口实例作为实例变量或方法参数的便利 。 当您要遍历所有可能的标头而不是按名称注入特定的标头值时这很有用 Path(testinject)
public class InjectURIDetails{//localhost:8080/root-context/testinject/httpheadersGETPath(httpheaders)public void test(Context HttpHeaders headers){System.out.println(ALL headers -- headers.getRequestHeaders().toString());System.out.println(Accept header -- headers.getHeaderString(Accept));System.out.println(TestCookie value -- headers.getCookies().get(TestCookie).getValue());}
}HTTP URI详细信息 UriInfo是另一个接口其实例可以由JAX-RS注入作为实例变量或方法参数。 使用此实例来获取与请求URI及其参数查询路径有关的其他详细信息 Path(testinject)
public class InjectURIDetails{//localhost:8080/root-context/testinject/uriinfoGETPath(uriinfo)public void test(Context UriInfo uriDetails){System.out.println(ALL query parameters -- uriDetails.getQueryParameters().toString());System.out.println(id query parameter -- uriDetails.getQueryParameters.get(id));System.out.println(Complete URI -- uriDetails.getRequestUri());}
}提供者 可以使用Context注入Providers接口的实例。 需要意识到以下事实这仅在现有提供者中有效。 Providers实例使当前Provider能够在当前JAX-RS容器中搜索其他注册的提供商。 注意 请不要混淆提供者和提供者。 提供者 JAX-RS Provider是任何类的通用术语它通过实现JAX-RS规范公开的标准接口来补充/扩展JAX-RS功能。 使用Provider批注对其进行批注以便在运行时自动发现 JAX-RS提供程序的示例是–消息正文读取器消息正文编写器异常映射器和上下文提供程序。 提供者 引用本小节中讨论的可注入javax.ws.rs.ext.Providers接口 安全上下文 如果您想获得更多关于调用RESTful服务的实体身份的信息请注入javax.ws.rs.core.SecurityContext接口的实例作为实例变量或方法参数。 该接口公开以下信息 代表调用方的java.security.Principal实例 用户是否是特定角色的一部分 使用哪种身份验证方案BASIC / FORM / DIGEST / CERT 是否通过HTTPS调用请求 Path(testinject)
public class InjectSecurityContext{//localhost:8080/root-context/testinject/securitycontextGETPath(securitycontext)public void test(Context SecurityContext secContext){System.out.println(Caller -- secContext.getUserPrincipal()getName());System.out.println(Authentication Scheme -- secContext.getAuthenticationScheme());System.out.println(Over HTTPS ? -- secContext.isSecure());System.out.println(Belongs to admin role? -- secContext.isUserInRole(admin);}
} 仅此部分而已。 其余的注射剂将在下一次迭代中介绍。 在那之前..欢呼 翻译自: https://www.javacodegeeks.com/2015/05/using-context-in-jax-rs-part-1.htmljax-rs jax-ws