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()方法,销毁实例。