重新过一遍javaweb,有些细节问题之前没注意过印象也不深,现在重新记录一遍。
重定向:客户端行为,通过response.sendRedirect()实现
转发:服务器行为,通过request.getRequestDispatcher().forward(req,resp)实现
区别:
- 路径不同
- 数据保存不同
- 请求次数不同
路径
重定向路径:重定向的过程是客户端->服务器(one.jsp)->客户端->服务器(two.jsp),所以重定向的路径是会变化的,路径中的根路径是不变的,但是jsp页面会由jsp1编程jsp2
例如由 http://localhost:8080/test_three/Login/one.jsp 转变成 http://localhost:8080/test_three/Login/tow.jsp
转发路径:转发的过程是客户端->服务器:(one.jsp->two.jsp),所以转发的路径是不变的,也就是路径会一直停在one.jsp
数据保存
重定向数据不保存,丢失
转发数据依然存在,不同jsp页面间数据可以共享
请求次数
重定向客户端向服务端请求两次
转发客户端向服务端请求一次