请求重定向:
response.sendRedirect("main.jsp");
相当于两次请求,改变URL,变成重定向之后的URL;并且没有参数传递,到达重定向的页面不能获得参数和传递参数,不能通过request.getParameter("a")
来取值,必须是要通过session或者application等取值
请求转发:
1、request.getRequestDispatcher("main.jsp").forward(request,response);
2、RequestDispatcher rd=request.getRequestDispatcher("amin.jsp"); rd.forward(request,response);
相当于一次请求,不改变URL;转发后会保存请求对象,可以通过request.getParameter("a");
来取值;属于服务器内部转发
栗子:
重定向:找A借铅笔,A说没有,又去问B借,B有铅笔,然后我们会说是B借的铅笔(改变URL,变为后面的URL,有两次请求)
转发:找A借铅笔,A其实是没有铅笔的,但是他接受了我的请求,然后找B借铅笔来给我们,然后我们只知道是A借给我们的铅笔,对外就会说是A借的铅笔(URL不变,只有一次请求)