- 浏览: 7944604 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
在rest中,其实如果要抛出异常或者给出出錯信息,返回的相关的HTTP 状态码,最简单的
方法就是使用ResponseEntity,马上看例子:
方法就是使用ResponseEntity,马上看例子:
@Controller public class EmpController { List<Employee> list = new ArrayList<Employee>(); //Steps followed in this code are: //1) Validate the input //2) Do processing //3) Return appropriate HTTP code and message. @RequestMapping(value = "/getEmp/{emp}", method = RequestMethod.GET) public ResponseEntity<?> getEmployee(@PathVariable("emp") int empid) { if(empid < 0) { return new ResponseEntity<String>("Employee Id is not valid.", HttpStatus.BAD_REQUEST); } for (Iterator<Employee> iterator = list.iterator(); iterator.hasNext();) { Employee emp = (Employee) iterator.next(); if(emp.getEmpId()==empid) { return new ResponseEntity<Employee>(emp,HttpStatus.OK); } } return new ResponseEntity<String>("Employee with id: " + empid + " not found.", HttpStatus.NOT_FOUND); } @RequestMapping(value = "/removeEmp/{emp}", method = RequestMethod.DELETE) public ResponseEntity<?> removeEmployee(@PathVariable("emp") int empid) { if(empid < 0) { return new ResponseEntity<String>("Employee Id is not valid.", HttpStatus.BAD_REQUEST); } for (Iterator<Employee> iterator = list.iterator(); iterator.hasNext();) { Employee emp = (Employee) iterator.next(); if(emp.getEmpId()==empid) { iterator.remove(); return new ResponseEntity<String>("Employee Successfully removed.", HttpStatus.OK); } } return new ResponseEntity<String>("Employee Not found.", HttpStatus.NOT_FOUND); } @RequestMapping(value = "/addEmp", method = RequestMethod.POST) public ResponseEntity<?> addEmployee(@RequestBody Employee emp) { if(emp.getEmpId() < 0) { return new ResponseEntity<String>("Employee Id is not valid.", HttpStatus.BAD_REQUEST); } if(StringUtils.isBlank(emp.getDeptName())) { return new ResponseEntity<String>("Department name is not valid.", HttpStatus.BAD_REQUEST); } for (Iterator<Employee> iterator = list.iterator(); iterator.hasNext();) { Employee tempEmp = (Employee) iterator.next(); if(tempEmp.getEmpId()==emp.getEmpId()) { return new ResponseEntity<String>("Employee already present. No need to add again", HttpStatus.OK); } } list.add(emp); return new ResponseEntity<String>("Employee Successfully Added", HttpStatus.OK); } @RequestMapping(value = "/updateEmp", method = RequestMethod.PUT) public ResponseEntity<?> updateEmployee(@RequestBody Employee emp) { if(emp.getEmpId() < 0) { return new ResponseEntity<String>("Employee Id is not valid.", HttpStatus.BAD_REQUEST); } if(StringUtils.isBlank(emp.getDeptName())) { return new ResponseEntity<String>("Department name is not valid.", HttpStatus.BAD_REQUEST); } for (Iterator<Employee> iterator = list.iterator(); iterator.hasNext();) { Employee tempEmp = (Employee) iterator.next(); if(tempEmp.getEmpId()==emp.getEmpId()) { tempEmp.setDeptName(emp.getDeptName()); return new ResponseEntity<String>("Employee Successfully updated", HttpStatus.OK); } } return new ResponseEntity<String>("Employee Not found.", HttpStatus.NOT_FOUND); } @ExceptionHandler public ResponseEntity<String> exceptionHandler(Exception e){ e.printStackTrace(); return new ResponseEntity<String>("An internal error occurred while processing your request.", HttpStatus.INTERNAL_SERVER_ERROR); } }
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1579方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 2019前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3473info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2236import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 490https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 691public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 611https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 671https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 438https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 5441 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3101微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 617https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1844什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 967本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1363原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 863public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 674在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 941-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 772一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1907介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
2. **异常处理**:在网络请求过程中可能会遇到各种异常,因此建议对可能出现的异常进行适当的捕获和处理。 3. **连接管理**:为了提高性能和资源利用率,应该在请求完成后及时释放连接资源。 #### 五、总结 本文...
3. **错误处理**:提供方便的异常处理机制,帮助开发者捕获和处理网络请求过程中可能出现的问题。 4. **异步支持**:可能提供了异步API调用的能力,使得开发者可以在不阻塞主线程的情况下获取数据。 在实际项目中,...
Jersey是Java语言中最流行的RESTful服务框架之一,由Sun Microsystems(现已被Oracle收购)开发。它实现了JAX-RS(Java API for RESTful Web Services)规范,为创建REST服务提供了简洁的API。 在"RestDemo"项目中...
本文将探讨如何在WCF中实现REST服务,重点介绍`UriTemplate`、`UriTemplateTable`和`WebHttpDispatchOperationSelector`这三个关键概念,并结合名为“JingyuanYu_ReservationService”和“JingyuanYu_...
本教程基于Django1.9以及restframework-v3.3.3版本,着重介绍了序列化、请求和响应处理、类视图、认证和权限、关联关系及超链接处理以及ViewSets和Routers的使用。 首先,在快速入门章节中,教程引导我们如何搭建一...
- **简单易用**:REST API通常使用HTTP标准方法(如GET、POST等),简化了客户端和服务端之间的交互。 - **轻量级**:无需复杂的协议栈,减少网络传输开销。 - **无状态**:每个请求都是独立的,不需要维护会话状态...
在Java世界中,实现RESTful服务最常用的库是JAX-RS,它是Java EE的一部分,提供了一套API来创建RESTful服务。JAX-RS规范有多个实现,例如Jersey、Apache CXF和RESTEasy。这些实现库帮助开发者轻松地将Java类映射到...
- **数据库无关性**:`Bookrest`支持多种数据库,包括MySQL、PostgreSQL、SQLite等,只需简单的配置即可切换数据库。 - **模型定义**:通过Python类定义数据模型,映射到数据库表,简化了数据库操作。 - **自动路由...
在实际项目中,可能还需要处理异常、添加权限控制、日志记录等其他功能。Spring MVC提供了丰富的注解和组件,使得构建REST接口变得非常方便和灵活。在"SpringMVC构建REST接口:第四篇 第一个REST风格的接口的源代码...
1. **API配置**:首先,你需要在致远OA的后台管理系统中配置REST接口,设定接口的URL、请求方法(POST、GET等)、参数类型等信息。这一步骤确保了外部系统可以通过这些接口与OA系统进行通信。 2. **构建请求参数**...
与SOAP相比,REST则更强调轻量级、简单且易于扩展的特点,它不是一种具体的协议或标准,而是一种架构风格,其核心思想是通过URI来指定资源,并使用HTTP方法(GET、POST、PUT、DELETE等)来执行操作。REST的主要优势...
REST架构风格强调无状态、客户端-服务器模型、缓存等原则,从而使得分布式系统更加简单、可扩展且易于维护。 #### 核心原则 - **无状态**:服务器不保存客户端会话状态,所有必要的状态都包含在请求中。 - **客户端...
在Java中,最常用的REST开发框架是JAX-RS(Java API for RESTful Web Services),它为创建RESTful服务提供了一套标准API。JAX-RS允许开发者使用注解来简化接口的定义,如`@Path`用于指定服务路径,`@GET`、`@POST`...
Java中实现REST服务最常用的框架是JAX-RS,它提供了一套标准API,使得开发者可以方便地创建RESTful接口。JAX-RS的实现有很多,比如 Jersey、RESTEasy 和 Apache CXF 等。在这个样例中,我们可能会使用其中的一个。 ...
在Java开发环境中,Eclipse是最常用的一款集成开发环境,这里提供的示例是使用Eclipse导出,方便开发者导入自己的项目中直接运行和学习。 环信主要提供即时通讯(IM)服务,其REST API涵盖了用户管理、会话管理、...
在RESTful架构中,POST、GET、PUT和DELETE是四个最基础的操作: 1. **POST**:用于创建新资源。在VC++中,你可以使用Winsock库或者CURL库来构建POST请求。你需要构造一个包含所有必要参数的数据包,并将其发送到...
**Jersey 项目** 和 JAX-RS(Java API for RESTful Web Services)是 Java 社区中最受欢迎的 RESTful Web 服务开发框架之一。 - **JAX-RS 规范**:定义了如何使用 Java 类和注解来实现 RESTful 服务。它允许开发者...
文章涵盖了从项目初始化到REST API开发、安全配置、消息转换、错误处理等多个方面。 ### 1. Bootstrap a Web Application with Spring 4 #### 1.1 概览 在构建基于Spring的应用程序时,首先需要创建一个基本的Web...