重定向
1.状态码:3022.响应头:‘location’代表重定向的地址例: response.setatus(302); response.setHeader("location","/web/servlet2");释:进入“servlet1”,他会自动跳转到“servlet2”。 运行过程:首先进入“servlet1”他会告知浏览器需要跳转到“servlet2”,所以他会再次访问“servlet2”,不过访问之前他会先返回上一个页面,且url地址栏的值会变。* response.sendRedirect("/web/servlet2");//同上面的功能一样,这是封装好的方法(重定向的方法)重定向的特点:1.url地址栏的值会变,变成我们所填的地址(/web/servlet2)。2.不会携带request过去3.是经过两次访问
转发
例:request.setAttribute("name","zhangsan"); RequestDispatcher dispatcher = request.getRequestDispatcher("/servlet2"); dispatcher.forward(request, response);//执行转发释:访问“servlet1”会自动跳转到“servlert2”,且“servlet2”能成功获取“name”的值,url地址不发生变化。 运行过程:首先进入“servlet1”,他会告知浏览器需要跳转到“servlet2”,所以他会再次访问“servlert2”,但是他是直接从“servlet1”中跳到“servlet2”。*request.getRequestDispatcher(转发的地址).forward(request,response);//同上面的方法一样,这是封装号的方法(转发的方法)转发的特点:1.url地址栏不会变2.会携带request过去3.是经过一次访问
----------------------------------------------------------------------------------------------------------*转发与重定向的区别:1.重定向两次请求,转发一次请求2.重定向地址栏的地址变化,转发不变3.重定向可以访问外部网站,转发只能访问内部资源4.转发的性能要优于重定向