美文网首页
19.Web组件之间的相互跳转

19.Web组件之间的相互跳转

作者: 若愚同学 | 来源:发表于2018-06-19 22:59 被阅读0次

Web组件之间跳转:从AServlet跳转到BServlet.

三种类型:
1:请求转发(forward)
2:URL重定向(redirect)
3:请求包含(include)

请求转发(forward)

AServlet操作完毕之后,请求转发到BServlet,继续完成余下的功能.

语法:
request对象.getRequestDispatcher(String path).forward(request,)
参数:

path:表示目标资源名称(跳转到哪里去)

注意:别忘了写forward(request,response)
请求转发的特点:

1:浏览器地址路径没变,依然是AServlet的资源名称.

2:只发送了一个请求.

3:共享同一个请求,在请求中共享数据.

4:最终的响应输出由BServlet来决定.

5:只能访问当前应用中的资源,不能跨域跳转.

6:可以访问WEB-INF中的资源.

图片1.png

注意:不要重复转发!

java.lang.IllegalStateException:cannot forward atfer response has been committed
请求转发,path要怎么写?
1. 有斜杠。 斜杠其实就是根。
    如果我们 /forward/s2 相当于是去根中找一个资源叫/forward/s2资源,能找到。可以转发。
2. 没斜杠,就是相对路径。
     相对于谁呢?相对于转发代码写在哪,就相对于谁。
找当前资源的最后一个斜杠。
/forward/abc/xyz/s2, 那么"forward/s2" 就直接拼接到相对路径(/forward/abc/xyz)后面
3. 以后,我们都加上斜杠。
因为斜杠是直接从根里面找。

URL重定向(redirect):

AServlet操作完毕之后,重定向到BServlet,继续完成余下的功能.
语法:
response对象.sendRedirect(String path);
参数:path,表示目标资源名称
URL重定向的特点:

1:浏览器地址栏路径发生变化,编程Servlet2的资源名称.

2:只发送了两个请求.

3:因为是不同的请求,所以不能共享请求中的数据.

4:最终的响应输出由Servlet2来决定

5:可以跨域访问资源.

6:不可以访问WEB-INF中的资源.

面试题:

请求转发和URL重定向的区别?
回答方式:

1):分别解释各自的定义(若不知道如何定义,写代码).

2):罗列各自的特点(若是做对比,请最好画表格).

3):各自的应用场景(来源于
自的特点).

请求转发和URL重定向的选择?

1:若需要共享请求中的数据,只能使用请求转发.

2:若需要访问WEB-INF中的资源,只能使用请求转发.

3:若需要跨域访问,只能使用URL重定向.

4:请求转发可能造成表单的重复提交问题.

5:其他时候,任选.

相关文章

  • 19.Web组件之间的相互跳转

    Web组件之间跳转:从AServlet跳转到BServlet. 三种类型: 1:请求转发(forward) 2:U...

  • Javaweb基础(五)Servlet交互-作用域对象-JSP

    一.Web之间跳转和信息共享 1.为什么需要Web组件之间跳转和信息共享 之前编写的Servlet都是相互独立的,...

  • HHRouter解析

    关于App内部的路由设计,主要需要解决2个问题: 1.各个页面和组件之间的跳转问题。 2.各个组件之间相互调用。 ...

  • Android组件化(三)组件之间的通信

    介绍 在组件化开发的时候,组件之间是相互独立的没有依赖关系,我们不能在使用显示调用来跳转页面了,因为我们组件化的目...

  • 利用APT实现android路由框架一

    随着业务的发展,项目会越来越大,实现组件化便于更好的维护项目以及拆分。 业务组件相互独立,需要路由来完成之间的跳转...

  • iOSAPP之间的相互跳转

    定义跳转URL协议 NSString *url = @"scheme://host:port/url.path?u...

  • 2-8 vue全局属性

    vue全局属性 父子组件之间相互访问 在开发中,组件之间需要相互访问。比如:父组件访问子组件,子组件访问父组件,或...

  • 阿里ARouter简单分析

    ARouter是一个路由框架,来实现组件化过程中不同module之间的相互跳转。本文简单分析ARouter初始化以...

  • 应用之间相互跳转

    应用之间的跳转在做第三方登陆,分享的时候一般会用到。当设备安装有指定的应用的时候,就可以从当前应用跳转到指定应用,...

  • vue-路由配置和使用步骤整理

    介绍 路由:控制组件之间的跳转,不会实现请求、不用页面刷新,直接跳转-切换组件》》》 安装 本地环境安装路由插件v...

网友评论

      本文标题:19.Web组件之间的相互跳转

      本文链接:https://www.haomeiwen.com/subject/bgnzeftx.html