转发是服务器行为,重定向是客户端行为。
转发的特点:
①转发地址路径不变
②转发只能访问当前服务器下的资源
③转发是一次请求,可以使用request对象来共享数据
重定向特点:
①地址栏发生变化
②重定向可以访问其他站点(服务器)的资源
③重定向是两次请求,不能使用request对象来共享数据
④重定向是客户端的行为,web服务器接收到该请求会发送一个状态码(302)
Java代码实现转发案例:
实现功能:将request5资源转发到request6。
实现方式:
request.getRequestDispatcher("/request6").forward(request,response); //资源转发
request.setAttribute("name","hhh1");//资源存储
request.getAttribute("name");//获取转发存储资源
访问一下:request5看一下结果
地址栏结果:
控制台打印结果:
转发到百度首页看一下效果:
Java实现重定向案例
实现responseDemo1资源重定向responseDemo2资源
实现方式:
response.sendRedirect(“/servlet/responseDemo2”) ;//实现本地重定向,功能与
response.setStatus(302); response.setHeader("location","/servlet/responseDemo2");
类似。都可以实现对本地服务器的重定向。
访问一下responseDemo1查看一下结果
地址栏结果:
控制台结果:
重定向百度首页看一下效果:
总结:
转发:可以用于实现资源共享。
重定向:可以用于实现页面跳转,类似与location.href。