首先定义一下这两个词:

重定向是将用户从当前页面或servlet定向到另外一个jsp页面或者servlet

转发是将用户对当前jsp页面或者servlet对象的请求转发给另外一个jsp页面或者servlet对象。

在servlet类当中可以使用HttpServletResponse类的重定向方法sendRedirect()

也可以使用RequestDispatcher类的转发方法forward()。

以下为两者的区别:

1)RequestDispatcher的forward()方法只能将请求转发给同一个Web应用中的组件,HpptServletResponse的sendRedirect()方法不仅可以重定向到当前

应用程序中的其它资源,还可以重定向到同一个站点上的其它应用程序中的资源,甚至是使用绝对URL重定向到其它站点的资源。如果传递给sendRedirect()方法

的相对URL以“/”开头,它是相对于整个Web站点的根目录;如果创建RequestDispatcher对象时制定的相对URL以“/”开头,它是相对于当前Web应用程序的根目录。

2)使用sendRedirect()方法重定向的访问过程结束后,浏览器的地址栏中显示的URL会发生变化,由初始的URL地址变成重定向后的目标URL;然而调用Request

-Dispatcher的forword()方法的请求转发过程结束后,浏览器的地址栏保持初始的URL地址不变。

java web重定向与转发的更多相关文章

  1. java之重定向与转发

    昨天搞了一个问题,关于手机返回按钮的(Android机,ios没有返回键) 在每一步操作都要进过鉴权,如果鉴权不通过就需要跳转到指定jsp页面,再进行link:到app进行登录操作: 然后问题出现了, ...

  2. java web 中的转发和重定向

    假设应用程序的 contextPath 为 /ctx,在 http://localhost:8080/ctx/a/b 资源中,我们转发和重定向到 http://localhost:8080/ctx/x ...

  3. [Java][Web] Servlet中转发和重定向比较

    Servlet中页面跳转的两种方式 请求转发 使用requestDispatcher对象 request.getRequestDispatcher("path").forward( ...

  4. Java Web中请求转发和请求包含

    1.都是在一个请求中跨越多个Servlet 2.多个Servlet在一个请求中,他们共享request对象.就是在AServle中setAttribute()保存数据在BServlet中由getAtt ...

  5. [Java][Web]Request 实现转发和 MVC 设计模式

    String data = "aaaaa"; request.setAttribute("data",data); // 将数据存在 request reque ...

  6. Java Web开发中的转发和重定向的问题

    Java Web的页面实现跳转有两种方式,一种是转发,另外一种是重定向.一般来说,转发比重定向快.重定向会经过客户端,转发却不会. 转发 request.getRequestDispatcher(&q ...

  7. [原创]java WEB学习笔记15:域对象的属性操作(pageContext,request,session,application) 及 请求的重定向和转发

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. java web的转发与重定向

    java web的转发与重定向 原创 2012年12月15日 11:51:39 19312 转发和重定向的区别 一.使用方法 转发:request.getRequestDispatcher(" ...

  9. java web Servlet学习笔记-2 请求重定向和请求转发的区别

    请求转发与请求重定向的区别 请求重定向和转发 1.请求重定向:浏览器的行为(通过响应对象HttpServletResponse来执行) 特点:可以重新定向访问其他Web应用下的资源 浏览器发出了2次请 ...

随机推荐

  1. Redis 的 5 个常见使用场景

    2015-07-22 23:31:46 本文由 伯乐在线 - 刘晓鹏 翻译,黄利民 校稿.未经许可,禁止转载!英文出处:Joe Engel.欢迎加入翻译组. 在这篇文章中,我们将阐述 Redis 最常 ...

  2. 一个java覆盖的例子

    // 覆盖class P{}class Q extends P{} class a{ static void m1(float x){ //静态方法不能被覆盖 System.out.println(& ...

  3. java 中 静态块的作用

    (一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序 ...

  4. String的一些总结(JAVA)

    equals: String s1=new String("Hello"); String s2=new String("Hello"); System.out ...

  5. stack

    stack介绍:先进后出 实现C++STL,栈有两个参数:template<class T,class Container = deque<T>> class stack: 参 ...

  6. Centos搭建Linux测试环境,几个基本的设置项

    一.添加sudo 权限 1.su - 切换至root,需要rootmim 2.修改 /etc/sudoers 的权限 chmod 644 /etc/sudoers 3.vi /etc/sudoers ...

  7. Codeforces 581F Zublicanes and Mumocrates(树形DP)

    题目大概说有一棵树要给结点染色0或1,要求所有度为1的结点一半是0一半是1,然后问怎么染色,使两端点颜色不一样的边最少. dp[0/1][u][x]表示以u结点为根的子树中u结点是0/1色 且其子树有 ...

  8. node.js第一次

    随着时代的变迁,日月星辰轮回,不断的有新的事物被创造于世,作为在这个世界活着的前端工程崽的我,最近又接触了一门新手艺“node.js”.自从它2009年诞生至今,被很多前端推崇,我起步已经晚了,还好它 ...

  9. why cpp is a shitty language

    // the below is a standard template for any of my writings about c++ cpp_is_a_shitty_language_as { t ...

  10. Coder-Strike 2014 - Finals (online edition, Div. 2) B. Start Up

    需要满足的条件是 (1)每个字母是对称的 (2)每个字符串是对称的 #include <iostream> #include <algorithm> #include < ...