精华内容
下载资源
问答
  • 页面跳转

    千次阅读 2019-05-16 10:49:28
    有关于页面跳转的一些小问题 此时有注册页面,登录页面,主页面三个页面 三页面为后台系统页面 页面跳转的代码,平时会用的C#里面自带的window.location.href来点击的时候实现页面跳转,一般在做一些后台系统在登录...
    开发工具与关键技术:VS2015,ASP.NET MVC
    
    撰写时间:2019年5月15日
    

    有关于页面跳转的一些小问题
    此时有注册页面,登录页面,主页面三个页面
    三页面为后台系统页面

    页面跳转的代码,平时会用的C#里面自带的window.location.href来点击的时候实现页面跳转,一般在做一些后台系统在登录跳转的时候会用到window.location.replace来点击的时候发生页面跳转,window.location.href和window.location.replace都是页面跳转,它们之间有什么区别呢?
    这里涉及到一个浏览器缓存的问题。

    window.location.href
    此时登录页面跳转到注册页面用到window.location.href,在我们看到的页面是注册页面,其实浏览器还把登录页面的路径给缓存下来了,这个可以通过观察浏览器左上角的前进或后退的按钮。
    在这里插入图片描述
    ↑未跳转
    在这里插入图片描述
    ↑已跳转
    用window.location.href实现页面跳转,可以通过点击左上角的后退按钮回退到登录页面,在点击这个后退按钮的时候浏览器去调用了之前缓存下来的登录页面的路径,实现了回退的功能。

    window.location.replace
    此处登录页面跳转至主页面用到window.location.replace,两段代码同样的是跳转,此时来观察左上角的前进或后退按钮,这时候会发现无论是前进按钮还是后退按钮都是呈现灰色状态,此时表明浏览器并没有把登录页面的路径缓存下来。
    在这里插入图片描述
    ↑未跳转
    在这里插入图片描述
    ↑已跳转
    其实window.location.replace在此处起到一个代替的作用,此处的登录页面的路径被主页面的路径替换掉了,浏览器没有了登录页面的缓存,前进或后退按钮自然而然地变成了灰色状态,window.location.replace只能进不能退,所以适合用在一些不允许回退的页面。

    总结:
    window.location.href:a页面跳至b页面,会在浏览器留下a页面的缓存路径,此时可以通过点击回退按钮回退到a页面。
    window.location.replace:a页面跳至b页面,在浏览器缓存里a页面的路径被b页面的路径替换了。所以回退按钮呈灰色状态,无法点击。

    展开全文
  • 作为一名程序员,特别是java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。 1、RequestDispatcher.forward方法只能将请求转发给同一个...

    转发和重定向区别详解

            作为一名java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。

          1、request.getRequestDispatcher().forward()方法,只能将请求转发给同一个WEB应用中的组件;而response.sendRedirect() 方法不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。

    如果传递给response.sendRedirect()方法的相对URL以“/”开头,它是相对于整个WEB站点的根目录;如果创建request.getRequestDispatcher()对象时指定的相对URL以“/”开头,它是相对于当前WEB应用程序的根目录。

          2、重定向访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。

          3、HttpServletResponse.sendRedirect方法对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的访问请求,这个过程好比有个绰号叫“浏览器”的人写信找张三借钱,张三回信说没有钱,让“浏览器”去找李四借,并将李四现在的通信地址告诉给了“浏览器”。于是,“浏览器”又按张三提供通信地址给李四写信借钱,李四收到信后就把钱汇给了“浏览器”。

    由此可见,重定向的时候,“浏览器”一共发出了两封信和收到了两次回复,“浏览器”也知道他借到的钱出自李四之手。

    request.getRequestDispatcher().forward()方法在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为。这个过程好比绰号叫“浏览器”的人写信找张三借钱,张三没有钱,于是张三找李四借了一些钱,甚至还可以加上自己的一些钱,然后再将这些钱汇给了“浏览器”。

    由此可见,转发的时候,“浏览器”只发 出了一封信和收到了一次回复,他只知道从张三那里借到了钱,并不知道有一部分钱出自李四之手。

           4、request.getRequestDispatcher().forward()方法的调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程;

    而response.sendRedirect()方法调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。对于同一个WEB应用程序的内部资源之间的跳转,特别是跳转之前要对请求进行一些前期预处理,并要使用HttpServletRequest.setAttribute方法传递预处理结果,那就应该使用request.getRequestDispatcher().forward()方法。不同WEB应用程序之间的重定向,特别是要重定向到另外一个WEB站点上的资源的情况,都应该使用response.sendRedirect()方法。

            5、无论是request.getRequestDispatcher().forward()方法,还是response.sendRedirect()方法,在调用它们之前,都不能有内容已经被实际输出到了客户端。如果缓冲区中已经有了一些内容,这些内容将被从缓冲区中。

    以上五点的论述来源于:点击查看原文论述

    转发和重定向的图解

    两种跳转获得对象的方式

    //获得转发对象getRequestDispatcher()
    HttpServletRequest(httpServletRequest).getRequestDispatcher
    ServletContext.getRequestDispatcher();
    
    //获得重定向对象sendRedirect()
    HttpServletResponse(httpServletResponse).sendRedirect();

    转发和跳转的小结

          1、转发使用的是getRequestDispatcher()方法;重定向使用的是sendRedirect();

          2、转发:浏览器URL的地址栏不变。重定向:浏览器URL的地址栏改变;

          3、转发是服务器行为,重定向是客户端行为;

          4、转发是浏览器只做了一次访问请求。重定向是浏览器做了至少两次的访问请求;

          5、转发2次跳转之间传输的信息不会丢失,重定向2次跳转之间传输的信息会丢失(request范围)。

    转发和重定向的选择

          1、重定向的速度比转发慢,因为浏览器还得发出一个新的请求,如果在使用转发和重定向都无所谓的时候建议使用转发。

          2、因为转发只能访问当前WEB的应用程序,所以不同WEB应用程序之间的访问,特别是要访问到另外一个WEB站点上的资源的情况,这个时候就只能使用重定向了。

    转发和重定向的应用场景

           在上面我已经提到了,转发是要比重定向快,因为重定向需要经过客户端,而转发没有。有时候,采用重定向会更好,若需要重定向到另外一个外部网站,则无法使用转发。另外,重定向还有一个应用场景:避免在用户重新加载页面时两次调用相同的动作。

           例如,当提交产品表单的时候,执行保存的方法将会被调用,并执行相应的动作;这在一个真实的应用程序中,很有可能将表单中的所有产品信息加入到数据库中。但是如果在提交表单后,重新加载页面,执行保存的方法就很有可能再次被调用。同样的产品信息就将可能再次被添加,为了避免这种情况,提交表单后,你可以将用户重定向到一个不同的页面,这样的话,这个网页任意重新加载都没有副作用;

           但是,使用重定向不太方便的地方是,使用它无法将值轻松地传递给目标页面。而采用转发,则可以简单地将属性添加到Model,使得目标视图可以轻松访问。由于重定向经过客户端,所以Model中的一切都会在重定向时丢失。但幸运的是,在Spring3.1版本以后,我们可以通过Flash属性,解决重定向时传值丢失的问题。

           要使用Flash属性,必须在Spring MVC的配置文件中添加一个<annotation-driven/>。然后,还必须再方法上添加一个新的参数类型:org.springframework.web.servlet.mvc.support.RedirectAttributes。

           如下所示:

    @RequestMapping(value="saveProduct",method=RequestMethod.POST)
    public String saveProduct(ProductForm productForm,RedirectAttributes redirectAttributes){
    
         //执行产品保存的业务逻辑等
      
         //传递参数
           redirectAttributes.addFlashAttribute("message","The product is saved successfully");
       
         //执行重定向
          return "redirect:/……";
    }

     

     

     

     

    展开全文
  • Vue实现页面跳转

    万次阅读 2018-06-17 17:20:20
    如何点击底部书架跳转到对应的页面 <router-link :to="{name: 'bookshelf', params: { entityId: this.entityId } }" :class="{'flex-item-1':'flex-item-1',cur:tabs[0].isShow}" href="javascript:"> ...

     

    如何点击底部书架跳转到对应的页面

    <router-link :to="{name: 'bookshelf', params: { entityId: this.entityId } }"
                 :class="{'flex-item-1':'flex-item-1',cur:tabs[0].isShow}" href="javascript:">
                  <span class="tabNav-ico tabNav-book"></span>
                  <span class="tabNav-txt">书 架</span>

    </router-link>

    'name': 'bookshelf'表示要跳转的Vue组件名称,名称是在router文件下的index.vue中进行设置。

     

    {
         path: '/bookshelf',
         name: 'bookshelf',
         component: Bookshelf
       },

    params :{entityId: this.entityId}里面是要传递过去的参数。

    在bookshelf组件接收参数

    this.bookshelfId = this.$route.params.entityId;

    除了使用标签<router-link>进行跳转,还可以使用下面的方法

    <a @click="toIndex" :class="{'flex-item-1':'flex-item-1',cur:tabs[2].isShow}" href="javascript:">
          <span class="tabNav-ico tabNav-home"></span>
          <span class="tabNav-txt">首 页</span>

    </a>

    toIndex: function(){
            this.$router.push("/?entityId="+ localStorage.getItem("entityId"));

    }

    同样可以跳转页面,this.$router.push()方法只有一个参数的时候,代表跳转地址,还可以增加一个参数传值。

    写法:

    this.$router.push({name: "deepReadingDetail", params: {'id': data.id, 'title': data.title}});

    接收参数:

    this.$route.params.title

    需要注意path不能和params一起使用,否则params将无效。需要用name来指定页面。

    或者通过path和query传递参数

    this.$router.push({path: '/book', query: {'id', this.id}})

    页面接收参数使用 this.$route.query.id

    展开全文
  • 一、单纯的页面跳转 跳转到的页面分 tabBar 页面和 非tabBar 页面。url路径可以写相对和绝对路径。 1、跳转到非导航页面,用 wx.navigateTo 方法 wx.navigateTo({ url: '../person/goldcoin/index' //或者url:...

    一、单纯的页面跳转

    跳转到的页面分 tabBar 页面和 非tabBar 页面。url路径可以写相对和绝对路径。

    1、跳转到非导航页面,用 wx.navigateTo 方法

    wx.navigateTo({
    
        url: '../person/goldcoin/index'    //或者url: '/page/person/goldcoin/index'
    
    })

    2、跳转到tabBar导航页面,用 wx.switchTab 方法

    wx.switchTab ({
    
        url: '../person/goldcoin/index'
    
    })

    二、带参数跳转

    1、当前页面的参数,传到下一个页面。当前视图中view里要写入传递值。如下,通过bindtap绑定detail事件,并且把要传递的参数(title、time),以 “data-” 的格式传递。

    <view wx:for="{{list}}" wx:key="id">
    
        <view bindtap="detail" data-title="{{item.title}}" data-time="{{item.time}}">
    
            <label>标题:{{item.title}}</label>
    
            <label>时间:{{item.time}}</label>
    
        </view>
    
    </view>

    2、当前页面的js如下:e.currentTarget.dataset.XX  即获取视图中 “data-” 格式的数据。并在navigateTo中传入参数进行跳转。

    detail:function(e){
    
        var title = e.currentTarget.dataset.title;
    
        var time = e.currentTarget.dataset.time;
    
        wx.navigateTo({
    
            url: "/pages/person/goldcoin_detail/index?detail=" + title + "|" + time
    
        })
    
    }

    3、在跳转到的页面接收数据:数据存在options中,直接以 “options.参数名”的形式获取。

    data: {
    
        title:'',
    
        time:''
    
    },
    
    
    onLoad: function (options) {
    
        var str = options.detail;
    
        var detail = str.split("|");
    
        this.setData({
    
            title:detail[0],
    
            time:detail[1]
    
        })
    
    },
    
    

    三、navigator页面跳转

    1、不带参数

    <navigator url="/page/person/person">
    
        ......
    
    </navigator>

    2、带参数

    <navigator url="/page/person/person?title=1&time=1234">
    
        ......
    
    </navigator>

     

    更多详细请看官方文档

    展开全文
  • 一、页面跳转 二、情况说明 三、 问题解决方案 1、 引入thymeleaf的依赖包 2、 项目路径 注意 (1) 页面引用外部静态资源的方式 (2) 核心解决方案 一、页面跳转 如果你还没有实现页面跳转,推荐阅读:...
  • angularjs实现页面跳转并进行参数传递 Angular页面传参有多种办法,我在此列举4种最常见的: 1.基于ui-router的页面跳转传参 (1)在AngularJS的app.js中用ui-router定义路由,比如现在有两个页面,一个页面(producers...
  • Servlet 页面跳转

    千次阅读 2019-06-30 20:30:07
    Servlet 页面跳转 页面跳转是开发一个 web 应用经常会发生的事情。比如登录成功或是失败后,分别会跳转到不同的页面。 跳转的方式有两种,即服务端跳转和客户端跳转。 新建两个页面 success.html 和 fail.html 首先...
  • 今天分享一下,页面跳转和锚点跳转。 页面跳转——也叫超链接跳转页面,从一个页面跳转到另外一个页面; 锚点跳转——从一个页面跳转到当前页面的某一个位置,也可以跳转到其他页面的某一位置。 页面跳转 &...
  • 页面跳转传值,两个页面跳转cookie传值。
  • A页面为tabBar 页面 B是 子页面 C 是另外一个页面 A页面-->B页面-->C页面 ...解决方法: 在 B页面 跳转到C页面的时候用wx.redirectTo() 或者在 navigoter 标签的 open-type设置为redirect 这是在本页面打开
  • Web页面跳转

    千次阅读 2019-06-16 19:20:05
    一、服务器端跳转 vs 客户端跳转 ...小结:仍是请求-响应的过程,只不过服务器在做出响应之前内部发生了页面跳转,而整个过程中,客户端只发生了一次请求,且客户端感知不到跳转过程 2、客户端跳转: Step1:客...
  • jsp页面跳转html页面

    千次阅读 2019-11-01 08:28:32
    之前项目一直遇到,总结一下 jsp跳转, 跳出<iframe>页面跳到最外层页面:top.location....本层页面跳转:window.location.href="url"或location.href="url" 跳到上一层:parent.location.href="url" ...
  • Flutter 中的页面跳转及页面之间传参(路由跳转) 大多数应用程序具有多个页面或视图,并且希望将用户从页面平滑过渡到另一个页面。Flutter 的路由和导航功能可帮助你管理应用中屏幕之间的命名和过渡。 管理多个...
  • 1. 应用内页面跳转设计应用页面跳转与应用的用户体验有直接相关。 如果应用为了看一个详情,跳转了大于3个界面,就很大可能流失用户和被用户吐槽,更不用说,跳进去又退出大于3个界面才回到主界面。 应用页面的跳转...
  • 最近遇到一个问题,在A页面跳转到B页面时,同时将一个值带到B页面并显示出来。 最后找到一个比较靠谱的方法,分享给大家~ 2、解决: 页面其他内容不再展示,只写A,B两个页面的JS代码段,有基础的同学应该是能...
  • 1.servlet的页面跳转 Servlet: 当然,在servlet中,一般跳转都发生在doGet, doPost等方法里面。 1) redirect 方式 response.sendRedirect("/a.jsp"); 页面的路径是相对路径。sendRedirect可以将页面跳转到任何...
  • 登录页面跳转

    千次阅读 2019-05-16 18:08:05
    登录页面跳转 开发工具与关键技术:VS、MVC 作者:黎官凤 撰写时间:2019/05/10 在做项目的时候有很多的项目都是需要实现登录的,在登录页面上填写完整各种登录信息然后点击登录按钮跳转到主页面从而实现到你...
  • SpringBoot 错误页面跳转

    万次阅读 2020-02-04 17:19:20
    SpringBoot实现MVC 404、500等错误时跳转自定义页面 一、新增配置类 package com.study.demo.config; import org.springframework.boot.web.server.ErrorPage; import org.springframework.boot.web.server....
  • 前端页面跳转测试

    千次阅读 2018-09-15 20:32:50
    前端页面跳转测试 前端页面跳转分析处于什么环境 对于测试人员来说,在进行交互评审的时候,就可以开始基于交互文档以及接口文档进行页面跳转的分析了。 注意:全篇的前端包含APP、H5以及中间的接口路由层。 ...
  • JS页面跳转大全

    万次阅读 2019-05-17 16:52:06
    所谓的js页面跳转就是利用javesrcipt对打开的页面ULR进行跳转,如我们打开的是A页面,通过javsrcipt脚本就会跳转到B页面。 目前很多垃圾站经常用js跳转将正常页面跳转到广告页面,当然也有一些网站为了追求吸引人的...
  • 如题 jsp中如何保证页面跳转时当前页面与跳转页面之间的联系?
  • angularjs 页面跳转

    千次阅读 2017-03-31 14:46:01
    angularjs 页面跳转,对于click事件触发页面跳转,这样比用ui-uref好控制里面写业务操作。 之前一直用a标签的跳转,但是,现在遇到需要点击按钮然后提示信息后,在触发跳转页面,只能用这种方式。 1.angularjs部分 ...
  • 原:http://www.woowen.com/swift/2014/10/04/swift%20条件判断页面跳转/ 在swift中作跳转是一件很简单得事情,可是如果右键某个空间拖动然后选择modal来关联跳转关系的话该如何做出代码判断呢? 场景:...
  • React页面跳转

    千次阅读 2018-12-08 16:23:09
    导入react-router-dom模块 ...react页面跳转最简单的就是Link标签或者NavLink标签实现a标签的跳转,路径写在to属性里面 例如 &lt;NavLink to='/home' activeClassName='active'&gt; span&g...
  • 链接跳转:在本页面跳转

    千次阅读 2019-12-12 15:16:50
    链接跳转:在本页面跳转为什么要使用`href=”javascript:void(0);”`?`href=”javascript:void(0);”`与`href=”#"`的区别:使用javascript的方法 href=”javascript:void(0);”这个的含义是,让超链接去执行一个js...
  • 首先页面跳转的相对路径中经常出现“…/”,例如“…/test/test”,这表示当前路径下test文件夹下的test.js页面逻辑。 触发跳转的页面与test文件夹处于同级,所以是当前页面下的test文件夹。 wx.navigateTo({}) ...
  • "text/javascript">  $(function(){   var pn = $("#gotopagenum").val();//#gotopagenum是文本框的id属性   location.href = "NewList.aspx?pagenum="+pn;//location.href实现客户端页面的...页面跳转
  • JSP页面跳转问题解决 PS:本篇博文质量欠佳,仅供个人学习之用。前言 在做Web开发时,对别人的应用(jsp+servlet)进行服务器部署时出现了页面跳转无效的情况。但是项目在本地未出现此状况。 在本地运行结果如下: ...
  • 安卓实现页面跳转

    千次阅读 2019-10-03 19:51:17
    最近做了一个电影资源APP,APP由查询的功能,当查询之后就应该返回结果,要么什么都没查到,要么...页面跳转实现方法 新建一个xml页面: 到AndroidManifest.xml里面取注册这个界面: 利用intent进行页面的跳转 ...
  • tkinter实现页面跳转

    万次阅读 多人点赞 2019-05-06 18:50:36
    tkinter实现页面跳转 主函数main.py from tkinter import * from LoginPage import * root = Tk() root.title('小程序') LoginPage(root) root.mainloop() 登陆界面函数LoginPage.py from tkinter import * ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,025
精华内容 39,610
关键字:

页面跳转