Servlet三种转发方式的区别

xiaoxiao2021-03-01  37

在使用Servlet处理请求转发时,一般有三种方法。 1.response.sendRedirect("url"); 2.request.getRequestDispatcher("url").include(request,response); 3.request.getRequestDispatcher("url").forward(request,response); 第一种方法称之为“重定向”,是通过response对象发送给浏览器一个url地址,从sendRedirect的英文意思就能看出。浏览器根据url请求一个新的页面,所有的业务处理都转到下一个页面,地址栏的地址会变发生改变。 第二种方法和第三种方法是通过request对象,Dispatch有调度的意思,我将之理解为资源的调度,是通过request对象调度适用的资源来处理业务,并没有使用response对象给浏览器任何应答,所以处理仍然在当前的页面进行,地址栏的地址不会改变。而两种方法的具体区别在于,include和forward。 include意为包含,即包含url中的内容,进一步理解为,将url中的内容包含进当前的servlet当中来,并用当前servlet的request和respose来执行url中的内容处理业务.所以不会发生页面的跳转,地址栏地址不会发生改变。 forward意为转发,即将业务交给指定的url执行,但使用的是当前servlet的request和response对象.并没有表示页面的跳转,所以地址栏的地址不会发生改变。
转载请注明原文地址: https://www.6miu.com/read-3449951.html

最新回复(0)