重定向与请求转发

重定向与请求转发


Servlet将浏览器请求的数据处理完成后,要向客户端返回相应的结果。响应结果可以直接输出到页面上,也可以是一个新的URL,这个URL是一个新的HTTP请求,在Servlet中通过两种主要方式来实现对新的URL的转向,分别是重定向与请求转发。

重定向


重定向是指由原请求地址重新定位到某个新地址,原有的地址失效,客户端得到新地址的响应结果,浏览器地址栏显示新的请求地址。两次过程的请求对象不一样。整体过程发生两次请求,两次响应。其中第二次由客户端自动发起。

在这里插入图片描述
重定向通过HttpServletResponse对象的sendRedirect方法实现,该方法会通知客户端重新访问新的指定的URL地址。


public class RedirectServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, 
    HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, 
    HttpServletResponse response) throws ServletException, IOException {
        System.out.println(request);
        // 重定向简写方式,页面地址发生改变
        response.sendRedirect("/Form.html");
        System.out.println(request);

    }
}

请求转发


请求转发是指将请求转发到其它地址,转发过程中始终是一个请求对象,转发后浏览器地址栏内容不变。转发的过程发生在服务器内部。

在这里插入图片描述
请求转发使用RequestDispatcher接口的forward 方法来实现,可以将请求转发给另外一个资源,并让该资源对此次请求进行相应。

public class ServletDispatcher extends HttpServlet {
    protected void doPost(HttpServletRequest request,
     HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);

    }

    protected void doGet(HttpServletRequest request,
     HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("/Form.html").forward(request,response);
    }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值