SpringBoot的配置 server.servlet-path 和 server.context-path

沈君 2018-05-02 11:35:06
今天,在配置 SpringBoot 的 application.properties时,发现一个问题。

当有如下配置时:
server.servlet-path = /Demo
访问控制层,会出现NotFond。

当去除掉或者使用server.context-path= /Demo,就能正常访问。


网上找到对这两个配置的说明是:
1、server.context-path设定应用的context-path.
2、server.servlet-path设定dispatcher servlet的监听路径,默认为: /

还是不太懂,有没有人解释一波



开发使用的是idea,所有在配置服务器时就配置Application Context,springboot的配置有没有上面的配置,也是可以的。
...全文
9696 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
雾里看花の 2019-07-01
  • 打赏
  • 举报
回复 2
1、server.context-path设定应用的context-path
这个项目前缀,比如说配置成/Demo,那么访问路径就是ip:端口/Demo,没有配置的情况下是ip:端口/
2、server.servlet-path设定dispatcher servlet的监听路径,默认为: /
这个的意思是哪些访问路径需要被spring的dispatcher servlet处理,而你配置成/Demo的意思就是,只有/Demo才需要被它处理
大伟欧巴 2019-06-30
  • 打赏
  • 举报
回复
引用 8 楼 Vision 的回复:
Context-Path是返回的项目上下文的名字(其实也就是项目名); Servlet-Path是返回的是项目名到当前jsp文件的路径(意思就是在这个项目首页到文件的路径) 比如: 假定Context-Path为 /abc Servlet-Path为 admin/login.jsp 那么访问地址就是http://localhost:8080/abc/admin/login.jsp
为什么我用server.servlet-path=*.html和server.servlet.path=*.html都不行啊,都无法改变他们后缀
帆软无法 2019-04-29
  • 打赏
  • 举报
回复
我今天也遇到这样的问题了,我百度了一下,因为SpringBoot的版本导致的,我之前写的也是server.context-path=路径,运行时就错误了。 如果是SpringBoot2.0以上的写法就是:server.servlet.context-path=路径,才正确
帆软无法 2019-04-29
  • 打赏
  • 举报
回复
我今天也遇到这样的问题了,我百度了一下,因为SpringBoot的版本导致的,我之前写的也是server.context-path=路径,运行时就错误了。 如果是SpringBoot2.0以上的写法就是:server.servlet.context-path=路径,才正确
daniel_kaka 2019-03-09
  • 打赏
  • 举报
回复 3
spring-boot 1.5是server.context-path 和 server.servlet-path, spring-boot 2.0是server.servlet.context-path 和 server.servlet.path 注意版本对应关系
hyoscine 2019-03-08
  • 打赏
  • 举报
回复
今天配置的时候也发现这个问题
spring-boot 1.5版本的话是server.servlet-path
如果是2.0以上版本的就是 server.context-path
至于版本在server.xml里面可以调整
Vision 2018-11-29
  • 打赏
  • 举报
回复
Context-Path是返回的项目上下文的名字(其实也就是项目名);

Servlet-Path是返回的是项目名到当前jsp文件的路径(意思就是在这个项目首页到文件的路径)

比如:
假定Context-Path为 /abc
Servlet-Path为 admin/login.jsp
那么访问地址就是http://localhost:8080/abc/admin/login.jsp
行走的老熊 2018-10-18
  • 打赏
  • 举报
回复 3
兄弟,首先解决你的问题。你看一下你的springboot版本,
如果是springboot2.0以下,用配置​server.context-path=/myprojectname。
如果是springboot2.0以上,用配置​server.servlet.context-path=/myprojectname。

上面是用解决你的问题的。

具体servlet.servlet.path是怎么意思,有什么作用,我也不知道。。。知道了,回头补上。



和尚要吃肉 2018-09-06
  • 打赏
  • 举报
回复
比如 server.servlet-path=*.html,这个设定的是你访问DispatchServlet的规则,以前正常是8080/hello,就能访问,现在必须是8080/hello.html才能访问
server.context-path=/Demo,意思就是访问8080/Demo才能访问到这个项目,访问这个项目下的任何路径,都得是8080/Demo/hello,这个属性默认是/,直接访问8080就能正常访问这个项目,这个属性就相当于你自己设置了tomcat的Application-context=/Demo,懂了吗??
沈君 2018-05-03
  • 打赏
  • 举报
回复
沈君 2018-05-02
  • 打赏
  • 举报
回复
引用 1 楼 QWERT4745 的回复:
如果配置了server.servlet-path = /Demo,访问路径就是http://ip:port/Demo/...
不配置或server.servlet-path = /,访问路径就是http://ip:port/...


这个知道,当使用server.servlet-path = /Demo配置是,访问访问路径就是http://ip:port/Demo/ ,但是结果就是NotFound。

因为我使用的idea,已经在Tomcat配置了 APPLICATION Context了,就是不做任何配置,访问路径都是http://ip:port/Demo/...

QWERT4745 2018-05-02
  • 打赏
  • 举报
回复 1
如果配置了server.servlet-path = /Demo,访问路径就是http://ip:port/Demo/... 不配置或server.servlet-path = /,访问路径就是http://ip:port/...
诺丽果 2018-05-02
  • 打赏
  • 举报
回复
没用过idea,用的都是eclipse

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧