转发和重定向的区别
(1)问题分析
考官主要是针对你对javaweb页面跳转技术的考核,如:获取servlet转发和响应重定向的方式?
(2)核心答案解析
1)重定向是浏览器发送请求并受到响应以后再次向一个新地址发请求;转发是服务器受到请求后为了完成响应转到一个新的地址。
2)重定向中有两次请求对象,不共享数据;转发只产生一次请求对象且在组件间共享数据。
3)重定向后地址栏地址改变;而转发则不会。
4)重定向的新地址可以是任意地址;转发的新地址必须是同一个应用内的某地址。
(3)问题扩展
获取servlet的转发和响应重定向的方式?
转发的方法:
1)通过HttpServletRequest的getRequestDispatcher()方法获得
2)通过ServletContext的getRequestDispatcher()方法获得
重定向的方法:
3)HttpServletResponse的sendRedirect()方法。
(4)结合项目使用
重定向可以实现图片的异步上传。
一般访问web-inf下面文件,只能通过转发来实现