我的servlet代码是

try{

//something

response.setStatus(201);

out.print("Data successfully saved");

}

catch(SomeException e){

response.sendError(400, e.getMessage());

}

我的JQuery Ajax函数有成功和错误块,如下所示:

$.ajax({

type:'POST',

data: {

//some data to be passed

},

dataType: 'text',

url:'AjaxController',

success: function(response){

alert(response);

},

error: function(jqXHR, textStatus, message) {

//error handling

},

complete: function(){

//window.location.reload(true);

}

});

servlet中的异常可以有不同的消息,所以我的目的只是将状态代码和消息传递给客户端,以便它可以在一个范围内显示.

如果成功,成功块正在接收响应,我看到我在out.print()中写的任何内容都在其中.

但是如果出现错误显示消息,我有两个选择:

>将成功写入out.print并在Ajax函数中成功阻止,使用状态代码编写多个检查,并决定是显示成功消息还是错误消息.

我并不赞成这一点,因为我感觉它紧密耦合,并且仍然在执行成功操作时执行错误的请求或异常.

>使用response.sendError(status_code :: int,e.getMessage():: String)

即使这确保调用Ajax中的错误块,但是sendError API创建了一个HTML页面,放入我的消息并发送它,我无法直接访问它.所以在AJAX中,我将被迫编写一个解析器来获取异常消息.这在我看来也不是NO.

我该如何实现这种异常处理?

我试图以最好的方式解释,如果需要更多信息,请告诉我.它是一个简单的API,客户端使用表单数据调用servlet,表单数据在服务器中创建/更新,或者在某些条件不匹配时失败.并且在一个范围内,在同一表单页面中显示该成功或异常信息.

解决方法:

我试过这个,发现状态400的异常现在进入错误块,我能够在错误块内部用jqXHR.responseText检索消息.我已经做了:

response.setStatus(400);

out.print(e.getMessage());

out.flush();

标签:java,jquery,ajax,exception,servlets

来源: https://codeday.me/bug/20190829/1758286.html

Ajax接收Java异常_java – 处理来自Servlet的Jquery AJAX响应中的异常相关推荐

  1. java 手动抛异常_Java如何在没有throws签名的函数中手动抛出异常

    如果想在方法中抛出异常,像下面这样直接throw是不行的.public void test() { throw new Exception(); } 这时编译器会给我们一个错误: Error:(101 ...

  2. java.线程池 线程数_如何在线程“ main”中修复异常java.lang.NoClassDefFoundError:Java中的org / slf4j / LoggerFactory...

    java.线程池 线程数 此错误表示您的代码或您在应用程序中使用的任何外部库都在使用SLF4J库 (一个开放源代码日志记录库),但无法找到所需的JAR文件,例如slf4j-api-1.7.2.jar因 ...

  3. jquery ajax post 415,415不支持的媒体类型jQuery Ajax

    我正在使用Maven Rest API.通过jQuery Ajax调用发出POST请求时,出现415错误.请看一下我的代码. function getUserDetails() { var name ...

  4. c如何接收java指令_java指令和javac指令总结

    假如在D:\Java存放了两个java源文件:MyJava.java,Fighting.java MyJava.java如下: public class MyJava { public static ...

  5. 调用ajax后页面为什么会刷新,为什么页面在JQuery ajax调用之后重新加载?

    根:Create.php 根/资源/ JS:ajaxLibrary.js 在我create.php文件我有一个看起来像这样的形式: Create 我ajaxLibrary.js看起来是这样的: fun ...

  6. JAVA捕捉输入格式异常_Java学习(四).异常处理

    异常处理 任何一个软件或程序都可能在运行的过程中出现故障,问题的关键是故障出现以后如何处理?谁来处理?怎样处理?处理后系统能否恢复正常的运行?本章在介绍Java处理这类问题基本方法的基础上,讨论包含异 ...

  7. jquery ajax示例_jQuery AJAX JSP Servlet Java示例

    jquery ajax示例 Ajax in Java JSP Servlet based web applications are very common. Recently I have writt ...

  8. HBase中此类异常解决记录org.apache.hadoop.ipc.RemoteException(java.io.IOException):

    HBase中此类异常解决记录org.apache.hadoop.ipc.RemoteException(java.io.IOException): 参考文章: (1)HBase中此类异常解决记录org ...

  9. Ajax接收并显示后台传来的list集合内的数据信息

    最近在学习Ajax做一个留言系统的时候碰到需要将list集合从后台传到前台ajax接收并显示的情况,在网上搜了很多,但很多情况都不是和我遇见的情况一样的,现在,直接贴出我的问题及解决方法. 后台代码: ...

最新文章

  1. leetcode--整数反转--python
  2. lokijs可以用mysql_JavaScript实现的内存数据库LokiJS介绍和入门实例_javascript技巧
  3. delphi7存储过程传入数组_C++中的指针、数组指针与指针数组、函数指针与指针函数...
  4. java中每个类都有子类,Java中所有的类都是从( )类或其子类派生而来的。
  5. 私有网络解决方案Start9 Labs完成120万美元融资,以推动其硬件Embassy后续发展
  6. JS仿淘宝网顶部的导航菜单
  7. 数据可视化分析工具评测: DataEase (开源新贵)VS.帆软 FineBI(老牌产品)
  8. a3图纸标题栏尺寸标准_标准CAD制图上A3图幅上的标题栏尺寸是多少
  9. 场内场外交易成本_场内基金与场外基金交易手续费是多少?怎么算?
  10. token登录最详细代码实例
  11. nao机器人国际比赛程序 python编写
  12. 机械臂matlab运动学仿真,matlab建立机械臂运动学仿真
  13. 搭建一个简单的react工程
  14. Leetcode 1022:从根到叶的二进制数之和(超详细的解法!!!)
  15. 【论文笔记】SOTR: Segmenting Objects with Transformers
  16. XM6748F-IDK TMS320C6748+FPGA高速数据采集处理平台
  17. 电子硬件1.DTE/DCE/DB9
  18. 101. 最高的牛(差分)
  19. WordPress 头像修改【转载】
  20. mysql php b s_PHP-- B/S结构

热门文章

  1. SVN优化(一) SVN忽略maven项目的target
  2. CentOS6安装nodejs
  3. Linux 运维常用命令 find、awk、sed、grep、vi、ps、lsof、rpm
  4. 判断某数组是不是二叉树的前序遍历序列 python递归
  5. ServletContext讲解
  6. 文本框可编辑查看页面
  7. “Attention is All You Need 翻译
  8. tf.reduce_sum()函数
  9. CPU架构的llvm后端
  10. Clang:LLVM 的 C 语言家族前端