zoukankan      html  css  js  c++  java
  • JAVA2E servlet的跳转

    关于Servlet的跳转有三种方式:eg:源地址/a1,目标地址/a2 

      1。请求转发:req.getRequestDispatcher("/a2").forward(req,resp); forward要提交给目标地址/a2  原理:浏览器请求/a1,然后/a1请求/a2,/a2响应给/a1。然后由/a1响应给浏览器。

        a:浏览器地址栏不发生改变,依然是/a1不是目标地址/a2。

        b:请求转发浏览器只发送一个请求。

        c:共享同一个请求中的数据。

        d:最终响应给浏览器由a2决定。

        e:请求转发不能跨于访问,不能访问百度,只能跳转到当前应用中的资源,外界不能直接访问WEB-INF文件夹,请求转发可以。

      2。URL重定向:resp.sendRedirect("/a2") ,原理:浏览器请求/a1,然后响应给浏览器,浏览器再请求/a2,再响应给浏览器

        a:浏览器地址栏发生改变,不是/a1而是目标地址/a2。

        b:URL重定向浏览器发送两次请求。

        c:由于是两个请求所以不共享请求中的数据。相当于直接将目标地址拷贝到浏览器。

        d:最终响应给浏览器由a2决定。

        e:请求转发可以跨域访问,可以访问baidu,外界不能直接访问WEB-INF文件夹,URL重定向不行。

      3。请求包含:req.getRequestDispatcher("/a2").include(req,resp);

        在一个页面中可以包含其他页面的内容。

        在Servlet中没有意义,在JSP中有意义。

    以上三种选择:

      必须使用请求转发(forward):

        1)需要访问共享请求中的数据

        2)访问WEB-INF中的资源

      使用URL重定向(sendRedirect):

        1)跨于访问

        2)避免表单重复提交。

  • 相关阅读:
    Nginx进阶-不停服更新
    Tengine安装
    初识Nginx
    自建Nuget服务器
    WebApi PUT、DELETE请求时出现405
    Mysql分页查询性能分析
    Asp.Net WebApi Swagger终极搭建
    到底什么是程序员思维,设计师思维
    [有了SSL证书,如何在IIS环境下部署https?【转载】]
    div 文章内容自动分屏显示
  • 原文地址:https://www.cnblogs.com/paoxiaoqianzibi/p/7922139.html
Copyright © 2011-2022 走看看