DWR异常情况处理常见方法解析
在本次项目中,由于时间紧张直接使用DWR做Ajax请求!要求的是动态展示,那就需要使用DWR轮询请求,但是需要做异常情况下的一些处理!
特别是DWR在遇到异常后,后台不报错,前台也只提示一个 Error !如果是轮询的话,那么就一直弹出 Error ,那谁收到了呀!
对于DWR异常的处理,网上一大片都是这样说的,在DWR配置中增加一个转换器,将异常转换为一般异常,这样在前台就不是提示 Error,而是提示具体的错误!想着这样也可以接受,所以我记一下是怎么配置的。
很简单,在dwr.xml中增加一个转换器:
<convert converter="bean" match="java.lang.StackTraceElement" />
<convert converter="exception" match="java.lang.Exception" />
这样前台就会提示一些具体的异常信息,但是不会提示栈的信息的。不然我会更受不了的!
其实对于我的请求来说,如果产生dwr异常,我不用做处理是最好的。因为在使用ajax前我会首先判断网络是否可用,然后在后台把异常给处理好。所以要做的,就是处理掉dwr弹出提示内容!
要做到这个也不难,那就是得到 engine.js 文件,然后在引用dwr这个公共文件时引用自己的文件。
<script type='text/javascript' src='/dwr/dwr/engine.js'></script>
改为:
<script type='text/javascript' src='engine.js'></script>
然后查询下这个文件里面做弹出的内容,把弹出给注释了,就这么简单:
就像下面一样:
/** * The default message handler. * @see getahead.org/dwr/browser/engine/errors */ dwr.engine.defaultErrorHandler = function(message, ex) { dwr.engine._debug("Error: " + ex.name + ", " + ex.message, true); if (message == null || message == ""){} //alert("A server error has occured."); // Ignore NS_ERROR_NOT_AVAILABLE if Mozilla is being narky else if (message.indexOf("0x80040111") != -1) dwr.engine._debug(message); else{} //alert(message); };
这样dwr就算异常,也不会进行提示的,但是主要自己处理后台可能发生的异常就行了!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Spring Boot启动过程(六)之内嵌Tomcat中StandardHost、StandardContext和StandardWrapper的启动教程详解
StandardEngine[Tomcat].StandardHost[localhost]的启动与StandardEngine不在同一个线程中,它的start: // Start our child containers, if any Container children[] = findChildren(); List<Future<Void>> results = new ArrayList<>(); for (int i = 0; i < childre
-
基于JQuery和DWR实现异步数据传递
后台我用DWR进行异步数据传递: 代码很简单,就是返回一个数组,如果需求不同可以自己修改: package org.dwr.re; /** * 测试 返回数组 * @author 崔素强 */ public class BackArray { public String[] backArr() { String[] arr = new String[] { "坚持", "就是", "胜利" }; return arr; } } 前台记得导入DWR
-
Java 中的 BufferedWriter 介绍_动力节点Java学院整理
BufferedWriter 介绍 BufferedWriter 是缓冲字符输出流.它继承于Writer. BufferedWriter 的作用是为其他字符输出流添加一些缓冲功能. BufferedWriter 函数列表 // 构造函数 BufferedWriter(Writer out) BufferedWriter(Writer out, int sz) void close() // 关闭此流,但要先刷新它. void flush() // 刷新该流的缓冲. void newLine()
-
PipedWriter和PipedReader源码分析_动力节点Java学院整理
PipedWriter和PipedReader源码分析 1. PipedWriter 源码(基于jdk1.7.40) package java.io; public class PipedWriter extends Writer { // 与PipedWriter通信的PipedReader对象 private PipedReader sink; // PipedWriter的关闭标记 private boolean closed = false; // 构造函数,指定配对的PipedRea
-
DWR中各种java方法的调用
DWR是一个框架,简单的说就是能够在javascript直接调用java方法,而不必去写一大堆的javascript代码.它的实现是基于ajax的,可以实现无刷新效果. 网上有不少DWR的例子,但大都只是某种方法的调用,本文只在使用层面上介绍DWR,并不涉更多的技术与设计,其目的是让初学者能够很快的学会各种java方法在javascript中是如何调用的. 一.dwr配置篇之web.xml 1.最小配 <servlet> <servlet-name>dwr-invoker</
-
Java DWR内存泄漏问题解决方案
机器跑了一晚上,发现有崩溃现象,由于页面内有动态绘图功能,我怀疑是绘图原因,但是今天上午有人提醒我才想到,是不是间隔调用时DWR产生了内存泄漏问题? 网上查了一下貌似大家都在讨论这个问题,之前我也挺老手说过DWR有内存问题,可是没有遇到过.原来DWR在间隔调用这种情况下会有问题! 按照大家的说法,修改engine.js配置文件来解决问题,目前我也修改了一下,修改方法如下: 在 dwr.engine._sendData = function(batch) {} 内有,这样几行代码: // Get
-
Java多线程 ReentrantReadWriteLock原理及实例详解
读写锁ReentrantReadWriteLock概述 读写锁ReentrantReadWriteLock,使用它比ReentrantLock效率更高. 读写锁表示两个锁,一个是读操作相关的锁,称为共享锁:另一个是写操作相关的锁,称为排他锁. 1.读和读之间不互斥,因为读操作不会有线程安全问题 2.写和写之间互斥,避免一个写操作影响另外一个写操作,引发线程安全问题 3.读和写之间互斥,避免读操作的时候写操作修改了内容,引发线程安全问题 多个Thread可以同时进行读取操作,但是同一时刻只允许一个
-
java并发编程专题(七)----(JUC)ReadWriteLock的用法
前面我们已经分析过JUC包里面的Lock锁,ReentrantLock锁和semaphore信号量机制.Lock锁实现了比synchronized更灵活的锁机制,Reentrantlock是Lock的实现类,是一种可重入锁,都是每次只有一次线程对资源进行处理:semaphore实现了多个线程同时对一个资源的访问:今天我们要讲的ReadWriteLock锁将实现另外一种很重要的功能:读写分离锁. 假设你的程序中涉及到对一些共享资源的读和写操作,且写操作没有读操作那么频繁.在没有写操作的时候,两个线
-
DWR异常情况处理常见方法解析
在本次项目中,由于时间紧张直接使用DWR做Ajax请求!要求的是动态展示,那就需要使用DWR轮询请求,但是需要做异常情况下的一些处理! 特别是DWR在遇到异常后,后台不报错,前台也只提示一个 Error !如果是轮询的话,那么就一直弹出 Error ,那谁收到了呀! 对于DWR异常的处理,网上一大片都是这样说的,在DWR配置中增加一个转换器,将异常转换为一般异常,这样在前台就不是提示 Error,而是提示具体的错误!想着这样也可以接受,所以我记一下是怎么配置的. 很简单,在dwr.xml中增加一
-
Java中异常打印输出的常见方法总结
前言 Java异常是在Java应用中的警报器,在出现异常的情况下,可以帮助我们程序猿们快速定位问题的类型以及位置.但是一般在我们的项目中,由于经验阅历等多方面的原因,依然有若干的童鞋在代码中没有正确的使用异常打印方法,导致在项目的后台日志中,没有收到日志或者日志信息不完整等情况的发生,这些都给项目埋下了若干隐患.本文将深入分析在异常日志打印过程中的若干情况,并给出若干的使用建议. 1. Java异常Exception的结构分析 我们通常所说的Exception主要是继承于Throwable而来,
-
java避免死锁的常见方法代码解析
死锁 索是一个非常有用的工具,运用场景非常多,因为它使用起来非常简单,而且易于理解.但同时它也会带来一些困扰,那就是可能会引起死锁,一旦产生死锁,就会造成系统功能不可用.让我们先来看一段代码,这段代码会引起死锁,使线程 thread_1 和线程 thread_2 互相等待对方释放锁. package thread; public class DeadLockDemo { private static String A = "A"; private static String B = &
-
用Python解析XML的几种常见方法的介绍
一.简介 XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用.它是web发展到一定阶段的必然产物,既具有SGML的核心特征,又有着HTML的简单特性,还具有明确和结构良好等许多新的特性. python解析XML常见的有三种方法:一是xml.dom.*模块,它是W3C DOM API的实现,若需要处理DOM API则该模块很适合,注意xml.dom包里面有许多模块
-
java之StringBuffer常见使用方法解析
StringBuffer 当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类. 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象. StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问). 由于 StringBuilder 相较于 String
-
Python实现解析命令行参数的常见方法总结
目录 简介 基本形式 3种常见的获取和解析命令行参数的方法 sys.argv案例 案例源码1 案例源码2 案例1 案例2 案例3 案例4 简介 除ide的执行方式外,命令行的方式执行Python脚本是参数化程序执行的一种常见且简单的方法,正确处理命令行参数,可以提供给包含某种参数化信息的程序或脚本的参数.例如处理目录或者文件通常作为命令行参数传递给脚本,用于使程序可以处理不同图片或者不同类型文件. 基本形式 python main.py -a v1 -b v2 ... 3种常见的获取和解析命令行
-
Python常见异常分类与处理方法
Python常见异常类型大概分为以下类: 1.AssertionError:当assert断言条件为假的时候抛出的异常 2.AttributeError:当访问的对象属性不存在的时候抛出的异常 3.IndexError:超出对象索引的范围时抛出的异常 4.KeyError:在字典中查找一个不存在的key抛出的异常 5.NameError:访问一个不存在的变量时抛出的异常 6.OSError:操作系统产生的异常 7.SyntaxError:语法错误时会抛出此异常 8.TypeError:类型错误,
-
jquery操作select常见方法大全【7种情况】
本文实例讲述了jquery操作select常见方法.分享给大家供大家参考,具体如下: 在前段HTML页面设计中select 下拉框,或者 在 multiple="multiple" 时,表现为列表.经常会在页面上对其进行操作,这些操作不外乎: 1. 得到选中的 select 的 option 的值或者text. 2. 删除选中的 select 的 option. 3. 向select中增加新的option. 4. 得到select option 长度,也就是个数size 5. 清空se
-
axios对请求各种异常情况处理的封装方法
前端采用了axios来处理网络请求,为了避免在每次请求时都去判断各种各样的网络情况,比如连接超时.服务器内部错误.权限不足等等不一而足,我对axios进行了简单的封装,这里主要使用了axios中的拦截器功能. 封装后的网络请求工具js如下 import axios from 'axios' import { Toast } from 'mint-ui' //请求时的拦截 axios.interceptors.request.use(config => { return config; }, er
-
java常见log日志的使用方法解析
目录 前言 1. Java.util.Logger 2. org.apache.logging.log4j 3. org.slf4j.Logger 前言 log日志可以debug错误或者在关键位置输出想要的结果 java日志使用一般有原生logger.log4j.Slf4j等 一般的日志级别都有如下(不同日志不一样的方法参数,注意甄别) 参数 描述 OFF.ON 不输出或者输出所有级别信息,通常使用在setLevel方法中 FATAL 致命错误 ERROR 错误error WARN 告警信息 I
随机推荐
- oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
- 使用vue编写一个点击数字计时小游戏
- AngularJS实践之使用ng-repeat中$index的注意点
- Base64加解密的实现方式实例详解
- Asp.net使用SignalR实现消息提醒
- 最近Python有点火? 给你7个学习它的理由!
- 常用jQuery选择器汇总
- Java的JNI快速入门教程(推荐)
- Java链接redis_动力节点Java学院整理
- C++ 冒泡排序数据结构、算法及改进算法
- php中array_slice和array_splice函数解析
- Pclxav木马猎手第一代特征码引擎源代码
- Android开发之资源目录assets与res/raw的区别分析
- C#获取U盘序列号的方法
- iOS本地推送简单实现代码
- firefox事件处理之自动查找event的函数(用于onclick=foo())
- C# 设计模式系列教程-桥接模式
- 基于Android扫描sd卡与系统文件的介绍
- 在Windows环境下使用MySQL:实现自动定时备份
- Java对象在JVM中的生命周期详解