1:idea中配置tomcat后,那么最终的web工程发布到哪里去了?为什么在访问路径中不加工程名就可以访问?

  1.1:因为tomcat有段时间没接触了,先回顾下tomcat的目录结构吧?

  如图所示:各级文件的主要保存内容是:

  • bin:主要是tomcat的一些命令。环境变量、内存修改什么的;
  • conf:这个很重要,存放了tomcat的配置文件。

    • server.xml(端口,加载目录等),web.xml,context.xml等;
    • Catalina目录:可设置默认加载目录
  • lib:tomcat的依赖jar包;
  • logs:日志
  • temp:临时文件;
  • webapps:应用目录
    • ROOT:默认工程(比如地址栏没有工程名时,默认Root下工程);
    • 其他工程;  
  • work:运行时生成的文件,通过webapps生成,最终运行的文件都在这里,删除无影响。

  1.2:我们知道,MyEclipse是直接将工程copy到tomcat的webapps目录中,在将tomcat运行起来,通过工程名访问该工程。所以我们可以在webapps中找到对应的工程文件。但是idea不是这么干的,webapps下面是没有你要发布的工程文件的。

  1.3:idea安装时的默认缓存文件夹放在c盘中,我们在idea中启动一个web项目,在server栏中可以定位到该工程的具体,比如这里我是:

  我的工程名字是:struts2_smallcase,我们打开catalina_base目录:

  这三个文件是idea在发布web项目到tomcat时,从项目配置的tomcat地址copy过来的,里面内容完全一致。向上一级:

  发现,我们用idea跑过的工程都在 C:\Users\Administrator\.IntelliJIdea2017.3\system\tomcat 中,采用tomcat名_工程名的形式;

  到此,我们已经了解到,idea是为每一个发布的project,将tomcat的配置文件复制到idea缓存文件的工程缓存中去。可是为什么访问不需要工程名?

  因为每个project都有独立的tomcat配置副本,所以有理由怀疑,idea将当前project设置成默认的访问工程了,事实上我们进入 Tomcat_9_0_0_M22_struts2_smalecase\conf\Catalina\localhost ,发现了里面的ROOT.xml文件,因为tomcat可以通过在conf/Catalina下新建***.xml文件设置默认加载目录,我们打开ROOT.xml,果然:

虚拟目录的映射关系很清楚了!空白路径上的访问都指向了docBase。

  1.4:idea的tomcat配置 Application context 与访问路径:

   默认情况下,是“/”,此时可以通过: http://localhost:8080/ 访问到index页面,但是修改到:  http://localhost:8080/struts2_smalecase/  是访问不到的;

   如果改成上图形式:那么 http://localhost:8080/ 不能访问,而 http://localhost:8080/struts2_smalecase/ 是可以正常访问的。

     因此,我怀疑是:无论 Application context 怎么配置,都是通过 http://localhost:8080/Application context 路径访问该工程,只是地址栏上带不带工程名的问题了。

 2:主要是用来熟悉一下struts2的struts.xml的配置和相关的逻辑:

ref:http://www.cnblogs.com/compassblog/p/8454543.html

--End--

struts2学习二:Tomcat的部署目录和访问路径问题的更多相关文章

  1. Java学习-032-JavaWeb_001 -- Tomcat环境部署及基本配置

    首先到 Tomcat 官网,下载对应的版本,我本机的系统是 WIN7 64BIT 的,因而我选择的是64bit 的zip包,如下图所示:

  2. Java学习-043-获取文件在目录中的路径

    我们在日常的电脑使用中,经常需要在当前目录或当期目录及其子目录中查找文件,并获取相应的文件路径名.在我们的自动化测试中,也经常需要确认文件在目录中是否成功生成或已存在,因而我写了一个小方法来实现. 获 ...

  3. Maven入门---修改tomcat版本及端口及访问路径(四)

    Maven中通过添加插件修改tomcat版本及端口及访问路径 --------------------------------------------------------------------- ...

  4. 更改Eclipse下Tomcat的部署目录 ,防止上传的文件是到eclipse的克隆的tomcat上的webapp,而不是tomcat本身的webapp

    使用eclipse开发是因为机器不够用myeclipse,eclipse也比myeclipse清爽很多,启动速度也快.这里的搭建开发环境使用: Jdk1.6+Tomcat6+Eclipse JEE, ...

  5. 更改Eclipse下Tomcat的部署目录

    转自:http://kingxss.iteye.com/blog/1741438 前言 今天tomcat启动就报错,后来查原因是因为异常关闭tomcat的原因,需要删除一个sessions.ser的文 ...

  6. [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  7. Java开发学习(二十四)----SpringMVC设置请求映射路径

    一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMVC入门案例.工作流程解析及设置bean加载控制中环境准备 pom.xml添加Spring依赖 < ...

  8. Tomcat改端口号;修改访问路径,以及配置Context 标签以后Tomcat启动不了

    修改tomcat端口号: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout=&qu ...

  9. Tomcat学习(二)------Tomcat原理详解及请求过程

    Tomcat: Tomcat是一个JSP/Servlet容器.其作为Servlet容器,有三种工作模式:独立的Servlet容器.进程内的Servlet容器和进程外的Servlet容器. Tomcat ...

随机推荐

  1. 关于 share 音乐分享官方文档补充

    例子 音乐分享 /*--------微信朋友圈--------*/ [shareParams SSDKSetupWeChatParamsByText:@"内容" title:@&q ...

  2. Django框架路由分发-名称空间

    目录 一:路由分发 1.路由分发简介 2.总路由分发配置 3.总路由终极配置(不需要导应用路由,直接点应用即可) 4.子路由配置 二:名称空间 1.名称空间应用场景 3.解决方式二>>&g ...

  3. CobaltStrike逆向学习系列(8):Beacon 结果回传流程分析

    这是[信安成长计划]的第 8 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 Beacon 接收与处理 0x02 结果回传 Beacon 在接受完命令并执行后,会将数据加密回传给 T ...

  4. NSSCTF-error

    打开网页出现一个输入框,尝试使用127.0.0.1发现只是回显我们输入的内容 尝试进行注入,输入数字1会回显没有提示......,order by进行判断列数,得到有三列 接着就是正常注入的思路,使用 ...

  5. kali linux 安装lanmp遇到的问题

    安装LANMP步骤(需要ROOT权限)2020版本以上的Linux kali需要百度参考修改权限得文章 root@kali:~# wget http://dl.wdlinux.cn/files/lan ...

  6. springboot项目 @Scheduled注解 实现定时任务

    使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式: 一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer) 前者相信大家都很熟悉,但是实 ...

  7. PyTorch 如何理解张量:一维张量、二维张量、行/列向量、矩阵

    理解张量,并将张量与线性代数的知识连接起来,我认为最重要的是理解 tensor 的两个属性:shape 和 ndim . ndim 表示张量的维度,一维张量的 ndim 值为 1,二维张量的 ndim ...

  8. idea教程--快速插入依赖

    1.打开pom.xml文件,按下快捷键Alt+insert,弹出Generate框,选择Dependency. 2.搜索所需jar的关键字. 3.点击add.添加jar包成功.如果第二步没有所要jar ...

  9. Anaconda Navigator:this application failed to start because it could not find or load ...windows in

    原因:在Anaconda的根目录下,有一个叫 qt.conf的文件,用记事本或者Notepad打开 该问题是这些路径错误导致的(比如你把Anaconda挪动了位置,导致这里边的路径还是原来的位置). ...

  10. OS模块的补充使用---执行终端命令

    Python基础至os模块 由于近期的项目需要用到对应的终端命令去调用其他程序,因此温习一下os.system()函数: 参考文献:https://zhuanlan.zhihu.com/p/51716 ...