一般不会手动部署应用,这篇文章适合应付学校老师布置的作业
一.准备工作
1.首先下载一个Tomcat。
2.打开下载的Tomcat文件夹,可以看到以下文件列表。
主要讲解一下这几个文件夹的作用:
bin:放 Tomcat 启动、关闭等命令行工具和可执行文件。
conf:存放 Tomcat 的配置文件。
lib:存放 Tomcat 运行所需的 Java 类库(JAR 文件)。
logs:存放 Tomcat 运行时的日志文件。
temp:存放 Tomcat 运行时产生的临时文件。
webapps:存放所有部署的 Web 应用程序。
work:存放 Tomcat 运行时生成的与 Web 应用相关的临时文件(如 JSP 编译后的 .class
文件)。
二.部署
1.部署规范
打开webapps,所有的web应用程序都在该文件下部署,下图为该文件夹的文件结构,手动部署时需遵循如下规范。
project1为自己自行部署的文件夹,名称可以自己起;
WEB-INF:存放所有资源的根目录;
html,css,jsp,js文件为应用的入口,外界可以直接访问,也可以没有;
classes:存放编译后的 Java 类;
web.xml:存放应用的配置文件;
lib:存放应用所需的库文件 (.jar)。
2.示例:
2.1 project1目录
如图,我在webapps目录下创建了一个project1文件,该文件下除了WEB-INF目录外我还创建了一个jsp文件作为程序的入口,jsp文件内容如下(代码放在文章末尾供大家复制):
2.2 WEB-INF目录
点击进入WEB-INF文件:
会发现我这里除了classes文件和web.xml文件外还多了一个.java文件,这个.java文件有没有都无所谓,我放在这里只是为了演示编译过程,下面是.java文件的内容(代码放最后)。
这段代码中的类实现了Servlet接口,执行了三个主要的生命周期,简单的向终端打印了内容,并向前端打印了hello world。
继续来看web.xml文件:
上面的部分代码是web配置文件的基本信息,主要来看下面的<servlet>和<servlet-mapping>标签。
<servlet>中的
<servlet-name>
: 定义了 Servlet 的名称为servlet
。<servlet-class>
: 指定了 Servlet 的实现类的路径org.example.servlet01.HelloServlet
<servlet-mapping>中的
<servlet-name>
: 映射到上面定义的 Servlet 名称servlet
。<url-pattern>
: 定义了访问该 Servlet 的 URL 模式为/servlet
,当用户访问这个 URL 时,会调用对应的 Servlet。
注意: 1.两个标签中的<servlet-name>是自己起名的,两个名称必须一样才能让后者找到前者
。
2.<servlet-class>存放的是java类
编译后的字节码文件的路径及文件,注意classes文件下的文件要和该路径一致,如下图(注意路径)。
3.<url-pattern>
:表示访问地址,也可以随意定义,如果按上面的路径定义,则访问路径为http://localhost:8080/project1/servlet(端口号8080是tomcat的默认配置)。
现在教大家如何将.java文件进行编译,将编译后的文件放入classes文件夹下指定的包中即可,不过要注意 Servlet 除了导入 jre 自带 jar 包外,还导入了 Tomcat 里面的 jar 包(servlet-api.jar),所以在编译的时候要配置引用 jar 包的临时环境变量。
编译方法:在存放.java文件的目录下输入cmd打开命令行窗口。
输入编译命令:javac -classpath servlet-api.jar的路径 要编译的.Java文件
(servlet.jar在tomcat目录的lib文件夹下,找到后复制路径即可)
成功编译后会在当前文件夹位置出现一个.class文件,然后将该class文件放入上面说的指定目录即可。
该应用程序已部署完毕,下面进行测试。
1.回到Tomcat目录,双击bin目录下的startup.bat文件,启动服务器。
2.成功启动后,输入localhost:8080/project1 访问到jsp页面 。
3.在浏览器地址栏输入localhost:8080/project1/servlet,成功访问,浏览器得到打印的数据。
4.打开tomcat命令行窗口看到服务已经启动并初始化完成,部署成功。
三.附件
1.文件
我将project1的文件放在这,提取码为1234,不想写的可以自取,注意,编译该文件中的.java文件的jdk版本是11.0.22,如果版本号和你当前电脑上的jdk版本不一致则无法正常运行,需要自行编译.java文件并将其放在class目录下。
2.jsp代码
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>JSP - Hello World</title>
</head>
<body>
<h1><%= "Hello World!" %></h1>
</body>
</html>
3.java代码
package org.example.servlet01;
import java.io.*;
import jakarta.servlet.*;
public class HelloServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("init...");//向终端打印init...
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("service..."); //向终端打印service...
PrintWriter pw=servletResponse.getWriter();
pw.println("Servlet:hello world"); //向浏览器打印hello world内容
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
System.out.println("destroy...");//向终端打印destroy...
}
}
4.web.xml代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0">
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>org.example.servlet01.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>
</web-app>
标签:文件,java,Tomcat,编译,Servlet,手动,案例,servlet From: https://blog.csdn.net/qq_74804896/article/details/142383775