zoukankan      html  css  js  c++  java
  • L--网页跳转

    简介

    • 网页跳转及常用处理方式

    jsp常用跳转方式

    • 1.href超链接标记(客户端跳转)
    <a href="hello.jsp">a标签跳转</a>
    • 2.使用javascript完成(客户端跳转)
    1.javascript提交表单的写法
    <
    script type="text/javascript"> function submit () { with (document.getElementById("submit")) { action = "hello.jsp"; method = "post"; submit (); } } </script>
    2.window.location直接定位
    <script type="text/javascript" >
      window.self.location = "hello.jsp";
      window.location.replace ("http://www.cnblog.com");
    </script>
     
    3.使用history对象的foward(), back(), go()方法
      其中go()方法需要一个整形入口参数
    <a href="javascript:history.go(-1);">返回上一步</a>等价于
    <a href="javascript:history.back();">返回上一步</a>
    •  3.提交表单完成跳转(客户端跳转)
    <form name="form1" method="post" action="hello.jsp">
        <input type="text" name="name">
        <input type="text" name="password">
        <input type="submit" value="提交">
    </form> 
    • 4.使用jsp内置对象response(客户端跳转)
    1.直接使用sendRedirect()重定向,重定向后在浏览器地址栏上会出现重定向页面的URL
    <%
        response.sendRedirect("http://www.cnblogs.com");
    %>
    ps:sendRedirect()中的URL是可以带参数的,例如sendRedirect("http://www.cnblogs.com?name="+name"),可以在跳转到时候传入参数,此外,一般response.sendRedirect()之后紧跟一句return;既然已经要做转向,那么sendRedirect之后的输出就没有任何意义,而且有可能导致转向失败。
    2.使用setHeader()方法,直接修改地址栏来实现页面的重定向
    <%
    response.setHeader("Refresh", "1; url = http://www.cnblogs.com");
    %>
    标准格式:response.setHeader("Refresh", "等待的秒数; url = 绝对路径或者相对路径")
    • 5.使用requestDispatcher类(服务端跳转)
    RequestDispatcher rd = request.getRequestDispatcher("目标页面");
    rd.forward(response,request);

       Servlet可通过两种方式得到RequestDispatcher对象:

              ServletContext的getRequestDispatcher() 

              ServletRequest的getRequestDispatcher() 

             调用ServletContext的getRequestDispatcher(String path)方法,path参数指定目标组件的路径。

             调用ServletRequest的getRequestDispatcher(String path)方法与上一个方式的区别在于,前者的path参数必须是绝对路径,而后者的path参数可以是绝对路径,也可以是相对路径。所谓绝对路径,就是指以符号"/"开头的路径,"/"表示当前web应用的URL入口。  

    response重定向和forward跳转的区别

    response:

    1. 执行完所有的代码在跳转到目标页面
    2. 跳转到目标页面后浏览器的URL会改变
    3. 在浏览器中重定向
    4. 可以跳转到服务器的其他页面 

    forward:

    • 直接跳转到目标网页,其后的代码不再执行
    • 跳转到目标页面后URL不变
    • 在服务器端重定向
    • 无法跳转到其他服务器上的页面

    阻止a标签跳转

    • 1.用a标签的onclick属性或onclick时间中返回false
    <a href="" onclick = "do();return false">doSomething</a>
    这是个执行顺序的问题,<a>这个标签的执行顺序是先执行onclick脚本,然后执行href参数指定页面的跳转。在onclick中返回false,就可以终止<a>标签的工作流程,也就是不让页面跳转到href参数指定的页面
    • 2.用href = "javascript:void(0)"这种伪协议
    <a href="javascript:void(0)" onclick="do()">doSomething</a>
    • 3.href = "#"
    <a href="#" onclick="do()">doSomething</a>
    总是跳转到当前页面顶部,页面内容较多时,会有跳转的感觉
    • 4.href = "###" 相比3,不会回到页面顶部,较好的选择)
    
    
    
    
  • 相关阅读:
    React倒计时功能实现——解耦通用
    如何在 UmiJs 中配置使用 Sass
    Redux入门实战——todo-list2.0实现
    每天学点JavaScript基础(2)——JavaScript里的分号,你加还是不加?
    每天学点JavaScript基础(1)—— null 和 undefined
    CSS画图
    React入门实战实例——ToDoList实现
    博客园样式管理总结(个人博客园装修指南)
    如何使用VSCode发布博客到博客园
    React入门
  • 原文地址:https://www.cnblogs.com/guDouMaoNing/p/4342800.html
Copyright © 2011-2022 走看看