转发和重定向的后续代码的执行情况
问题:在Servlet的service()方法和Filter的doFilter()方法中,我们可能会用到转发和重定向,那么在转发和重定向的代码执行后,其后续的代码是否还执行呢?
答:会执行。
原因: 重定向只是向response中添加了一条重定向地址,并不会立即响应给浏览器,只有当doFilter()或者service()执行完毕才会将响应信息封装起来发送给浏览器; 同理,当执行请求转发时,会先到转发页面执行,执行完毕后返回继续执行后续代码,直到方法执行结束。
总结:服务器接收到请求,会先后执行Filter的doFilter()方法和Servlet的service()方法,只有当doFilter()方法或service()方法执行完毕后,才会将响应信息封装起来发送给浏览器。执行完毕的情况包括:正常执行完、遇到return、发生异常;我们可以根据实际的业务情况将转发和重定向与return搭配使用。
共有 0 条评论