关于使用ssm与spring时,配置tomcat 虚拟目录( doBase )中的一些坑
一、使用SSM需要 配置虚拟目录时 tomcat的配置
在tomcat server.xml的<HOST></HOST>中加入以下内容

在配置完成之后,当我们访问URL 为 ip+端口/users的时候,服务器就会去访问我们的doBase下的路径
比如,在users目录下有 一个名为abc.jpg的文件 ,
那么我们 访问 ip+端口/users/abc.jpg 就会得到G:/imooc-videos-resources/douyin/users/下的abc.jpg。
需要注意的是 设置虚拟目录时,在ip+端口号后面不需要加上项目名,举个例子

这是我项目的访问路径,如果你使用ip+端口号/项目名/users是访问不了虚拟目录的,必须使用ip+端口号/users 才能映射到我们配置的虚拟目录,所以其实tomcat doBase 映射 只针对 ip+端口号 下的映射,不论其他的因素。
下面通过从数据库中读取字段,然后配置tomcat虚拟目录的实例来演示
数据库的内容:
图片真实的存储路径

虚拟目录的配置:

需要注意的是doBase G:/imooc-videos-resources/douyin/users 这里是固定的写法,写为G:/imooc-videos-resources/douyin/ 还是G:/imooc-videos-resources/douyin 都是无法识别的,本来我想的是通过/users映射到G:/imooc-videos-resources/douyin/ 那么就可以在douyin目录下进行查找 刚好是可以找到users目录的,但实践证明,这样是不行的。
结果测试:

二、如果是springboot项目
使用Springboot时 在类中的代码如下 (数据库,以及图片的真实路径,等其他信息都是一样的)

这里的意思是/** 表示匹配到的所有的静态资源,都会去G:/imoo-videos-resources/douyin/ 下的目录去进行查找,
这里与在使用SSM在tomcat中的配置不同的是,使用SSM时在tomcat中映射为 G:/imoo-videos-resources/douyin/ 是无法找到的,必须 配置为
<Context docBase="G:/imooc-videos-resources/douyin/users" path="/users" />
<Context docBase="G:/imooc-videos-resources/douyin/bgm" path="/bgm" />
才能匹配到
而使用springboot当我们映射为G:/imoo-videos-resources/douyin/ 。那么 douyin目录下的所有文件(夹)其实都是匹配到的。
关于使用ssm与spring时,配置tomcat 虚拟目录( doBase )中的一些坑的更多相关文章
- Intellij Idea 2016 配置Tomcat虚拟目录
默认的idea是不需要配置虚拟目录了,它完全托管项目,但是有些时候,在开发过程中,是需要以虚拟目录的形式开发,即以:http://localhost:8080/虚拟目录名/index.html 这种形 ...
- 分布式环境Tomcat多节点集群下共享目录配置,tomcat虚拟目录+nfs
我们可能有这种场景: 集群环境下,多个web容器需要请求一个共享目录下的文件,比如保存图片或者录音文件,任意一个节点保存后其他节点需要及时获取,此时就需要目录进行同步了,否则Nginx负载到任意一个节 ...
- 配置Tomcat监听80端口 配置Tomcat虚拟主机 Tomcat日志
配置Tomcat监听80端口 • vim /usr/local/tomcat/conf/server.xml Connector port=" protocol="HTTP/1.1 ...
- 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志
6月27日任务 16.4 配置Tomcat监听80端口16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志扩展邱李的tomcat文档 https://www.linuser ...
- 配置tomcat服务器内存大小中的Xms、Xmx、PermSize、MaxPermSize 详解
1.参数的含义 -vmargs -Xms256m -Xmx512m -XX:PermSize=256M -XX:MaxPermSize=512M -vmargs 说明后面是VM的参数,所以后面的其实都 ...
- Linux centosVMware 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志
一.配置Tomcat监听80端口 关闭tomcat报错 [root@davery src]# /usr/local/tomcat/bin/shutdown.sh 重装tomcat即可 vim /usr ...
- spring boot 配置访问其他模块包中的mapper和xml
maven项目结构如下,这里只是简单测试demo,使用的springboot版本为2.1.3.RELEASE 1.comm模块主要是一些mybatis的mapper接口和对应的xml文件,以及数据库表 ...
- Tomcat 虚拟目录映射
最近老是被一个旧Ant工程所困扰,代码版本都改好了测试也通过了,就是打不了war包,一看build.xml 我的天 各种逆天啊....头大.于是乎想起了最基础的tomcat虚拟目录虽是一个很基础的点, ...
- JSP配置了虚拟目录使用JavaBean报错
今天遇到一个很棘手的问题,在jsp文件中使用useBean,网页返回码出现了500服务器内部错误,报错信息如下: The value for the useBean class attribute w ...
随机推荐
- 关于Windows系统下端口被占用的问题和task命令
一.如何解决端口被占用的问题? 此时端口4444被进程占用,只要找到端口4444的进程,并且将进程kill掉即可. 开始--运行--cmd 进入命令提示符 输入netstat -aon 即可看到所有连 ...
- Android开发菜单以及子菜单
package com.example.androidtest; import android.app.Activity; import android.os.Bundle; import andro ...
- c++ md5算法实现(转)
原文链接:C++计算文件的MD5值 其他:c++输入文件流ifstream用法详解
- 封装 axios
大家是否有印象,在开发项目中,我们往往会把axios给封装起来,写在一个js文件夹里,最后引入的也是js文件夹,而不是直接对axios进行操作,那为什么? 1. 如果一个组件需要请求数据,就要用到ax ...
- socket编程执行远程命令实现_python
一.单客户端连接的例子: 服务端: import socket,os,subprocess server=socket.socket() server.bind(('localhost',1234)) ...
- 远程执行命令_python
一.远程执行命令模块subprocess Python可以使用subprocess下的Popen类中的封装的方法来执行命令 构造方法 popen() 创建popen类的实例化对象 ··· obj = ...
- 165.扩展User模型-继承AbstractBaseUser
继承自AbstractBaseUser模型 如果你想要修改默认的验证方式,并且对于User模型上的一些字段不想要,那么可以自定义一个模型,然后继承自AbstractBaseUser,再添加你想要的字段 ...
- 洛谷P1068 分数线划定
https://www.luogu.org/problem/P1068 #include<bits/stdc++.h> using namespace std; struct Can { ...
- 《NVMe-over-Fabrics-1_0a-2018.07.23-Ratified》阅读笔记(4)-- Controller Architecture
4 Controller架构 NVMe over Fabrics使用与NVMe基础规格说明书中定义相同的controller架构.这包括主机和controller之间使用SQ提交队列和CQ完成队列来执 ...
- 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(8.21)-- Host Operation with Asymmetric Namespace Access Reporting
8.21 使用ANA报告的主机操作 8.21.1 主机ANA普通操作 主机通过在Identify Controller数据结构中CMIC域的第3位来判断是否支持ANA.NSID或标识(参考第7.10章 ...