引言
本次博客主要目的是记录在服务器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/即可得到下面的访问网页。
注意记得打开服务器的入站规则端口8080,如下所示:
三、使用IDEA本地实现webapp并打包上传至服务器
本教程会在本地实现一个简单的Servlet程序,并打包成.war后放至远端Tomcat服务器上,实现远程访问,其步骤如下。
1.我们使用IntelliJ IDEA完全版编辑器(该版本为收费版本,免费的社区版没有新建Web Application的功能)来编写第一个程序并部署到Tomcat上。这里提供下某大神的破解工具,可以完美破解2019.3.3及其以下版本,仅供学习用。
2.新建第一个项目,注意本地需要有Java环境,最好与服务器的Java版本一致,如图所示。创建第一个工程的名称为World。
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下面,如图所示。
确认后,点击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中定义的名称。访问结果如下。