如何使用@Context批注
在什么是javax.ws.rs.core.context的第4部分中? 您学习了如何使用@Context批注将HttpServletResponse和HttpServletRequest类注入资源方法。
在本文中,您将学习如何使用其余两个仅在servlet容器中可用的类,它们是: javax.servlet。 ServletConfig和javax.servlet。 ServletContext。
在
Servlet容器包含REST端点开发人员可能感兴趣的配置,因此您可以访问javax.servlet。 通过使用@Context注释注入ServletConfig实例。
让我们跳到一个简单的例子:
@Path("servlet-config")
public class ServletConfigResource {@GET@Produces(MediaType.APPLICATION_JSON)public Response getServletName(final @Context ServletConfig servletConfig){return Response.ok(servletConfig.getServletName()).build();}}
此代码段从注入的ServetConfig实例检索Servlet的名称,并将其返回给调用客户端。 就我而言,当我访问URL http:// localhost:8080 / rest-server / servlet-config时,返回的servlet的名称为com.readlearncode.RESTConfig 。
我要看的最后一个与Servlet相关的实例是ServletContext对象。 Servlet上下文提供对许多属性和方法的访问,例如Servlet配置以及动态Servlet和过滤器配置。 让我们看一个例子。
@Path("servlet-context")
public class ServletContextResource {@GET@Produces(MediaType.APPLICATION_JSON)public Response getContextPath(final @Context ServletContext servletContext) {return Response.ok(servletContext.getContextPath()).build();}}
在上面的代码中, ServletContext被注入到方法参数ServletContext中。 然后,检索当前servlet上下文的上下文路径,并将其作为响应发送回客户端。 如果您访问URL http:// localhost:8080 / rest-server / servlet-context ,则会看到显示的路径/ rest-server 。
代码库
此代码和我所有文章的源代码都在readlearncode_articles Github存储库中。
结论
这结束了JAX-RS应用程序中可以使用@Context ( javax.ws.rs.core.context )批注的所有方式的导览 。 如果要查看本系列的所有部分,请在下面链接:
- 什么是javax.ws.rs.core.context? [ 第1部分 ]
- 什么是javax.ws.rs.core.context? [ 第2部分 ]
- 什么是javax.ws.rs.core.context? [第3部分]
- 什么是javax.ws.rs.core.context? [第4部分]
- 什么是javax.ws.rs.core.context? [第5部分]
接下来是什么?
我最近发布了有关Java EE的入门课程,该课程涵盖了刚开始在Enterprise Java领域工作的所有最重要的API。 这是一个名为“ 学习Java Enterprise Edition”的视频课程,在2小时的课程中,我将介绍最常用的Java Enterprise Edition API。 我将通过大量的代码示例和挑战演示如何使用这些API,以帮助学习者开发其技能。
对于有抱负的学习者,有一些课程讲授如何使用JAX-RS构建RESTful端点 ,有关如何使用WebSockets构建聊天应用程序的课程以及涉及JSON-Processing API课程的课程。 该路线图包含了Java EE课程,涵盖了这个扩展平台的整个领域。
进一步阅读
我经常在我的博客readlearncode.com上发布有关Java EE的博客,最近在该博客上发布了有关JAX-RS API的微型文章系列。
在这些文章中,讨论了REST端点中的bean验证失败 ,如何与使用者和生产者一起使用以及如何创建JAX-RS资源实体 。
翻译自: https://www.javacodegeeks.com/2017/08/javax-ws-rs-core-context-part-5.html