现在企业开发中,我们都会创建一个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. HP原装硒鼓

  2. Eclipse中如何修改SVN的地址

    在SVN服务端的IP更改后,客户端SVN的连接地址可以在Eclipse中进行修改,方法如下: 首先:在Eclipse中选择Windows-> Show View->others 就会出现[ ...

  3. win7任务栏还原为xp样式

    win7的确是非常强大的操作系统,值得一提的是超级任务栏,非常新颖,不过,不是很适应win7的超级任务栏,今天,我们恢复win7超级任务栏还原xp任务栏. 方法/步骤: 1.在win7超级任务栏空白处 ...

  4. IIS7/IIS7.5 二级域名伪静态设置方法

    转载地址:http://www.admin5.com/article/20120107/402582.shtml

  5. HttpListenerCS客户端监听http

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. C#的回调被C++调用

    __stdcall 要加这个 extern "C" __declspec(dllexport) 要用这样的东东 定义 extern "C" __declspec ...

  7. [LeetCode] “全排列”问题系列(二) - 基于全排列本身的问题,例题: Next Permutation , Permutation Sequence

    一.开篇 既上一篇<交换法生成全排列及其应用> 后,这里讲的是基于全排列 (Permutation)本身的一些问题,包括:求下一个全排列(Next Permutation):求指定位置的全 ...

  8. 微信公众号开发第六课 BAE结合实现迅雷账号随机分享

    迅雷离线是个好东西,那么我们能不能实现这样一个功能,回复迅雷,随机返回一个迅雷账户和密码. 首先在t_type类型表中添加 迅雷以及对应用值xunlei,这样返回的case值中对应值xunlei. 建 ...

  9. 将STM32的标准库编译成lib

    转载自:http://www.cnblogs.com/zyqgold/p/3189719.html 以前一直使用STM32的标准库,需要一步步地将代码加进去,将编译选项设置好,然后再编译整个工程. 这 ...

  10. 浅谈C++的this指针

    之所以写这篇文章,主要是为了回答网友 zhancaihua123同学的下面几个问题: father* p=new son;p->disp(...);father是父类,son是子类.disp是一 ...