下载Openjdk并配置环境变量
https://jdk.java.net/java-se-ri/11-MR2是官网下载Openjdk 11的地方。
sudo wget https://download.java.net/openjdk/jdk11.0.0.1/ri/openjdk-11.0.0.1_linux-x64_bin.tar.gz
下载openjdk 11。
sudo mkdir -p /usr/openjdk11
创建目录,sudo tar zx openjdk-11.0.0.1_linux-x64_bin.tar.gz -C /usr/openjdk11/
把文件解压到/usr/openjdk11/
目录里。
sudo vim /etc/profile
把下边两行内容:
bash
export JAVA_HOME=/usr/openjdk11/jdk-11.0.0.1/
PATH=$PATH:$JAVA_HOME/bin
写进去。
tail -n 2 /etc/profile
看到/etc/profile
最后两行的内容。
source /etc/profile
使配置文件生效。
java -version
显示如下就是配置好了:
bash
openjdk version "11.0.0.1" 2023-05-09
OpenJDK Runtime Environment 18.9 (build 11.0.0.1+3-5)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.0.1+3-5, mixed mode)
下载Tomcat并解压
https://archive.apache.org/dist/tomcat/是下载Tomcat的官网地址。
sudo wget -c https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
下载tomcat 9.0.80。
sudo tar zxf apache-tomcat-9.0.80.tar.gz
进行解压。
创建Servlet,编译并运行
sudo vim TestServlet.java
把下边的内容写进去:
java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("TestServlet 在处理get()请求...");
PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=utf-8");
out.println("<strong>Servlet doGet</strong><br>");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("TestServlet 在处理post()请求...");
PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=utf-8");
out.println("<strong>Servlet doPost</strong><br>");
}
}
sudo javac -cp apache-tomcat-9.0.80/lib/servlet-api.jar TestServlet.java
进行编译。
sudo mkdir -p apache-tomcat-9.0.80/webapps/MyWebApp/WEB-INF/
sudo mkdir -p apache-tomcat-9.0.80/webapps/MyWebApp/WEB-INF/classes
在tomcat中webapps
目录下创建特定的目录。
sudo vim apache-tomcat-9.0.80/webapps/MyWebApp/WEB-INF/web.xml
把下边的内容写进去:
xml
<?xml version="1.0" encoding="UTF-8"?>
<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"
metadata-complete="true">
<description> Servlet Example. </description>
<display-name> MyServlet Example </display-name>
<request-character-encoding>UTF-8</request-character-encoding>
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
</web-app>
sudo cp TestServlet.class apache-tomcat-9.0.80/webapps/MyWebApp/WEB-INF/classes/
把上边sudo javac -cp apache-tomcat-9.0.80/lib/servlet-api.jar TestServlet.java
生成的TestServlet.class
复制到apache-tomcat-9.0.80/webapps/MyWebApp/WEB-INF/classes/
里边。
sudo chmod u+x apache-tomcat-9.0.80/bin/startup.sh
为当前用户给启动脚本加上可执行权限。
sudo apache-tomcat-9.0.80/bin/startup.sh
启动。
sudo chmod u+x apache-tomcat-9.0.80/bin/shutdown.sh
把shutdown.sh
脚本给当前用户赋予可执行权限,sudo apache-tomcat-9.0.80/bin/shutdown.sh
关闭tomcat。
测试
curl测试
curl http://localhost:8080/MyWebApp/myservlet
访问一下。
浏览器测试
在浏览器里边输入http://localhost:8080/MyWebApp/myservlet
。
telnet测试
还可以使用telnet
手工拼接报文。
1.在命令行里边输入telnet
。
2.在telnet>
提示符下输入open 127.0.0.1 8080
。
3.然后按下Ctrl+],请注意Ctrl在屏幕上显示为^
。
4.在telnet>
提示符下按下Enter。
5.然后输入GET /MyWebApp/myservlet HTTP/1.1
,按下回车,再输入Host: localhost
。即如下所示:
bash
GET /MyWebApp/myservlet HTTP/1.1
Host: localhost
6.按下Ctrl+c退出。
此文章为10月Day 25学习笔记,内容来源于极客时间《深入拆解 Tomcat & Jetty》。