Tomcat部署Java Web项目教程

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云服务器ECS,u1 2核4GB 1个月
简介:

Tomcat是一个开源的且免费的Java Web服务器,常用来作为web开发的工具。它可以托管由servlet,JSP页面(动态内容),HTML页面,js,样式表,图片(静态内容)组成的Java Web应用程序。

部署方式
在阿里云服务器下部署JAVA提供三种部署方式:
JAVA镜像部署
JAVA环境(CentOS7.2 Nginx Tomcat8 JDK)
一键安装包部署
OneinStack一键PHP JAVA安装工具《专业版》
手动部署(源码编译安装/YUM安装)
一般推荐镜像部署适合新手使用更加快捷方便,安装包部署以及手动部署适合对Linux命令有基本了解的用户,可以满足用户个性化部署的要求。本教程主要介绍镜像和手工部署的方式。

镜像部署

单击 JAVA环境(CentOS7.2 Nginx Tomcat8 JDK)进入镜像详情页。
单击 立即购买,按提示步骤购买 ECS 实例。
登录 ECS 管理控制台。
在左边导航栏里,单击 实例,进入 ECS 实例列表页
选择所购 ECS 实例所在的地域,并找到所购 ECS 实例,在 IP 地址 列获取该实例的公网 IP 地址。
在浏览器地址栏中输入公网 IP 地址,下载操作文档。
image

使用putty登录Linux服务器,参考《连接Linux实例》;忘记root密码参考《重置实例密码》。
使用winscp工具将Java代码放入/data/wwwroot/default中。
image

默认tomcat是以一般www用户运行,将网站代码权限改为www,执行下面命令:
-R www.www /data/wwwroot
image

重启tomcat
image

在浏览器地址栏中输入公网 IP 地址,验证。出现 If you're seeing this... 字样,标明安装成功。
手工部署
系统平台:CentOS 7.3
Tomcat版本:Tomcat8.5.13
JDK版本:JDK1.8.0_121
安装前准备
CentOS 7.3系统默认开启了防火墙,需关闭后外部才可访问本机的80、443、8080等端口,如需做安全类配置可自行参考官方文档。
关闭防火墙:
systemctl stop firewalld.service
关闭防火墙开机自启动:
systemctl disable firewalld.service
创建一般用户www,运行tomcat:
useradd www
创建网站根目录:
mkdir -p /data/wwwroot/default
新建Tomcat测试页面:
echo Tomcat test > /data/wwwroot/default/index.jsp
chown -R www.www /data/wwwroot
image

源代码下载
wget https://mirrors.aliyun.com/apache/tomcat/tomcat-8/v8.5.13/bin/apache-tomcat-8.5.13.tar.gz
wget http://mirrors.linuxeye.com/jdk/jdk-8u121-linux-x64.tar.gz
安装JDK
新建一个目录:
mkdir /usr/java
解压jdk-8u121-linux-x64.tar.gz到/usr/java
tar xzf jdk-8u121-linux-x64.tar.gz -C /usr/java
image

设置环境变量
vi /etc/profile

set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_121
export CLASSPATH=JAVA_HOME/lib/dt.jar:JAVA_HOME/bin:$PATH
加载环境变量:
source /etc/profile
查看jdk版本:
java -version
image

安装Tomcat
解压apache-tomcat-8.5.13.tar.gz,重命名tomcat目录,设置用户权限
tar xzf apache-tomcat-8.5.13.tar.gz
mv apache-tomcat-8.5.13 /usr/local/tomcat
chown -R www.www /usr/local/tomcat
说明:
bin:目录中存放Tomcat的一些脚本文件,包含启动和关闭tomcat服务脚本。
conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml
webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录
logs:存放Tomcat执行时的日志文件
配置server.xml
cd /usr/local/tomcat/conf/
mv server.xml server.xml_bk
vi server.xml 添加如下内容:
<?xml version="1.0" encoding="UTF-8"?>

      type="org.apache.catalina.UserDatabase"
      description="User database that can be updated and saved"
      factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
      pathname="conf/tomcat-users.xml" />

      protocol="HTTP/1.1"
      connectionTimeout="20000"
      redirectPort="8443"
      maxThreads="1000"
      minSpareThreads="20"
      acceptCount="1000"
      maxHttpHeaderSize="65536"
      debug="0"
      disableUploadTimeout="true"
      useBodyEncodingForURI="true"
      enableLookups="false"
      URIEncoding="UTF-8" />


<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
       resourceName="UserDatabase"/>


<Context path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />


设置JVM内存参数
vi /usr/local/tomcat/bin/setenv.sh
JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx496m -Dfile.encoding=UTF-8'
设置tomcat自启动脚本
下载脚本:
wget https://github.com/lj2007331/oneinstack/raw/master/init.d/Tomcat-init
mv Tomcat-init /etc/init.d/tomcat
添加执行权限:
chmod +x /etc/init.d/tomcat
设置启动脚本JAVA_HOME:
sed -i 's@^export JAVA_HOME=.*@export JAVA_HOME=/usr/java/jdk1.8.0_121@' /etc/init.d/tomcat
image

设置自启动
chkconfig --add tomcat
chkconfig tomcat on
启动tomcat
service tomcat start
image

在浏览器地址栏中输入http://ip:8080,即可访问

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
3天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
11 0
|
3天前
|
JavaScript Java 测试技术
基于Java的物流配送人员车辆调度管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的物流配送人员车辆调度管理系统的设计与实现(源码+lw+部署文档+讲解等)
9 0
|
3天前
|
JavaScript Java 测试技术
基于Java的网上书城的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网上书城的设计与实现(源码+lw+部署文档+讲解等)
18 0
|
3天前
|
JavaScript Java 测试技术
基于Java的网络游戏交易系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网络游戏交易系统的设计与实现(源码+lw+部署文档+讲解等)
16 0
|
3天前
|
JavaScript Java 测试技术
基于Java的家政公司服务平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的家政公司服务平台的设计与实现(源码+lw+部署文档+讲解等)
20 1
|
9天前
|
存储 Java 数据库连接
java多线程之线程通信
java多线程之线程通信
|
9天前
|
安全 Java 开发者
深入理解Java并发编程:线程安全与性能优化
【4月更文挑战第9天】本文将深入探讨Java并发编程的核心概念,包括线程安全和性能优化。我们将详细解析Java中的同步机制,包括synchronized关键字、Lock接口以及并发集合等,并探讨它们如何影响程序的性能。此外,我们还将讨论Java内存模型,以及它如何影响并发程序的行为。最后,我们将提供一些实用的并发编程技巧和最佳实践,帮助开发者编写出既线程安全又高效的Java程序。
22 3
|
11天前
|
Java
Java 并发编程:深入理解线程池
【4月更文挑战第8天】本文将深入探讨 Java 中的线程池技术,包括其工作原理、优势以及如何使用。线程池是 Java 并发编程的重要工具,它可以有效地管理和控制线程的执行,提高系统性能。通过本文的学习,读者将对线程池有更深入的理解,并能在实际开发中灵活运用。
|
9天前
|
算法 Java 开发者
Java中的多线程编程:概念、实现与性能优化
【4月更文挑战第9天】在Java编程中,多线程是一种强大的工具,它允许开发者创建并发执行的程序,提高系统的响应性和吞吐量。本文将深入探讨Java多线程的核心概念,包括线程的生命周期、线程同步机制以及线程池的使用。接着,我们将展示如何通过继承Thread类和实现Runnable接口来创建线程,并讨论各自的优缺点。此外,文章还将介绍高级主题,如死锁的预防、避免和检测,以及如何使用并发集合和原子变量来提高多线程程序的性能和安全性。最后,我们将提供一些实用的性能优化技巧,帮助开发者编写出更高效、更稳定的多线程应用程序。