forward

是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,因为这个跳转过程实在服务器实现的,并不是在客户端实现的所以客户端并不知道这个跳转动作,所以它的地址栏还是原来的地址.
request.getRequestDispatcher("hzc.jsp").forward(request, response);

redirect

是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
`response.sendRedirect("hzc.jsp");

tips: forward是服务器行为,redirect是客户端行为。

区别

1. forward地址栏不改变,redirect地址栏改变。
2. forward转发页面和目标页面可以共享request域中的数据,redirect不可以共享数据。