这是我博客的文章之一,直接复制过来的,链接没改….
目录
首先我们看一下 IDEA 里的当前项目结构配置
设置 Web 资源目录和 Tomcat读取的 web.xml 配置文件
Tomcat 的 Run/Debug 配置
处理常见问题
Web资源找不到
我想把项目下的 README.md 也放到部署目录
上传文件失败 404 错误
html 超链接打开错误
Tomcat 常见报错
在 IDEA 上控制 Tomcat 部署,我们就必须了解各项选项的详细作用:
File -》 Project Structure
然后为了让 Tomcat 读取到我们需要的 Web 资源要设置一下 Web资源路径和 web.xml 配置文件
-> Facets -> 点加号添加 -> Web
注意:这里把 Web 资源目录设置为根目录”/” ,其实是指 设置为部署目录的根目录(即下下张图里,提到的那个目录的下面)
再点 Artifacts ,这里熟悉吧?这里就是 Tomcat 部署设置的一部分
如果你还需要 module(当然Eclipse里叫项目) 里的一些文件,可以右击 Available Elements下的模块(如右击图中的 servlet2Spring,选择 Put Into Output Root)
这里可以点加号,添加一个 External Source…(额外的资源目录作为服务器部署目录)
让我们来处理一些常见问题
如 html jsp css js 等文件没有在 IDEA 部署目录里
检查 Facets 里是否有 Web,并且各种路径配置是否正确
可以右击 Available Elements下的模块(如右击图中的 servlet2Spring,选择 Put Into Output Root) 更多详见标题2
不止是上传文件错误,很多 404 问题都应该按如下步骤检查检查一下你设置的 http 路径是否可以访问,用 GET/POST 工具试一下
比较有可能是你设置的 Tomcat 路径是 例如http://localhost:8080/Demo_war_exploded 但是你用的上传路径是 http://localhost:8080/upload
这时候要么把上传路径改为http://localhost:8080/Demo_war_exploded/upload
要么把 Tomcat Run/Debug 配置的 URL 改为 http://localhost:8080/ 并设置 Application Context 为”/” 更多详见标题3
写超链接时要注意 “/testa” “./testa” “testa” 的区别
/testa 是指域名根路径 ,如 localhost:45/testa
./testa 和 testa 都是指当前的 http 路径 ,如 localhost:45/Demo_war_exploded/testa
附表
路径详解/域名根路径./当前路径../当前路径的上一层
可以看出路径是符合 Unix 规范另外,域名根路径和部署目录不一定是对应的,这里拿上面的示例讲一下
上面示例的部署目录对应的 http路径 是 localhost:45/Demo_war_exploded而域名是 localhost:45域名根路径是 localhost:45/可见这里的域名根路径访问的不是 JavaWeb 项目的部署路径
这里你可能有疑惑,为什么我们打开域名localhost:45和域名根路径localhost:45/是一样的?
其实,这都是浏览器或服务器的功劳,是它们帮忙搞定了这些路径补全、重定向、转发的问题
检查 web.xml 里的过滤路径是否正确错误代码
<url-pattern>test</url-pattern>