服务器Tomcat的搭建及Java Servlet使用

引言

本次博客主要目的是记录在服务器Ubuntu 18.04.3 LTS上搭建Tomcat作为服务端的操作,同时编写一个Java Servlet程序并运行。Java Servlet需要基于Java和tomcat的环境才能运行。

一、Java环境搭建

1.由于Java的JDK更新版本多,这里建议上官网自个儿下载适合的安装包,本次活动使用jdk-13.0.2_linux-x64_bin.tar.gz(该包免安装,184M大小)为服务器配置Java环境。由于我是下载至Windows系统,还得再传到服务器上去解压使用,具体操作是在JDK当前目录打开cmd终端,后续指令如下:

pscp ./13.0.2_linux-x64_bin.tar.gz [用户名]@[服务器IP]:/usr/local/lib

以上用户名和服务器IP根据自己的服务器而定,我们传至服务器的/usr/local/lib目录下,该目录一般被认为用户自己安装的软件目录
2.Windows系统下打开putty连接服务器,进入/usr/local/lib目录解压JDK压缩包至当前目录:

tar zxvf 13.0.2_linux-x64_bin.tar.gz

解压完毕会在当前目录出现jdk-13.0.2的目录。
3.删除压缩包:

rm -rf 13.0.2_linux-x64_bin.tar.gz

4.配置jdk环境变量,注意这里的配置是针对全局进行设置,如果针对单个用户,应该是修改~/.bashrc而不是/etc/profile:

vim /etc/profile

在该文件末尾写上如下配置后保存退出:

# set jdk-13 env
export JAVA_HOME=/usr/local/lib/jdk-13.0.2
export PATH=$PATH:$JAVA_HOME/bin

5.更新配置文件:

source /etc/profile

6.通过查看Java版本去检查是否配置成功:

java -version

二、Tomcat安装使用

1.经过步骤一后,有了Tomcat的基础环境,进一步从Tomcat的官网下载apache-tomcat-10.0.0-M1.tar.gz(从core目录下面下载,该包免安装,10M大小)。同理,按步骤一里的1~3把tomcat放至/usr/local/lib下面,形成目录apache-tomcat-10.0.0-M1。
2.在/etc/profile文件的最后,继续修改配置,添加如下配置:

# set tomcat-10 env
export CATALINA_HOME=/usr/local/lib/apache-tomcat-10.0.0-M1
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/servlet-api.jar

添加完后,记得用步骤一的5重新更新配置。
3.启动Tomcat
进入到目录/usr/local/lib/apache-tomcat-10.0.0-M1/bin下。
启动命令如下:

./startup.sh

关闭命令如下:

./shutdown.sh

4.访问Tomcat。
浏览器输入http://[服务器IP]:8080/即可得到下面的访问网页。


Tomcat

注意记得打开服务器的入站规则端口8080,如下所示:


入站规则

三、使用IDEA本地实现webapp并打包上传至服务器

本教程会在本地实现一个简单的Servlet程序,并打包成.war后放至远端Tomcat服务器上,实现远程访问,其步骤如下。
1.我们使用IntelliJ IDEA完全版编辑器(该版本为收费版本,免费的社区版没有新建Web Application的功能)来编写第一个程序并部署到Tomcat上。这里提供下某大神的破解工具,可以完美破解2019.3.3及其以下版本,仅供学习用。
2.新建第一个项目,注意本地需要有Java环境,最好与服务器的Java版本一致,如图所示。创建第一个工程的名称为World。

第一个webapp

3.创建工程完,右键工程的src文件 --> 新建Servlet --> 命名为HelloWorldServlet,其代码如下所示,本代码由Tomcat官方提供。

import java.io.*;
import jakarta.servlet.*;
import jakarta.servlet.http.*;

public class HelloWorldServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World!</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Hello World!</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}

4.添加servlet-api依赖,右键工程名字 --> 选择Project Structure --> 选择Libraries --> 选择"+" --> Java --> 找到从Tomcat的官网下载的tomcat免安装包/lib/servlet-api.jar(注意本地为Windows系统,得找Windows包下载)进行添加。
5.编写项目中的web.xml,其代码如下:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>HelloWorldServlet</servlet-name>
        <servlet-class>HelloWorldServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloWorldServlet</servlet-name>
        <url-pattern>/HelloWorldServlet</url-pattern>
    </servlet-mapping>
</web-app>

7.打包为.war文件
选择File --> Project Structure --> Artifacts --> "+" --> Web Application: Archive --> Empty。把Name改为World,同时把右边的工程拖拽到World.war下面,如图所示。


打包war

确认后,点击Build --> Build Artifacts... --> 选择刚才的配置包进行编译。最后的World.war就会出现在上图配置的路径下面。
8.在含有World.war的当前目录打开cmd,上传World.war包到服务器Tomcat目录下的webapps目录即可。

pscp ./HelloWorld.war [用户名]@[服务器IP]:/usr/local/lib/apache-tomcat-10.0.0-M1/webapps

9.重启Tomcat服务

# 进入到Tomcat的bin目录下
cd /usr/local/lib/apache-tomcat-10.0.0-M1/bin/

# 由于之前开启着Tomcat,所以先执行下关闭指令
./shutdown.sh

#启动Tomcat
./startup.sh

启动后World.war会在当前目录新建并展开名为World目录,可以用指令ls进行查看。

10.浏览器输入如下地址,访问Servlet

http://[服务器IP]:8080/World/HelloWorldServlet

其中World为项目名称,HellWorldServlet为web.xml中定义的名称。访问结果如下。

Hello World!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容