Java 如何将消息从HttpServletResponse.sendError(状态,msg)传递给控制器?
这是当前的java(1.8)spring调用堆栈Java 如何将消息从HttpServletResponse.sendError(状态,msg)传递给控制器?,java,spring,Java,Spring,这是当前的java(1.8)spring调用堆栈 拦截器 preHandle(HttpServletRequest请求,HttpServletResponse响应){ 响应。发送错误(403) } web.xml 403 /错误/禁止 误差控制器 @RequestMapping(value=“/error/probled”) 禁用公共模型和视图(){ //在web浏览器中显示固定消息“禁止” } 现在在拦截器中,我想发回定制的消息, preHandle(HttpServletRequest、
preHandle(HttpServletRequest请求,HttpServletResponse响应){
响应。发送错误(403)
}
403
/错误/禁止
@RequestMapping(value=“/error/probled”)
禁用公共模型和视图(){
//在web浏览器中显示固定消息“禁止”
}
preHandle(HttpServletRequest、HttpServletResponse){
response.senderro(403,“我的消息”)
}
控制器更改为
`@RequestMapping(value="/error/forbidden")
public ModelAndView forbidden (HttpServletRequest request, HttpServletResponse response)`
问题是,当我调试控制器代码时,我还无法从response obj中找到“my msg”
问题1:我这样做对吗
问题2:如果是的话,“我的味精”在回复中的什么位置?如果没有,正确的方法是什么?如果您想通过拦截器的预处理方法发送自定义消息,请尝试下面的代码
response.setStatus(403);
response.getWriter().write("my msg");
非常有趣,我确实在浏览器中看到了“my msg”,但它没有命中errorController(我问题中的步骤3)。好奇的是,还有什么方法可以命中errorController,并且“my msg”在响应对象中?我认为如果从Interceptor中的preHandle方法引发异常,它不会命中任何控制器。Thx,顺便问一下,我可以在响应中使用UTF-8字符串。getWriter().write()?