之前知道forward后地址栏地址不变,redirect后地址了那会发生变化
但是今天遇到一个问题,forward和redirect后,其后的代码段还会继续执行吗?
redirect
- redirect 后,确认了要跳转的页面的 url,继续执行 redirect 下面的代码
 - 执行完后,断开当前的与用户所发出的请求连接,即断开 request 的引用指向
 - request 里存放的信息也会丢失
 - 然后再与用户建立新的请求连接,即创建新的 request 对象,地址栏地址变成新的页面的地址
 
forward
- forward后,确认了要跳转的页面的 url,停止继续执行后面的代码
 - 先执行要跳转url里的代码
 - 执行完毕后,再回来继续执行当前页面的代码
 - 这期间二者共享一个 request 和 response 对象
 - 这个过程,最后还是执行的原来的servlet,所以地址栏的地址不会变化
 
以登陆为例
页面
1  | <form action="CheckUser" method="post">  | 
check的servlet
1  | String username = request.getParameter("username");  | 
success的servlet
1  | PrintWriter out = response.getWriter();  | 
false的servlet
1  | PrintWriter out = response.getWriter();  | 
运行结果
1  | ---- this is success servlet end ----  |