JavaWeb中请求转发的绝对路径和相对路径(新版tomcat10情况下)以及tomcat10新方法getNamedDispatcher

javaWeb中我们可以通过两种方式获得请求转发器

1,通过request对象 的getRequestDispatcher方法获得,如图:

 

2,通过servletContext对象的getRequestDispatcher方法获得,上图改一改就是

3,通过servletContext对象的getNamedDispatcher方法获得,如图

第一种方式,使用request对象得到转发器,他的参数是一串表示转发目标url的字符串

        如果路径字符串前没有"/"表示相对于请求来源的路径,比如你通过某个servlet请求另一个jsp,那么你的路径起点就是你这个servlet的class文件夹子目录,请以编译后war包部署路径为准!!!不要理解为你没打包的项目路径:

黄色的中的Myblog是我的实际部署文件,上边白色的是你的不会放在war包中的项目文件

        可以在路径前加上"/"表示相对于servletContext url的路径(这里也可以称为绝对路径),这个径的解释可以参考我的博文 Context路径在哪里icon-default.png?t=M276https://blog.csdn.net/m0_60358315/article/details/123487337?spm=1001.2014.3001.5502

 如果你使用第二种方式,即通过servletContext对象的方法来取得转发器,那么就必须使用绝对路径字符串作为参数.

        如果你使用的是新版的第三种方法,那么你可以直接用你转发目标(必须是servlet)的name属性的字符串来作为参数,

如上图我的Servlet2直接用"Servlet"作为Dispatcher的字符串参数发起转发,

如果你真的希望用这个方式,从servlet向Jsp转发,你可以在web.xml中给Jsp配置name属性(jsp本身也是一种特殊的servlet),如下图:

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值