Tomcat的配置与讲解(含Java环境配置,tomcat配置,tomcat讲解)

Tomcat介绍
问题开始之前,我们来对tomcat进行一些简单的介绍,有过web基础的朋友应该会了解到,自己用css,html写的页面只能自己访问,别人无法远程访问到自己写的页面。tomcat作为开源的web服务器,提供了能够让别人访问自己所写页面的一个程序,相比之下优势明显。除此之外,Tomcat运行时占用的系统资源小,扩展性好,支持负载均衡与邮件服务等开发应用系统常用的功能;作为小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
Tomcat的配置
工欲善其事必先利其器
运行Tomcat需要JDK的支持,这里我简单的说一下Java环境的配置吧,已经配置过Java环境变量的朋友就可以跳过这一部分啦!
Java环境的配置
首先要去官网点此进入下载需要的JDK(Windowsx64对应Windows64位系统,x86对应32位系统);
在这里插入图片描述
接受条款之后下载;
在这里插入图片描述
在这里插入图片描述
下载完成,双击此应用程序进入安装向导界面;
在这里插入图片描述
这里我们根据需要选择安装路径就行,但是要记住自己的安装路径,后续配置环境变量的时候需要用到;
在这里插入图片描述
在这里插入图片描述
等待安装,安装完成之后关闭页面即可。
在这里插入图片描述
下载完毕,以win10系统为例,让我们来配置环境变量吧!
依次点击:此电脑—属性—高级系统设置—环境变量
先新建一个JAVA_HOME
名称:JAVA_HOME
值:刚才jdk的安装路径
在这里插入图片描述
随后新建classpath,
名称:classpath
值.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\tools.jar(注意所有的标点符号都是英文状态下的哦)
在这里插入图片描述
两个都新建完成之后双击系统变量中的Path,在最后一行新增%JAVA_HOME%\bin,如下:
在这里插入图片描述
至此Java的环境变量配置完成,下面来查看我们是否配置成功,win+R—输入cmd,依次键入java,javac,java -version,分别显示如下就表示配置成功!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
啰嗦了这么多,终于到了我们正题
tomcat的配置
Java环境变量配置成功,这个非常简单。
进入tomcat点此进入官网
在这里插入图片描述
选择适合自己JDK的tomcat版本,版本不适合后续使用可能会出现了Error deploying web application directory web222的问题,那么如何选择合适的版本呢?参考下图:
在这里插入图片描述
因为我Java的版本是1.8(也就是8),所以我下载tomcat9
在这里插入图片描述
在这里插入图片描述
下载完成解压
在这里插入图片描述
启动startup,依次点击apache-tomcat-9.0.40----bin----startup.bat,打开却出现了乱码:
在这里插入图片描述
百度之后的解决办法:依次进入apache-tomcat-9.0.40----conf----logging.properties
将java.util.logging.ConsoleHandler.encoding的编码方式由UTF-8改成JBK,如下:
在这里插入图片描述
然后再次打开bin目录下的startup.bat,发现已经没有乱码啦
在这里插入图片描述
在浏览器中输入http://localhost:8080,如果能够出现tomcat页面,说明我们配置成功了!(注意:进行这一步之前,要保证startup.bat处于打开状态,否则无法访问到)
在这里插入图片描述
tomcat 配置完毕!
tomcat的讲解
首先我们来了解一下这个:
在这里插入图片描述
webapps目录的详细说明
在webapps中建立了web目录,下面放置我们的html文件,jsp文件,图片等等,则web就被当做web应用管理起来【tomcat6.0以后的版本才支持】
例1在webapps下建立了web文件,里面存放了html文件(写入内容随意),此时我们在浏览器中访问localhost:8080/web站点/文件名.html会出现html文件中的内容,怎么实现?
在webapps目录下建立web2目录,web2目录下创建名为helloworld的html文件,如下:
在这里插入图片描述
在这里插入图片描述
helloworld.html原内容:
在这里插入图片描述
通过localhost访问:
在这里插入图片描述
web站点目录规范介绍
在这里插入图片描述
例2将web站点下的一个html文件作为网站首页,在访问的时候直接输出localhost:8080/web站点/就会出现此html文件的内容怎么实现?
在web2站点下新建立了helloworld2.html文件,写入内容随意,在web2站点下新建一个WEB_INF目录,在WEB_INF目录下创建web.xml文件(里面的内容可以去其他的类似文件中复制,例如这个webapp----examples----WEB_INF----web.xml),在文件中加入这样一段:

<welcome-file-list>
<welcome-file>helloworld2.html</welcome-file>
</welcome-file-list>

在这里插入图片描述
我的web.xml文件全部内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                                         http://java.sun.com/xml/ns/javaee/
                                         web-app_3_0.xsd"
version="3.0"
metadata-complete="true">

<display-name>Welcome to Tomcat</display-name>
<discription>
Welcome to Tomcat
</discription>

<welcome-file-list>
<welcome-file>helloworld2.html</welcome-file>
</welcome-file-list>

</web-app>

此时helloword2.html已经是web站点的首页了,所以不需要指定资源访问了,直接访问localhost:8080/web2/就会出现helloworld2里面的内容啦!
在这里插入图片描述

在这里插入图片描述
配置虚拟目录
这时候问题就来了,为什么需要配置虚拟目录呢?我们直接在webapps文件下创建目录不是简单快捷又方便吗?具体有以下原因:
1,事实上,如果我们把所有web站点的目录都放在webapps下,可能导致磁盘空间不够用,也不利于对web站点目录的管理(如果存在非常多的web站点目录);
2, 把web站点的目录分散到其他磁盘管理就需要配置虚拟目录(默认情况下,只有webapps下的目录才能被Tomcat自动管理成一个web站点);
3,把web应用所在目录交给web服务器管理,这个过程称之为虚拟目录的映射。
例3不在webapps目录下创建web站点,而在其他位置创建web站点,在浏览器中访问localhost:8080/web站点/文件名.html会出现html文件中的内容,怎么实现?
第一种方法:
在E盘创建tomcat文件夹,tomcat文件夹之下创建web1站点,web1站点下包含WEB_INF文件和1.html文件;
在这里插入图片描述
因为默认情况下只有webapps下的目录才会被当作web站点,而我们此时创建的web1不在webapps目录下,怎么访问呢?重点就是这里!找到tomcat目录下的/conf/server.xml,在server.xml文件的Host节点下填加如下代码,path表示的是访问时输入的web项目名,docBase表示的是站点目录的绝对路径。
在这里插入图片描述
配置完成,访问站点:
在这里插入图片描述
在这里插入图片描述
第二种方法:
依次进入到tomcat----conf----Catalina-----localhost文件下,创建一个xml文件,此文件的名字就是站点名。xml文件的代码下面有贴出来,docBase是创建的web站点的绝对路径(这里我依然是创建在E盘)
创建的html文件:
在这里插入图片描述
创建的xml文件:
在这里插入图片描述
xml文件内容:
在这里插入图片描述
OK,让我们来访问一下吧!
在这里插入图片描述
在这里插入图片描述
设置临时域名:
访问Tomcat服务器有好几种方式
使用localhost域名访问【localhost代表本机】
使用ip地址127.0.0.1访问【该ip地址也是本机】
使用机器名称访问【只限用于本机上或者局域网】
使用本机IP地址访问【在cmd中输入ipconfig可以查询到本机IP地址】
还可以为机器配置临时域名,要怎么操作呢?一起来看看吧!
依次进入C盘----Windows----System32----drivers----etc找到hosts并打开,设置临时域名
在这里插入图片描述
注意设置好之后重新启动tomcat目录下的startup.bat文件,随后就可以在浏览器通过http://临时域名访问了!
在这里插入图片描述
访问我们自己创建的文件也是没有问题的
在这里插入图片描述
设置虚拟主机:
问题1:什么是虚拟主机?
多个不同域名的网站共存于一个Tomcat中
问题2:为什么需要用到虚拟主机?
例子:我现在开发了4个网站,有4个域名。如果我不配置虚拟主机,一个Tomcat服务器运行一个网站,我就需要4台电脑才能把4个网站运行起来。
问题3(重点):配置虚拟主机的步骤
在tomcat的server.xml文件中添加主机名,一个主机名一个Host,在默认的Host下面添加就行
在这里插入图片描述
在浏览器通过http://主机名就可以访问啦
在这里插入图片描述
至此,tomcat的配置与讲解就结束啦,我们对这部分知识来一个概括性的总结。
tomcat体系结构:
在这里插入图片描述
浏览器访问web资源的流程图:
在这里插入图片描述
补充:
细心的朋友一定发现了,我上面实例中所有html文件中的内容都没有出现过中文,全是英文数字符号等。事实上,我最开始写的时候结合上面提到的打开startup.bat文件会出现乱码的情况考虑到,html文件中写中文也会出现乱码,但是这只是我最初的猜测,现在让我们来验证一下猜测是否正确吧!
我在web2站点新建了一个html文件,名为hhhh,在浏览器中输入http://localhost:8080/web2/hhhh.html访问此文件,观察中文那一句话是否出现乱码。
加入之后的html文件:
在这里插入图片描述

通过浏览器访问得到的:
在这里插入图片描述

啊这,,好吧既然确实会有乱码的问题,我们就找办法解决:
我搜索了一下,发现有这些解决办法:
1,进入tomcat----bin----catalina.bat,在set “JAVA_OPTS=%JAVA_OPTS%后增加一行:
%LOGGING_CONFIG% -Dfile.encoding=UTF-8”
2,进入tomcat----conf----server.xml,在<Connector中加入URIEncoding=“utf-8”,举例如下:

<Connector connectionTimeout="20000"
     port="8080" 
     protocol="HTTP/1.1"
     redirectPort="8443" 
     URIEncoding="UTF-8"/>

3,进入conf/web.xml,在标签中增加fileEncoding:

 <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
        	<param-name>fileEncoding</param-name>
        	<param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

4,在html页面设置为 utf-8 在页面头部添加meta

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<p>hello----这是一个测试文件</p>
	</body>
</html>

尝试了1,2,3都没有成功,方法4成功了,在这里感谢作者大大大佬主页比心!
在这里插入图片描述
小白一枚,写下这篇文章只是为了记录学习的过程,若是我遇到问题的解决办法有帮到你我会很开心!

  • 10
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值