• tomcat8总结默认端口默认项目,以及图片上传和展示的路径问题.


    一.关于tomcat是常用的服务器软件,下面是总结关于正常的项目在tomcat上运行的几个问题.

      环境 :

    • 操作系统:windows7
    • tomcat版本:apache-tomcat-8.0.39
    1. tomcat的默认端口是8080,访问一个新的没有经过设置的tomcat的主页应该是这样访问= http://域名:端口号,例如http://haha.com:8080,本地的tomcat没有域名的情况下就是http://localhost:8080,但是一般的网址是没有端口号的,直接访问就可以访问网站,这需要怎么设置呢?
    2. 如果存在多个web项目,那怎么让访问者访问指定的一个默认项目呢?
    3. 上传图片或者文件的路径是保存在哪里?上传后又怎么展示出来?
    • 问题1,tomcat的默认端口为8080,web访问的默认端口为80,例如:www.baidu.com:80等同于www.baidu.com,所以我们只要修改访问的默认端口为80就可以了。

    在tomcat的安装目录如下图:

    其中,tomcat的配置文件放在conf这个文件夹下,进入这个文件夹,会看到一个server.xml文件,最好用带有xml文档高亮的编辑器打开这个文件,实在没有用记事本打开也可以,找到下面这段。

    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8449" />

    上面这段代码中的port 就是默认访问的端口,将它改为80,保存server.xml文件就修改了默认端口。

    但是仅仅经过这样的修改还是不行的,原因是每次tomcat启动后都会生成一个ROOT的项目,就是测试tomcat安装成功没有的那个界面,也就是说假如你的项目名称为pdc,你输入localhost访问的是localhost/ROOT这个项目,而并非localhost/pdc

    • 问题2,设置默认项目如果你想输入localhost直接访问pdc项目,还是在server.xml文件中找到这段
    <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
    
    </Host>

    在这段代码中插入如下代码:

    <Context path="" docBase="pdc" debug="0" reloadable="true" />

    这段代码的意思是 Context path为访问域名下面的路径,这里为""是空,效果就是指定 localhost:80/""这个地址,docBase就是项目名称pdc ,就是说明如果项目名称为空,访问的就是pdc

    如上配置完成后,直接输入localhost  就等同于localhost:80/pdc

    但是我们知道,将项目打成,pdc.war包后,直接复制项目到tomcat的webapps目录下,启动tomcat就会加载项目,但是你在运行之前,清空了webapps目录下的所有项目,如上配置后,再启动,其实会生成两个项目,一个是ROOT项目,一个是pdc项目

    这两个项目完全一模一样,如果单是访问的话,无所谓,展示的东西都是一样的。但是如果我访问的是ROOT项目,我上传了一张图片,然后再访问pdc项目会不会展示图片呢?结果是,图片将无法找到。

    这就产生了一个图片上传的问题。

    • 问题3,tomcat8上传图片与展示图片路径的问题

      其实,并非只跟路径有关,和项目也有关系,正常的思路是,你将请求上传的图片,用后台处理改名,存入一个项目指定的文件夹下,例如这个文件夹叫images,你上传后,就放到images里面了。但是后台代码的图片路径一般不会写成固定的类似这种“/pdc/iamges”如果是这样写,项目一改名,代码就会出错了,所以获得图片上传的路径一般都会用session.getContext().getRealPath()或者session.getContext().getContextPath()这样的方法直接获得路径,这样的话,如果你访问的是www.abc.com上传的图片,会存入到你的tomcat下webapps/ROOT/images里,如果你数据库存放的是图片的路径的话,那么可能就会得到//images这样的路径,如果你是www.abc.com/pdc访问的项目,并且上传了文件,你数据库里将会得到这样的路径/pdc/iamges

    所以很多刚接触tomcat的人,上传图片成功了,但是展示却出了问题,原因就是在这。要想避免这样的问题发生,其实方法还是有很多的,比如统一路径,在代码中就固定把文件固定放在/ROOT/images下,这样就只有ROOT的这个项目下有images这个文件夹,即使访问了pdc 存放路径也可以放到/ROOT下的images下。所以问题就是,如果你只有一个项目,你配置了默认项目的话,也会生成一个一模一样的ROOT项目,而ROOT上传的图片在ROOT/images下,访问pdc上传的图片,存放在pdc/images下。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    记素质拓展
    操场边的人
    ASP.NET MVC FileResult介绍
    SQL SERVER 数据类型详解
    ASP.NET 使用Response.WriteFile方法下载文件
    Java 静态代理和动态代理
    单例模式
    设计模式六原则
    Python 单例模式
    JAVA WEB 中涉及的编解码
  • 原文地址:https://www.cnblogs.com/winsker/p/6756196.html
Copyright © 2020-2023  润新知