HttpServlet 类与 Jersey 一起使用之间的混淆

2023-11-26

我正在构建实现​​ RESTful API 的 servlet。我知道 Jersey 是一个用于破译和使用给定 URL 的框架。我如何将它与HttpServlet class.

我不明白两者如何相互合作。我想这是一个非常笼统的问题,但我已经阅读了相当多的内容,但仍然停留在这个看似微不足道的概念上。我尝试使用扩展的类来部署应用程序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 中配置时,所有传入的其余请求都应由该 servlet 处理。有一个使用 jersey servlet 配置的 init-param 来查找您的 REST 服务类。 REST 服务类不是 Servlet,它们不需要像您在代码中所做的那样扩展 HttpServlet。这些 REST 服务类是简单的 POJO,经过注释告诉 jersey 框架不同的属性,例如路径、消耗、生产等。当您从服务方法返回时,jersey 负责将这些对象编组到定义的“PRODUCES”responseType 中并写入它在客户端流上。这是 web.xml 中球衣配置的示例

<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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HttpServlet 类与 Jersey 一起使用之间的混淆 的相关文章

  • java替代Thread.stop()来中断特定调用

    我正在寻找一种方法来告诉这个调用 大约需要 20 120 秒 final Area image final AffineTransform transform new AffineTransform transform scale imag
  • 按下按钮时清除编辑文本焦点并隐藏键盘

    我正在制作一个带有编辑文本和按钮的应用程序 当我在 edittext 中输入内容然后单击按钮时 我希望键盘和焦点在 edittext 上消失 但我似乎无法做到这一点 我在 XML 中插入了这两行代码 android focusable tr
  • 使用 xuggle 将 mp3 转换为 wav 出现异常

    我正在尝试将 mp3 转换为 wav 代码在这里 String mp3 F work pic2talk38512 mp3 String wav F work pic2talk38512 wav TranscodeAudioAndVideo
  • Java,将 null 分配给对象和仅声明之间有什么区别

    之间有什么区别 Object o null and Object o 仅声明 有人可以回答我吗 这取决于您声明变量的范围 例如 局部变量没有default values在这种情况下你将不得不分配null手动 在这种情况下实例变量分配 nul
  • 无效数据的 REST 响应代码

    如果出现以下情况 应将什么响应代码传递给客户端 用户注册时传递了无效数据 例如电子邮件格式错误 用户名 电子邮件已存在 我选择了403 我还发现了以下我觉得可以用的 维基百科 412 前提条件失败 服务器不满足请求者要求的先决条件之一 提出
  • JPA:如何将字符串持久保存到数据库字段中,输入 MYSQL Text

    需求是用户可以写文章 所以我选择typeText为了contentmysql数据库内的字段 我怎样才能转换Java String into MySQL Text 干得好Jim Tough Entity public class Articl
  • 将 REST 服务与 Android 应用程序同步

    我使用一个 REST 服务来填充数据库中的信息 稍后由我的应用程序使用 我已经阅读了有关此事的多个主题 现在必须决定如何在 REST 服务和数据库之间实现同步 想象一个应用程序 它从谷歌金融 API 获取有关股票的信息并将其存储在数据库中
  • ASP.NET MVC 4 Web Api 和 REST 经典服务之间的区别

    我看到了ASP Net MVC4 WebApi将服务公开为 Rest 服务 但实际上和正常有什么区别Rest and ASP Net MVC4 WebApi 我不确定你的意思normal Rest REST http en wikipedi
  • 确定代码是否在 App Engine 运行时 (Java) 上运行

    如何确定某些代码 Serv let 或简单的类 是否正在 Google App Engine 运行时 Java 上运行 以便决定是否使用 App Engine 的特定库 是否有一些可靠的运行时环境 ID 您可以检查com google ap
  • JSON 对象数组转 Java POJO

    将此 JSON 对象转换为 java 中的类 您的 POJO 类中的映射将如何 ownerName Robert pets name Kitty name Rex name Jake This kind of question is ver
  • Java 反射:如何检索匿名内部类?

    我在另一个类中有一个匿名内部类 SomeClass Both SomeClass class getClasses and SomeClass class getDeclaredClasses 返回空数组 我在中找不到一些关于此的提示Cla
  • 将多个视频文件合并到一个文件中

    我有多个以相同帧速率和分辨率录制的视频 我想将两个视频合并为一个视频 因此结果文件将是大视频 我正在使用 MP4 解析器 api 并使用下面的代码 Movie countVideo new MovieCreator build Channe
  • Java 套接字:可以从一个线程发送并在另一个线程上接收吗?

    这可能是一个非常基本的问题 但我很难找到答案 让一个线程写入 Socket 的输出流 而另一个线程从 Socket 的输入流读取数据 这样可以吗 编辑 这是一个与外部服务器通信的客户端应用程序 我并不是想让两个线程互相交谈 很抱歉含糊不清
  • 在java中是否可以使用反射创建没有无参数构造函数的“空白”类实例?

    我有一个没有默认构造函数的类 我需要一种方法来获取此类的 空白 实例 空白 意味着实例化后所有类字段都应具有默认值 如 null 0 等 我问这个问题是因为我需要能够序列化 反序列化大对象树 而且我无法访问该对象类的源 并且类既没有默认构造
  • activemq 的优先级

    我们目前正在使用 JMS 和 activemq 5 5 1 开发一个应用程序 我们想为某些消息定义更高的优先级 这将使它们首先被消耗 设置生产者和消费者后 通过spring 3 1 JMSTemplate 优先级并不能完全发挥作用 事实上
  • 在 Java 中使用 Inflater 解压缩 gzip 数据

    我正在尝试使用以下方法解压缩 gzip 数据Inflater 根据文档 如果参数 nowrap 为 true 则 ZLIB 标头和校验和 字段将不会被使用 这提供了与 GZIP 和 PKZIP 使用的压缩格式 注意 使用 nowrap 选项
  • 多对多不检索映射数据

    Spring boot 2 5 6 我无法安装版本 概要文件 java Getter Setter NoArgsConstructor AllArgsConstructor EqualsAndHashCode FieldDefaults l
  • 如何告诉 IntelliJ 使用 Java 1.6 JDK 启动 gradle?

    一个简单的问题 即使经过几个小时的尝试和搜索 我也无法弄清楚 我安装了 Java 6 和 7 如何告诉 IntelliJ 使用 JDK 版本 1 6 启动 Gradle 构建 无论我做什么 IntelliJ 都会以以下方式开始我的 grad
  • Checkstyle - 方法按修饰符排序

    是否可以添加到 checkstyle 规则以按修饰符对类中的方法进行排序 我的意思是开头的公共方法和最后的私有方法 MethodsOrderCheck做这个工作 检查文档 https www qulice com qulice checks
  • Java,如何管理线程读取socket(websocket)?

    我有一个 WebSocket 服务器 我的服务器创建一个新线程来处理新连接 该线程一直处于活动状态 直到 websocket 中断 我的问题 对于 1 000 000 个连接 我需要 1 000 000 个线程 我如何通过一个线程处理多个

随机推荐

  • 在 C# 中传递泛型作为泛型类型参数

    我在 C 中对泛型做了一个小实验 我遇到了一个问题 我想将泛型类型作为类型参数传递 并带有约束来实现我不知道其类型的泛型接口 这是我的例子 using System using System Collections Generic usin
  • 使用 jq 或 sed 替换 JSON 中的属性或键

    有一个像这样的大json envConfig environmentName versions name version1 value Dev name version2 host qa userRoles name Roles
  • 如何用socket地址获取自己的IP地址?

    我想获取启动程序的计算机的 IP 地址 以便能够将其发送到客户端 但我总是得到 0 0 0 1 而不是真实的 IP 地址 例如 127 0 0 1 我目前能够获取端口 但无法获取 IP 地址 我怎么才能得到它 最好的解决方案是能够通过soc
  • 如何通过库名称找到库的文件名?

    如何通过库名称找到库的文件名 换句话说 当我使用 lc 时 我知道它是 lib libc so 6 或类似的东西 我希望能够键入一些命令 其中 lc 是输入 lib 是 libc so 6 是输出 为了进一步扩展这个想法 我想指定我自己的搜
  • 用于扫描可用 Wi-Fi 网络的 iOS API 是什么

    这就是问题所在 但这是一个长版本 我正在开发一个需要模仿 Belkin WeMo 的连接工作流程的项目 WeMo 是一个可以通过 iOS 应用程序控制的物理开关 设置的工作原理如下 WeMo 充当 Wi Fi 路由器 它会广播 SSID 而
  • Spring 4 MVC - Rest服务 - 在bean中使用默认值

    我在用Spring 4 1 4并实现一个简单的REST服务 我确实有一个POST方法得到一个Person对象作为请求 ResponseStatus value HttpStatus CREATED RequestMapping value
  • Google 容器引擎中的 Kubernetes HTTPS 入口

    我想公开在 Google Container Engine 中运行的 HTTP 服务仅 HTTPS负载平衡器 如何在入口对象中定义我想要的HTTPS仅负载均衡器而不是默认 HTTP 或者有什么办法可以永久删除HTTP来自创建的负载均衡器的协
  • Xcode 4 中的“运行 > 在 Objective-C 异常时停止”?

    也许有人知道 Xcode 4 中的 运行 gt 在 Objective C 异常时停止 菜单在哪里 我有时在 Xcode 3 中使用过它 但它在新的 IDE 中消失了 在xcode 4的左侧栏中 点击断点选项卡 第 6 个 选项卡结束 点击
  • 如何让 Maven 2 构建 2 个独立的 WAR 文件

    当做一个mvn install我想在我的目标目录中得到 2 个 WAR 文件 其中一个将包含生产 web xml另一个将包含test uat web xml 我试过这个
  • 我如何运行 Conda?

    我安装了 Anaconda 并且可以运行 Python 所以我假设我安装正确 按照此介绍性文档 我正在尝试安装 Python v3 3 因此我将以下行复制并粘贴到我的控制台中 conda create n py33 python 3 3 a
  • 将VC++的__try/__ except EXCEPTION_STACK_OVERFLOW移植到MinGW

    我正在尝试使用 VC 的 try except 语句将一些代码移植到 MinGW bool success true try except EXCEPTION STACK OVERFLOW GetExceptionCode EXCEPTIO
  • 通过 IdeaVim 在 IntelliJ 中使用 Vim 插件

    有没有办法通过 IdeaVim 在 IntelliJ 中使用 Vim 插件 在这种情况下 我正在寻找一种使用 easymotion Vim 插件的方法 您可以使用acejump插件或emacsIDEAs 不要被它的名字吓到 它只是介绍了 a
  • 使用 Pandas 从另一个数据帧中删除一个数据帧

    我有两个不同大小的数据框 df1 nad df2 我想从中删除df1存储在其中的所有行df2 所以如果我有df2等于 A B 0 wer 6 1 tyu 7 And df1等于 A B C 0 qwe 5 a 1 wer 6 s 2 wer
  • 删除R中tmap中的图例

    我有一个简单的问题 如何删除 R 中 tmap 中自动添加的图例 在这种情况下 我想删除右侧描述 级别 的图例 这是我尝试过的 tm shape densities polygons tm polygons col level palett
  • matlab:将向量划分为固定大小的重叠块

    我有一个向量 我想将其拆分为大小重叠的子向量cs轮流在sh 想象输入向量是 v 1 2 3 4 5 6 7 8 9 10 11 12 13 A 1 13 given a chunksize of 4 cs 4 和 2 sh 2 结果应如下所
  • 调用未定义函数curl_init()错误

    我在 Win 64 位操作系统 php 5 6 8 上使用 Eclipse PDT 来开发 PHP 我遇到过 Call to undefined function curl init 错误 我删除了 前extension php curl
  • D3D11:如何绘制简单的像素对齐线?

    我尝试用 D3D11 在两个顶点之间画一条线 我在 D3D9 和 D3D11 中有一些经验 但在 D3D11 中绘制一条线 从一个给定像素开始并以另一个像素结束 似乎是一个问题 我做了什么 我向每个顶点的像素坐标添加了 0 5f 以适应纹素
  • CakePHP如何通过ID数组获取多行

    我想根据 ID 数组列表从数据库中提取多行 在其他一些框架中似乎有类似 WHERE IN 的东西 但这里没有 有人可以告诉我该怎么做吗 我想知道如何通过 find 或 read 或任何其他 cakephp 函数 来做到这一点 而不是手动构建
  • Rails 库包括

    关于 lib 目录中定义的模块 我有一个令人费解的问题 我有两个文件 lib authentication rb module Authentication end lib test module rb module TestModule
  • HttpServlet 类与 Jersey 一起使用之间的混淆

    我正在构建实现 RESTful API 的 servlet 我知道 Jersey 是一个用于破译和使用给定 URL 的框架 我如何将它与HttpServlet class 我不明白两者如何相互合作 我想这是一个非常笼统的问题 但我已经阅读了