我的学习笔记
#本笔记纯属个人理解,难免会有狭义,缺漏之处。希望大家多多指点。
第一章 servlet的重定向与转发
这是我在学习中遇到的问题,一直以来对这个概念都是比较模糊的,所以我打算将这个概念梳理一下,总结一下,方便以后回顾。
转发
servlet的转发是通过request.getRequestDispacther()方法来实现转发的,一次请求,在本页面跳转,共用一个request,不更改url。整个过程是一个请求,一个响应。转发可以访问WEB-INF下的文件。
如:request.getRequestDispatcher("/WEB-INF/index.jsp").forward(req, resp);
重定向
servlet的重定向是通过response.sendRedirect()方法来实现的,与转发不同,servlet处理完之后遇到sendRedirect()方法并不是直接跳转到指定的页面,而是告诉浏览器你要自己去访问指定的页面,这时候浏览器会再发出一次请求,访问指定的页面。这样,一次重定向就产生了两次请求,两次响应,当然也产生了两个request对象,所以在重定向后的页面是不能直接获取前一个request里的数据的。因为第二次请求是从客户端发来的,所以不可以直接访问WEB-INF中的内容的。
如:resp.sendRedirect("…/login.jsp");