JSP---请求的转发和请求的重定向

     JSP请求转发 和重定向

1,请求的转发与请求重定向

  ①.请求转发的实现方式

    请求转发的实现需要用到RequestDispatcher接口,RequestDispatcher实例对象是由Servlet引擎创建的,它用于包装一个要被其他资源调用的资源(例如,Servlet、HTML文件、JSP文件等),并可以通过其中的方法将客户端的请求转发给所包装的资源。 

RequestDispatcher接口中定义了两个方法:forward方法和include方法。 

forward和include方法接收的两个参数必须是传递给当前Servlet的service方法的那两个ServletRequest和ServletResponse对象,或者是对它们进行了包装的ServletRequestWrapper 或ServletResponseWrapper对象

  获取RequestDispatcher对象的方法:

  A.  ServletContext.getRequestDispatcher (参数只能是以“/”开头的路径)

  B.  ServletContext.getNamedDispatcher 

  C.  ServletRequest.getRequestDispatcher (参数可以是不以“/”开头的路径)

// 请求的转发

// 1.调用HttpServletRequst的getRequestDispatcher();

// 调用getRequestDispatcher()需要闯入转发的地址

String path = "testServlet";

RequestDispatcher requestDispatcher=request.getRequestDispatcher(path);

 

// 2.调用RequestDispatcher的forward(request,response)

requestDispatcher.forward(requestresponse);

 

请求重定向的实现

// 请求重定向

String path = "testServlet";

response.sendRedirect(path);

 

  1. 请求转发和请求重定向的区别

 1)本质区别:请求转发只发出一次请求,请求重定向则发了两次请求

 A. 请求转发:地址栏时初次发出请求的地址

请求重定向:地址栏不是初次请求的地址。地址栏是最后响应的地址

B. 请求转发:在最终的Servlet中,request对象和中转的request对象是同一个对象

   请求重定向:在最终的Servlet中,request对象和中转的request对象不是同一个对象

C. 请求的转发:只能转发给当前WEB应用的根目录

    请求重定向:能重定向给任何资源

D.请求的转发: “/”代表的是当前WEB应用的根目录代表的是这个http://localhost:8080/web_name

   请求重定向:“/”代表的是当前WEB站点的根目录代表的是这个http://localhost:8080

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值