filter---异常处理机制之用户提示


1. 客户端处理(接收、弹出错误消息)

//2.1请求后台

$.ajax({

url:url,

dataType:"json",

data:data,

beforeSend:function(){

$('#loading').show();

},

complete:function(){

$('#loading').hide();

},

success:displayType

});

Function displayType(data){

//data 为服务器响应结果(正确/错误消息)

If(data.state == 0){

//成功

...数据处理

}else{

//错误

Alert(“后台异常!”);//简单提示错误

}

}

2. 服务端处理(监听、抛出错误消息)

原理:Filter做异常监听,错误消息处理

public class ExceptionFilter implements Filter {

public void doFilter(ServletRequest request, ServletResponse 

response, FilterChain filterChain) throws IOException, ServletException {

try {

filterChain.doFilter(request, response);

}catch(Throwable exception) {

//异常处理,并对ajax做出响应

if (request instanceof HttpServletRequest 

&& response instanceof HttpServletResponse) {

exceptionHandle((HttpServletRequest)request, (HttpServletResponse)response, exception);

}else {

throw new ServletException(exception);

}

}

}

private void exceptionHandle(HttpServletRequest request, 

HttpServletResponse response, Throwable exception) 

throws IOException, ServletException {

//抛出错误消息

String content = 错误消息;

PrintWriter out = response.getWriter();

 out.println(content);

out.flush();

out.close();

}

}

时序图:

Filter 概念,用法,配置等内容过于简单,此文档略过,有疑问可以百度查找。

3. 充电时刻(过滤器的生命周期)

过滤器的生命周期:(一定要实现javax.servlet包的Filter接口的三个方法init()doFilter()destroy(),空实现也行) 
(1)、启动服务器时加载过滤器的实例,并调用init()方法来初始化实例; 
(2)、每一次请求时都只调用方法doFilter()进行处理; 
(3)、停止服务器时调用destroy()方法,销毁实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绿竹痕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值