热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Jersey基础使用示例

环境配置以及基础服务搭建请参阅:http:blog.csdn.netu012343179articledetails73412249常用的Http方法:Get和Post,可以基本满足日常应

环境配置以及基础服务搭建请参阅:http://blog.csdn.net/u012343179/article/details/73412249

常用的Http方法:Get和Post,可以基本满足日常应用。


Jersey中的GET使用:

User类定义:

package com.ma.unit;

/**
* Created by Administrator on 2017/6/25.
*/
public class User {
private String name;
private String password;

public void setName(String userName){
this.name=userName;
}

public void setPassword(String userPassword){
this.password=userPassword;
}

public String getName(){
return this.name;
}

public String getPassword(){
return this.password;
}
}
Web服务定义:
package com.ma.test;import com.ma.unit.User;import javax.ws.rs.*;import javax.ws.rs.core.MediaType;/** * Created by Administrator on 2017/6/17. */@Path("/register")//路径public class Register{    @Path("/newuser")//路径    @GET//Get方法    @Produces(MediaType.TEXT_PLAIN)//以纯文本方式返回    public String registerUser(@QueryParam("name")String name,@QueryParam("pass")String pass){        if(name==null || pass==null){            return "lack of parameter";        }        else{            User user=new User();            user.setName(name);            user.setPassword(pass);            //然后可以进行数据库插入该新用户的操作            //返回注册的结果            return "User:"+user.getName()+"register success!";        }    }}
其中,@Produces代表接口返回的形式,@QueryParam代表 接收链接中的普通参数,例如name=mzw&pass=123,所以使用该方式在浏览器中输入,任何人可以轻易地知道你的pass参数(也就是你的密码),因此更加推荐使用POST方式。

我们运行Tomcat服务器,在地址栏中输入http://localhost:8080/api/register/newuser?name=mzw &pass=123

得到结果:



Jersey中的POST使用:

package com.ma.test;

import com.ma.unit.User;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

/**
* Created by Administrator on 2017/6/17.
*/
@Path("/register")//路径
public class Register{

@Path("/newuser")//路径
@POST//Post方法
@Produces(MediaType.TEXT_PLAIN)//以纯文本方式返回
public String registerUser(@FormParam("name")String name,@FormParam("pass")String pass){
if(name==null || pass==null){
return "lack of parameter";
}
else{
User user=new User();
user.setName(name);
user.setPassword(pass);

//然后可以进行数据库插入该新用户的操作

//返回注册的结果
return "User:"+user.getName()+"register success!";
}

}

}
我们注意到,POST方式与GET方式主要的区别在于参数传输方式,GET是将参数附加在地址后面,而POST则是通过表单来传递参数(在jersey中是@FormParam)。

因为我们修改了代码,所以我们需要重新启动Tomcat。但我们注意到,在浏览器中我们并不能通过表单传递参数(因为我们没有相应的表单以及文本框),所以我们需要用到IntelliJ的 Test Restful Web Services。


单击Test RESTful Web Service,在界面的正下方是Rest Client(也就是IntelliJ用于测试Web Service的客户端)


在相应的地方选择或填入相应的参数,如下图:

其中Request Parameters就是表单参数,然后点击绿色三角图标进行测试。

最终得到测试结果。

就目前大部分的商用接口来看,都是采用POST方式的。

在我看来,GET方式适合用于一些简单的,安全要求不高的接口需求。

而POST适合传输参数较多,较复杂,安全要求较高的接口需求。


目前主流的参数交换方式是Json,因此接下去会研究一下在Web services中将结果以Json方式返回的相关内容。


只要有音乐,就不会有世界末日!

CommissarMa

2017年6月25日11:55:09


推荐阅读
  • 初学SpringBootch06接口架构风格 RESTful
    ch06-接口架构风格RESTful1.1认识RESTful1.1.1RESTful架构风格1.2RESTful注解1.3RESTful风格的使用1.3.1加入Maven依赖1.3 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 基于Axis、XFire、CXF的webservice客户端调用示例
    本文介绍了如何使用Axis、XFire、CXF等工具来实现webservice客户端的调用,以及提供了使用Java代码进行调用的示例。示例代码中设置了服务接口类、地址,并调用了sayHello方法。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • .NetCoreWebApi生成Swagger接口文档的使用方法
    本文介绍了使用.NetCoreWebApi生成Swagger接口文档的方法,并详细说明了Swagger的定义和功能。通过使用Swagger,可以实现接口和服务的可视化,方便测试人员进行接口测试。同时,还提供了Github链接和具体的步骤,包括创建WebApi工程、引入swagger的包、配置XML文档文件和跨域处理。通过本文,读者可以了解到如何使用Swagger生成接口文档,并加深对Swagger的理解。 ... [详细]
  • springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
    作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Hello.js 是一个用于连接OAuth2服务的JavascriptRESTFULAPI库,如Go ... [详细]
author-avatar
他给我留下的美好_813
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有