拦截去阻止请求后,返回给前端状态,然后前端跳转/处理;

response.sendError() 或 response.sendRedirect();都只适用于前后台部署在一起的项目;要借助内置模板完成.

如果前后台分离,或使用前端渲染,前后台只用json交互的项目就不适合了;

这时需要后台拦截器返回拦截原因/状态码,ajax会在success里面接收到这个响应信息;

这里有一个坑,我被自己坑惨了,应为我前端已经设置过ajax默认的接收到的数据都以json来解析,所以当返回了普通字符串的时候

这个响应消息会在error(xhr)    xhr.responseText这个对象中;我忘记了这一点,而拦截的结果有返回json字符串的有返回普通字符串的所以,ajax的结果就是,一会error,一会success,也是醉了

忘了说针对于ajax异步请求,拦截器阻止后返回消息要使用哪种方法了,那就是:

response.getWrite().write("{\"a":1,"b":2}");这种了   ## 这种也不支持跨域,只适合前后台同意容器,使用ajax  json  交互前端渲染的模式

至于  使用PrintWrite还是ServelteOutputStream,

  使用print()还是write()的,看自己响应的消息形式了;

如果只返回字符串response.getWrite().write();就可以了;

如果返回二进制数据....或者需要字节流传输的再改.

 posted on 2018-08-14 15:16  KeepLearning_j  阅读(381)  评论(0)    收藏  举报