当前位置:首页 > JavaServer Page > 正文内容

Springboot中的context-path

canca3年前 (2022-07-04)JavaServer Page662

1.定义

Context path of the application. 应⽤的上下⽂路径,也可以称为项⽬路径,是构成url地址的⼀部分。

2.如何配置

SpringBoot 2.0.0.RELEASE版本以及之后

server:
  servlet:
    context-path: /myapp1

SpringBoot 2.0.0.RELEASE版本以及之前

server:
  context-path: /myapp1

作⽤

假设我的应⽤有个接⼝/api/test,我在本地的8080端⼝启动我的应⽤。访问这个接⼝的url为localhost:8080/api/test.

加上了context-path为myapp1之后,我去访问这个接⼝的url就要变成localhost:8080/myapp1/api/test

注意项以及采坑

注意项

springboot项⽬设置了context-path之后,假如设置为myapp1,那么项⽬启动之后,访问项⽬的所有请求的URI必须/myapp1开头,才

能访问进项⽬。

踩坑

我的项⽬设置了context-path为myapp1,然后我想搞个过滤器MyFilter来处理以"/api"开头的请求,配置filter的过滤规则的时候,我将其

设置成了"/myapp1/api/*",结果向应⽤发送localhost:8080/myapp1/api/test的时候死活也进⼊不到我的MyFilter过滤器中。

@Bean
FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new MyFilter());
        //错误的写法
        filterRegistrationBean.addUrlPatterns("/myapp1/api/*"); 
        return filterRegistrationBean;
}

最后查看源码发现,如果项⽬设置了context-path,tomcat,spring在将请求的URI和我们设置的过滤器匹配规则进⾏⽐较的时候,⽤来⽐

较的requestURI已经是去掉context-path的了,所以设置filter的匹配规则的时候不要管context-path是多少。

@Bean
FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new MyFilter());
        //正确的写法
        filterRegistrationBean.addUrlPatterns("/api/*"); 
        return filterRegistrationBean;
    }


扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/808.html

标签: springboot
分享给朋友:

“Springboot中的context-path” 的相关文章

JBoss,Tomcat 中文URL支持方法

JBOSS 找到jboss4的deploy\jbossweb-tomcat50.sar\server.xml,编辑该文件,在下面的XML节点中增加红色的字<Connector port="8080" address="${jboss.bind.address}"  &nbs...

<html:select>设置默认值

在ActionFrom的reset方法里赋初值就可以,这样不管是调用的action或jsp都会先调用reset方法。...

struts,ajax乱码解决方案

乱码问题好像跟我们中国程序员特别有缘,一直困扰着我们,从开始的JSP乱码问题,STRUTS乱码问题,到现在的AJAX乱码问题,无一不是搞得许多程序员焦头烂额的,整天骂XXX产品对中文支持不了,UTF-8无法使用中文啊什么的,其实这里面被骂的产品中其实99%以上是对中文支持非常好的,而出现乱码的原...

JSP动态include与静态include的区别

动态INCLUDE   jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态INCLUDE   用include伪码实现,定不会检...

浏览网页时的错误代号

① 客户方错误    100  继续    101  交换协议  ② 成功    200  OK    201  已创建 &nbs...

session监听器

HttpSessionBindingListener:                     在把实现了...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。