Tomcat服务器浅析


一、Tomcat是什么?

百度百科:Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

简单来说,Tomcat就是Java体系下的一个Web服务器软件,用于在服务端中提供Web服务的一个软件,底层用Socket通信协议,是Servlet和Jsp的一个容器

在这里插入图片描述
浏览器发出http请求,Tomcat提供Web服务将Servlet/jsp/html容器内的结果返回

二、Tomcat的目录结构

在Tomcat官网上(https://tomcat.apache.org/)下载,可选择解压版或安装版(开发建议使用解压版,方便调试测试),安装时候依赖JDK,需要配置好JAVA_HOME系统环境变量。

在这里插入图片描述

1、配置端口及应用根目录

打开conf配置文件夹,找到server.xml配置文件
在这里插入图片描述
找到Connetor代码段,Tomcat端口默认是port:8080端口:

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

找到Host代码段:
Host:一个 Host 表示一个域名/IP 配置,一个 Tomcat 可以配置多个 Host,默认有一个 localhost(表示本机)的
配置
name :域名/IP,这里使用localhost域名访问【localhost代表本机】
appBase :该域名/IP 对应的应用根目录,默认 localhost 指向的是 Tomcat 根目录中的 webapps 目录

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
</Host>

虚拟主机:(多个不同域名的网站共存于一个Tomcat中)
假如不配置虚拟主机,如果需要有多个不同域名/IP的网站同时在电脑上运行,一个Tomcat运行一个域名,那么需要有多台电脑才能实现。
这个时候就可以使用虚拟主机,增加多个Host主机名,让Tomcat可以启动多个域名/IP的网站

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
</Host>
<Host name="myhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
</Host>

虚拟目录:
如果存在非常多的web站点目录,都放在webapps下,可能导致磁盘空间不足,也不利于管理
把web站点的目录分散到其他磁盘管理就需要配置虚拟目录

1、在其他位置下创建一个web站点目录,并创建WEB-INF目录和一个html文件
在这里插入图片描述

找到Tomcat目录下/conf/server.xml文件在server.xml中的节点下添加如下代码。
path表示的是访问时输入的web项目名,docBase表示的是站点目录的绝对路径

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

<Context path="/MyWeb" docBase="D:\MyWeb"/> <!--插入代码段-->

</Host>

在浏览器中访问html文件
在这里插入图片描述

2、WEB-INF文件目录

在Tomcat给我们的例子中,根目录下webapps/examples下,有一个WEB-INF文件夹,这个文件夹对应客户端是不可见的,因此css,javascript和图片等资源文件不能放在WEB-INF下
在这里插入图片描述
在这里插入图片描述

三、Tomcat访问文件

1、静态文件

Tomcat对应的webapps的文件目录是ROOT文件夹,而不是webapps文件夹。
如果把html等静态文件放在webapps文件夹下则无法访问成功(404显示找不到该文件)!
在这里插入图片描述

在这里插入图片描述
而如果放在ROOT文件夹内,访问返回成功
在这里插入图片描述
在这里插入图片描述
假设我们在webapps里面创建一个文件夹叫test,再访问test里面的test.html页面,能否访问成功呢?
在这里插入图片描述
在这里插入图片描述
test文件夹里的文件正常访问。

因此,在我们正式部署时,通常会把系统部署到 ROOT 文件夹中,这样访问时不用加项目文件夹名,而平时开发时,为了方便管理,应该新建项目文件夹独立放在 webapps 中,访问时需要加项目文件夹名。、

2、动态文件

利用servlet容器,动态访问Java文件内容。
我们在webapps下新建一个demo文件夹,在demo文件夹下再创建一个WEB-INF文件夹
在这里插入图片描述
创建classes文件夹(存放java类),web.xml配置文件
在这里插入图片描述
classes下新建一个DemoServlet.java文件并编译成java类

//DemoServlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class DemoServlet extends HttpServlet{
	//Get请求
    public void doGet(HttpServletRequest request,HttpServletResponse response)
			throws ServletException,IOException{
		request.setCharacterEncoding("UTF-8");//设置请求解析编码
		response.setCharacterEncoding("UTF-8");   //设置回复格式编码
		response.setContentType("text/html; charset=UTF-8");  
		PrintWriter out = response.getWriter();
		//输出html代码到客户端
		out.println("<html><head></head><body>这是一个servlet!</body></html>");//
		out.close();

    }
  	//Post请求
    public void doPost(HttpServletRequest request,HttpServletResponse response)
			throws ServletException,IOException{
		doGet(request,response); //调用Get请求方法
    }  
}

两个文件
这个时候还需要配置web.xml配置文件,让Tomcat知道如何访问你的文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5">
	<!-- 网站配置文件 -->
	
	<servlet>
	   	<servlet-name>Servlet</servlet-name>
	   	<servlet-class>DemoServlet</servlet-class> <!--调用的类名-->
	</servlet>   
	<servlet-mapping> 
	    <servlet-name>Servlet</servlet-name><!--必须与servlet里面的name名字一样-->
	    <url-pattern>/servlet</url-pattern><!--访问链接-->
	</servlet-mapping>

</web-app>

在浏览器进行访问
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值