现在企业开发中,我们都会创建一个javaWeb工程,在eclipse中指的是新建一个dynamic web project,创建完工程之后,我们在IDE中大体看到如下的工程目录:

我们主要关心的文件夹有src、WebContent、WEB-INF、test等。

src:存放我们写的java文件,以包来区分相同的文件

WebContent:发布的文件夹

WEB-INF:被设计为安全的文件夹,如果一些内容必须通过后台才能被访问,则存放在此文件夹下

test:用户创建的用户目录,可以来存放具体的前台文件(html、jsp等);另,还可以创建更多的文件夹,存放不同种类的文件

上面是我们在IDE中看到的web工程的结构,那么把web工程发布到tomcat下的文件路径是什么样子的呢,如下:

我们看到发布完的路径为项目名称 ,下边有META-INF、test、WEB-INF三个文件夹,可以清楚的明白,发布完之后是项目名称,然后是WebContent(开发环境下文件夹)下的文件,而WebContent没有显示,那么一定会奇怪,我的class文件呢,别着急,请看下图:

我们的class文件都放在了WEB-INF下的classes文件夹下,把包的路径转化为了文件路径,如com.cn.my转化为com/cn/my。

你会疑惑,如果我在src下有配置文件那么,我的配置文件发布完放在什么地方了,根据上面的解释,src对应着classes文件夹,那么src下的配置文件会放在classes文件夹下。

下面说明在web.xml文件中配置的<context-param>标签,经常会看到如下的配置:

 <context-param>
<param-name>log4j-properties-location</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>

这里配置的<param-value>值是指以相对路径来说的,以上图的/WEB-INF/log4j.properties来说,指的是发布完之后的路径,其中“/”指的是根路径,即Log4j(项目名称);根路径下的WEB-INF文件夹下的log4j.properties文件,;那么我们在开发过程中(IDE)中要把这个文件放在哪里呢,从上边的解释我们知道WebContent下的文件在发布完之后会保持原先的结构,那么可以得出在IDE中的位置为:WebContent/WEN-INF/log4j.properties。

很多时候我们会把配置文件放在src下,如果放在src下上边的配置改是怎么样的呢,

一、放在src根路径下,则上面的配置变成如下:

<context-param>
<param-name>log4j-properties-location</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>

二、在src下创建一个文件夹,则配置如下:

<context-param>
<param-name>log4j-properties-location</param-name>
<param-value>/WEB-INF/classes/my/config/log4j.properties</param-value>
</context-param>

在开发中我们还经常看到这样的配置,如下

<param-name>log4j-properties-location</param-name>
<param-value>classpath:log4j.properties</param-value>
</param-name>

classpath指的就是classes文件夹,这里指的是src根路径下的log4j.properties文件,也可以使用classpath:test/my/log4j.properties

有不对之处请指教!

eclipse中的web项目路径和发布好的项目路径的更多相关文章

  1. 转载Eclipse中Maven WEB工程tomcat项目添加调试

    转载地址: http://blog.csdn.net/free4294/article/details/38260581 一.建立一个maven  WEB项目 1.file->new->o ...

  2. 在Eclipse中调试web项目

    由于现在的公司用的是Eclipse开发web项目而且不安装MyEclipse插件,没有myclipse插件就不能在Eclipse中配置web服务器,所以也就不好对web项目进行调试.下面的方法就可以让 ...

  3. Eclipse中的Web项目自动部署到Tomcat的webapp目录下

    Eclipse中的Web项目自动部署到Tomcat   原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写 ...

  4. eclipse中maven web项目部署时缺少classes文件或者resources文件

    写这篇博客的原因 问题描述 昨天发现eclipse中maven web项目部署时缺少classes文件或者resources文件 本来以为是很常见的原因, 依次检查"Java Build P ...

  5. 部署Eclipse中的Web项目到Tomcat服务器运行

    用Eclipse开发Web项目时,可以通过Tomcat服务器运行Web项目,此时Web项目被部署在[WorkSpace]\.metadata\.plugins\org.eclipse.wst.serv ...

  6. 在Eclipse中运行Web项目Jsp网页时提示端口被占用的解决办法:Several ports (8005, 8888, 8009) required by Tomcat v9.0 Server at localhost are already in use.

    问题: 在Eclipse中运行Web项目Jsp网页启动Tomcat时提示端口被占用: Several ports (8005, 8080, 8009) required by Tomcat v9.0 ...

  7. 在Eclipse中修改web项目的名称

    在Eclipse中修改web项目的名称 一.误区: 单击要修改名称的项目上右键Refactor->Rename,然后修改成另外一个名称 (光这样是不够的,哪怕你再修改web.xml中的displ ...

  8. Eclipse中Maven WEB工程tomcat调试

    最近没事了玩一下maven,使用maven管理工程中的依赖包非常的方便.建立maven web工程的时候开始不知道怎么用tomcat来调试,总是使用mave的tomcat插件发布了后来调试,觉得非常的 ...

  9. eclipse中tomcat的add and Remove找不到项目

    在我们运行项目前,都需要将项目部署到tomcat上,但是有时我们会遇到这种情况:项目明明存在,但是eclipse中tomcat的add and remove找不到项目,无法部署,那么这个问题该如何解决 ...

  10. 【Eclipse中使用Git之一】把远程仓库的项目,clone到eclipse里面

    [Eclipse中使用Git之一]把远程仓库的项目,clone到eclipse里面 2015-01-29 19:25 15779人阅读 评论(1) 收藏 举报 .embody{ padding:10p ...

随机推荐

  1. c/c++指针总结[pointer summary]

    [本文链接] http://www.cnblogs.com/hellogiser/p/pointer-summary.html 1.指针注意事项 (1). 指针类型字符串不容许修改 char *str ...

  2. C#中读取二维数组每位的长度

    C#中的二维数组,如int[,] A=new int[a,b];则 a=A.GetLength(0);即可获得二维数组中第一维的长度. b=A.GetLength(1);即可获得二维数组中第二维的长度 ...

  3. 牛刀小试、用SharePoint 实现请假管理功能

    转:http://www.cr173.com/html/15518_1.html "请假管理"应用,应该算是 SharePoint 的"Hello World!" ...

  4. 使用mbedtls的使用说明和AES加密方法(原来的PolarSSL)

    关于PolarSSL mbed TLS(以前称为PolarSSL)是TLS和SSL协议的实现,并且需要相应的加密算法和支持代码.这是双重许可与Apache许可证 2.0版(与GPLv2许可也可).网站 ...

  5. event.target解析

    event.target返回最初触发事件的DOM对象. Vue例子: main.js methods:{ fan:function(event){ console.log(event.target); ...

  6. mimkatz 用法

    mimikatz用法 privilege::debug    进入debug模式 sekurlsa::logonPasswords 查看所有用户密码 sekurlsa::wdigest 读取当前登录用 ...

  7. SQL server 基本语法

    文字摘自https://www.cnblogs.com/chaoa/articles/3894311.html 一.定义变量 --简单赋值 declare @a intset @a=5 print @ ...

  8. HUAS 2018暑假第一周比赛-题解

    小朋友们有问题评论区 :) B. 子串计算 难度系数 : ☆ Main idea : 模拟 暴力 按照题目的要求一步一步来就行了 之所以可行的原因是从左往右扫,如果扫到一个子串,把它删除掉之后,假设当 ...

  9. Matlab Codes and Datasets for Feature Learning

    Matlab Codes and Datasets for Feature Learning 浙江大学CAiDeng提供的Matlab特征学习Code.

  10. Android之打包签名

    一.什么的是打包? 打包就是根据签名和其他标识生成安装包. 二.什么是签名? 1.在android应用文件(apk)中保存的一个特别字符串 2.用来标识不同的应用开发者:开发者A,开发者B 3.一个应 ...