当前位置: 首页 > 面试题库 >

HttpServlet类和与Jersey一起使用时的困惑

淳于新
2023-03-14
问题内容

我正在构建实现​​RESTful API的servlet。我知道Jersey是用于解密和使用给定URL的框架。如何与HttpServlet课程结合使用。

我不明白两者如何相互配合。我想这是一个很广泛的问题,但是我在阅读方面做得相当不错,但仍然停留在这个看似微不足道的概念上。我尝试HttpServlet使用扩展类并使用Jersey注释的类来部署应用程序。

@Path("/api")
public class API extends HttpServlet{

@GET
@Path("/{name}")
@Produces("text/hmtl")
public String doGetSayHello(@PathParam("name") String name){
    return "Hello" + name;
}
@GET
@Path("/articles")
@Produces("text/json")
public String doGetArticles(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{

    JSONObject obj = new JSONObject();
    obj.put("interns", interns);
    obj.put("company", "Stack Overflow");

    return obj.toString();

}

}

任何帮助或信息材料将不胜感激!


问题答案:

实际上,您很困惑,因为您不了解球衣的工作原理。Jersey框架基本上使用com.sun.jersey.spi.container.servlet.ServletContainerservlet拦截所有传入的请求。正如我们在项目web.xml中配置的那样,所有传入的rest请求都应由该servlet处理。有一个用jersey
servlet配置的init-
param,用于查找您的REST服务类。REST服务类不是Servlet,并且不需要像在代码中那样扩展HttpServlet。这些REST服务类是简单的POJO,带有注解,用于告知jersey框架有关路径,消耗,生产等不同属性的信息。当您从服务方法返回时,jersey负责将这些对象编组到已定义的“
PRODUCES” responseType中并进行编写。在客户端流上。这是网络中的jersey配置示例。


<servlet>
        <servlet-name>REST</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>
                com.rest.services;
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>REST</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>


 类似资料:
  • dagger2是否可以和Guice一样与jersey一起使用? 是否有任何dagger2 servlet或dagger2 jersey项目?

  • 这是一个Java SE应用程序。我只想用Guice注射。我读过关于HK2活页夹的信息,我宁愿使用Guice。我熟悉Guice并经常使用它,但我不知道从哪里开始使用它,几乎我所有的Googlefu都指向基于容器的jersey服务器。我对灰熊也不感兴趣。 那么,我如何实现这一点,以便我可以使用Guice来满足我的注射需求呢?

  • 服务的Moxy版本的URL返回: MOXy和Jackson版本的Java代码是相同的这是beanparam: 问题似乎在于如何处理types参数。使用Jackson时,类型QueryParams被正确地封送到列表中,但MOXy失败,只返回一个NULL。因此getTypes返回一个空列表。正确处理了简单的QueryParam计数和lang。这是泽西的窃听器还是我需要和莫西做点别的什么? } web.

  • 我试图将Hibernate与我的spring应用程序上下文联系起来。我正在成功地连接SessionFactory,但当我尝试调用getCurrentSession时,我看到以下错误: 我正在配置数据源会话工厂和事务管理器。我还指定了事务处理将是注释驱动的 下面是我的上下文XML: null 下面是我发现错误的类: 当这被称为sessionFactory时不是null,而是带有上述错误的错误。如果我

  • 问题内容: 我正在尝试创建一个通用类以与Google Gson一起使用。我已经创建了课程。此类具有以下方法: 目标是该方法应该能够与我设置了GsonJsonConverterImplementation的任何Type一起使用。不幸的是,它不起作用,也不能代替T 使用。我确信问题是由于我对Java泛型类型缺乏理解而引起的。在Gson上使用泛型的正确方法是什么? 使用Kris的答案进行 编辑,我认为这

  • 我有一个带有Spring(5.7.2)Web/Security的REST API项目。 我只有一个表,它包含一个id和一个名称。 当我删除光盘时,我的DiscsService会 当我需要插入或更新时,我会: 我了解到,当您希望在同一事务中使用值(提交之前)时,将使用,并且将同步并清空SQL缓存。 在我的例子中,我看到我在数据库中插入/更新或删除了值。 我应该使用flush()(我认为不应该),但可