【Java框架型项目从入门到装逼】第三节 - 如何用Tomcat发布web项目?

简介: 【Java框架型项目从入门到装逼】第三节 - 如何用Tomcat发布web项目?

啥叫Tomcat?有道词典是这么说的。

35.png

这个我们姑且不管,实际上呢,Tomcat是一种Web服务器,我们自己做好了一个Web项目,就可以通过Tomcat来发布。服务器呢,又分为硬件服务器和软件服务器。硬件服务器一般来说就是一台电脑,而软件服务器则是一个应用程序,比如Tomcat它本身就是一个程序。

36.png

让我们来看一下Tomcat的目录结构:

37.png

Bin目录里面都是一些脚本文件:

38.png

我们需要关注的就是startup.bat这个文件,当我们双击这个文件,就可以启动Tomcat服务器。接下来,我们顺便来说一说配置环境变量的问题,我们知道,在安装JDK的时候就需要配置环境变量。简单来说,配置环境变量的目的就是让用户可以在任何目录都能访问到某一个文件夹的文件。比如,我们打开cmd命令窗口:


39.png

39.png


输入cmd,点确定。

40.png

我们希望通过这个命令来打开startup.bat,然而并没有什么卵用!

41.png

因为路径不对,是吧。好,那么现在我们调整到Tomcat的bin目录:

42.png


运行

35.png36.png


这样就好了,恭喜你,Tomcat服务器已经成功启动了!

大家是不是很好奇,有没有一种不需要跳转到指定目录就可以运行startup.bat的方法呢?这就需要我们配置环境变量了。

右键我的电脑,属性。


43.png44.png45.png46.png47.png


在path后面添加 ;%TOMCAT_HOME%\bin ,确定。

重新再cmd命令窗口执行startup.bat命令:

48.png


出现这个错误,它说环境变量名字不对,应该叫CATALINA_HOME,OK,那我们就改成这个环境变量,然后就好了。

现在,我们在conf目录中我们打开server.xml,可以查看Tomcat的端口号。


49.png

50.png

这个8080就是端口号,我们用http://localhost:8080 , 可以访问到Tomcat的首页。

52.png


##1、tomcat服务器映射方式一

tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。

现在我们来手工搭建一个web项目,首先,在webapps目录下新建一个文件夹,是的,就是文件夹,不管你项目是什么,肯定还是放在文件夹里面的。

53.png

项目名称就叫做myapp。

打开myapp,根据web项目的规范,我们需要有一个WEB-INF文件夹。

54.png

然后,在WEB-INF文件夹里面,必须要有一个web.xml文件。

Web.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
  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_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>


<?xml version="1.0" encoding="UTF-8"?> 这句话表示这个文件是xml文件。

<web-app version="2.5" 
  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_2_5.xsd">
</web-app>


web.xml的模式文件是由Sun公司定义的,每个web.xml文件的根元素中,都必须标明这个 web.xml使用的是哪个模式文件。其它的元素都放在之中。

<welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
</welcome-file-list>


这个是设置欢迎页,因为我们现在还没有欢迎页,所以要写一个。

55.png


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
  这是我的APP
</body>
</html>


然后访问http://localhost:8080/myapp/ 的时候,就会默认找到index.jsp文件。如果出现中文乱码,从以下几个方面考虑:

1、 文件本身的编码格式是不是UTF-8,不是的话就用一个文本工具另存为一下。

2、 Server.xml中有没有指定编码格式为UTF-8 。

<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='UTF-8' />

3、 JSP页面有没有设置编码为UTF-8 。

##2、Tomcat服务器虚拟目录的映射方式二

在server.xml配置文件的添加配置。

<Host name="localhost"  appBase="webapps"
              unpackWARs="true" autoDeploy="true" 
              xmlValidation="false" xmlNamespaceAware="false"> 
  <Context path="/JavaWebApp" docBase="D:\myapp" />
</Host> 


其中,Context表示上下文,代表的就是一个JavaWeb应用,Context元素有两个属性,

 Ⅰ.path:用来配置虚似目录,必须以"/"开头。

 Ⅱ.docBase:配置此虚似目录对应着硬盘上的Web应用所在目录。


如果我们不想要把web项目丢到webapp目录,那又该怎么办呢?没错,我们就采用第二种方式。


我现在把myapp项目放到D盘根目录,为了防止你们说我使诈,我不但把访问地址改了,还把webapp目录下的myapp项目删掉了。


56.png

我们一般都推荐第二种方式。

相关文章
|
17天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
89 26
|
25天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
46 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
21天前
|
监控 架构师 Java
Java虚拟机调优的艺术:从入门到精通####
本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####
|
1月前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
|
1月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
39 2
|
1月前
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
85 1
|
1月前
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
57 6
|
1月前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
1月前
|
Java 程序员 数据库连接
Java中的异常处理:从入门到精通
在Java编程的海洋中,异常处理是一艘不可或缺的救生艇。它不仅保护你的代码免受错误数据的侵袭,还能确保用户体验的平稳航行。本文将带你领略异常处理的风浪,让你学会如何在Java中捕捉、处理和预防异常,从而成为一名真正的Java航海家。
|
7月前
|
安全 Java
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)