Ajax接收Java异常_java – 处理来自Servlet的Jquery AJAX响应中的异常
我的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响应中的异常相关推荐
- java 手动抛异常_Java如何在没有throws签名的函数中手动抛出异常
如果想在方法中抛出异常,像下面这样直接throw是不行的.public void test() { throw new Exception(); } 这时编译器会给我们一个错误: Error:(101 ...
- java.线程池 线程数_如何在线程“ main”中修复异常java.lang.NoClassDefFoundError:Java中的org / slf4j / LoggerFactory...
java.线程池 线程数 此错误表示您的代码或您在应用程序中使用的任何外部库都在使用SLF4J库 (一个开放源代码日志记录库),但无法找到所需的JAR文件,例如slf4j-api-1.7.2.jar因 ...
- jquery ajax post 415,415不支持的媒体类型jQuery Ajax
我正在使用Maven Rest API.通过jQuery Ajax调用发出POST请求时,出现415错误.请看一下我的代码. function getUserDetails() { var name ...
- c如何接收java指令_java指令和javac指令总结
假如在D:\Java存放了两个java源文件:MyJava.java,Fighting.java MyJava.java如下: public class MyJava { public static ...
- 调用ajax后页面为什么会刷新,为什么页面在JQuery ajax调用之后重新加载?
根:Create.php 根/资源/ JS:ajaxLibrary.js 在我create.php文件我有一个看起来像这样的形式: Create 我ajaxLibrary.js看起来是这样的: fun ...
- JAVA捕捉输入格式异常_Java学习(四).异常处理
异常处理 任何一个软件或程序都可能在运行的过程中出现故障,问题的关键是故障出现以后如何处理?谁来处理?怎样处理?处理后系统能否恢复正常的运行?本章在介绍Java处理这类问题基本方法的基础上,讨论包含异 ...
- jquery ajax示例_jQuery AJAX JSP Servlet Java示例
jquery ajax示例 Ajax in Java JSP Servlet based web applications are very common. Recently I have writt ...
- HBase中此类异常解决记录org.apache.hadoop.ipc.RemoteException(java.io.IOException):
HBase中此类异常解决记录org.apache.hadoop.ipc.RemoteException(java.io.IOException): 参考文章: (1)HBase中此类异常解决记录org ...
- Ajax接收并显示后台传来的list集合内的数据信息
最近在学习Ajax做一个留言系统的时候碰到需要将list集合从后台传到前台ajax接收并显示的情况,在网上搜了很多,但很多情况都不是和我遇见的情况一样的,现在,直接贴出我的问题及解决方法. 后台代码: ...
最新文章
- leetcode--整数反转--python
- lokijs可以用mysql_JavaScript实现的内存数据库LokiJS介绍和入门实例_javascript技巧
- delphi7存储过程传入数组_C++中的指针、数组指针与指针数组、函数指针与指针函数...
- java中每个类都有子类,Java中所有的类都是从( )类或其子类派生而来的。
- 私有网络解决方案Start9 Labs完成120万美元融资,以推动其硬件Embassy后续发展
- JS仿淘宝网顶部的导航菜单
- 数据可视化分析工具评测: DataEase (开源新贵)VS.帆软 FineBI(老牌产品)
- a3图纸标题栏尺寸标准_标准CAD制图上A3图幅上的标题栏尺寸是多少
- 场内场外交易成本_场内基金与场外基金交易手续费是多少?怎么算?
- token登录最详细代码实例
- nao机器人国际比赛程序 python编写
- 机械臂matlab运动学仿真,matlab建立机械臂运动学仿真
- 搭建一个简单的react工程
- Leetcode 1022:从根到叶的二进制数之和(超详细的解法!!!)
- 【论文笔记】SOTR: Segmenting Objects with Transformers
- XM6748F-IDK TMS320C6748+FPGA高速数据采集处理平台
- 电子硬件1.DTE/DCE/DB9
- 101. 最高的牛(差分)
- WordPress 头像修改【转载】
- mysql php b s_PHP-- B/S结构