掌握Apache Tomcat 7与8的关键部署与管理

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:Apache Tomcat 7和Tomcat 8是用于部署Java Web应用的开源Servlet容器。本文通过对比Tomcat 7和Tomcat 8的版本特点、目录结构、应用部署和运行步骤,帮助用户根据项目需求选择适合的Tomcat版本。Tomcat 7支持Java EE 6标准,而Tomcat 8则支持Java EE 7并引入了更多性能和安全性改进。无论选择哪个版本,了解其内部结构和部署流程对于高效管理Java Web应用都是必不可少的。
apache-tomcat-7.0.53.zip

1. Apache Tomcat概述

Apache Tomcat(通常简称为Tomcat)是一个开源的Servlet容器,它是Java Servlet和JavaServer Pages(JSP)规范的一个实现。它被设计为易于使用和配置,同时也是Java应用服务器的基础。Tomcat作为一个轻量级Web服务器,广泛用于开发和生产环境中。它不仅支持作为独立的Servlet容器,还常作为与Apache HTTP Server或Nginx等更强大的Web服务器一起运行的后端服务。

1.1 Tomcat的角色和功能

Tomcat服务器的主要功能是处理Java代码编写的Web应用程序,这些应用程序可以是Servlet或JSP文件。它提供了以下核心功能:

  • Web服务管理:启动、停止、监控以及管理运行中的应用程序。
  • 请求处理:管理HTTP请求,将它们分配给相应的Web应用程序处理。
  • 线程管理:合理地分配和使用线程池来优化服务器性能和资源利用。

1.2 Tomcat与Java EE的关系

作为Java EE标准的一部分,Tomcat紧密地与Servlet和JSP规范保持一致。它的目的是实现这些规范的最低要求,以便开发者可以创建兼容Java EE的Web应用程序。Tomcat也成为了学习和实践Java Web开发的基石,对于理解Java Web应用的运行和部署机制至关重要。

// 示例:Servlet代码示例
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<h1>Hello World!</h1>");
    }
}

通过上述内容的介绍,我们可以看到Tomcat不仅仅是一个简单的Servlet容器,它还是构建在Java Web应用架构上的基石。接下来我们将深入了解Tomcat 7版本的特性和改进,以及它在现代Web应用开发中的作用。

2. Tomcat 7版本特性与改进

2.1 Tomcat 7的核心改进

2.1.1 性能提升

Apache Tomcat 7在性能方面进行了显著的提升,通过改进和优化核心组件,它能够更加高效地处理HTTP请求和管理Web应用的生命周期。Tomcat 7引入了一些新的特性,比如NIO2 API的支持,这为异步处理提供了基础,从而减少了线程的使用,提高了并发处理能力。

Tomcat 7中的性能改进也得益于对连接器的优化。旧版本中,处理网络连接的方式较为基础,Tomcat 7通过引入APR(Apache Portable Runtime)库,使得与本地库的集成更加紧密,从而加快了连接处理速度。这一改进对于I/O密集型的应用尤为有益。

为了进一步优化性能,Tomcat 7中还加入了对新的Servlet和JSP API的支持,这些新特性包括异步处理和WebSockets,允许开发者在不牺牲响应性的情况下处理更多的并发连接。

2.1.2 安全性增强

随着Web应用的普及,安全性问题日益凸显。Tomcat 7着重增强了安全性,修复了先前版本中的一些关键漏洞,并引入了新的安全特性来保护Web应用免受攻击。

一个显著的安全改进是关于默认配置的更新。Tomcat 7默认禁用了不必要的功能,比如JSP页面的代码执行,这减少了潜在的风险。同时,Tomcat 7提供了一种更细致的安全控制,使得管理员可以对用户权限进行更精确的控制。

另外,Tomcat 7还加强了与安全社区的合作,及时引入了最新的安全补丁和修复方案。这样,即使面对新出现的安全威胁,Tomcat 7也能够快速响应并提供解决方案。

2.2 Tomcat 7的新增功能

2.2.1 连接器的改进

Tomcat 7的连接器经过了重大改进,使其更加灵活和高效。新的连接器基于NIO实现,能够在多线程环境中实现异步通信。这一改进显著提高了处理大量并发连接的能力,使得Tomcat 7在高流量Web应用中表现更加出色。

改进后的连接器还引入了对压缩传输的支持,这意味着可以减少发送到客户端的数据量,从而提升传输效率。此外,新的连接器还支持对HTTP/1.1协议的更好支持,包括对持久连接(Keep-Alive)和分块传输编码(Chunked Encoding)的改进。

2.2.2 对Java EE 6的支持

随着Java EE 6规范的发布,Tomcat 7迅速跟进了对这一新规范的支持。这包括了对Java EE 6中引入的新特性、API的实现和优化。例如,Tomcat 7开始支持Java EE 6的Web Profile,这是一个精简版的Java EE,专注于Web应用开发,它允许开发者部署更加轻量级的Web应用。

Tomcat 7还支持了Java EE 6中的上下文依赖注入(Context Dependency Injection, CDI)的一部分,这是构建可扩展和可维护的Web应用的关键。通过与CDI的整合,开发者可以更容易地实现组件之间的解耦和依赖管理。

通过这些改进,Tomcat 7为开发者提供了一个更加现代化和符合标准的平台,使得Web应用的开发和部署更加高效和安全。

3. Tomcat 7目录结构解析

3.1 Tomcat 7目录布局

Tomcat 7的目录布局是其运行和配置的基础,理解它的结构对于维护和优化服务器至关重要。下面是其目录布局的基本构成:

3.1.1 server.xml配置文件分析

server.xml 是Tomcat的主配置文件,位于 $CATALINA_HOME/conf 目录下。它定义了整个Tomcat的架构,包括服务、连接器、引擎、虚拟主机等。让我们通过以下代码块来分析如何配置server.xml:

<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <GlobalNamingResources>
    <!-- Global JNDI resources go here -->
  </GlobalNamingResources>

  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <!-- Various configuration elements here -->
      </Host>
    </Engine>
  </Service>
</Server>
  • <Server> :表示整个Catalina的服务器,可以包含一个或多个 Service
  • <Listener> :用于配置各种监听器,比如日志记录器和内存泄漏预防监听器。
  • <GlobalNamingResources> :用于定义全局的JNDI资源。
  • <Service> :代表一个可以包含多个连接器和一个引擎的集合。在Tomcat中,通常 Service 包含一个 Engine 和多个 Connector
  • <Connector> :定义了Tomcat与客户端如何连接,包括端口号、协议等属性。
  • <Engine> :处理所有连接器接收的请求。必须有一个 Engine 元素,但可以在一个 Service 中定义多个。
  • <Host> :代表一个虚拟主机,代表运行在特定端口上的一个特定服务器。它通常与DNS域名相对应。

3.1.2 webapps和work目录的作用

  • webapps :这是存放Web应用的地方。当Tomcat启动时,它会自动部署在此目录下的所有Web应用。默认情况下,一些核心应用如 manager host-manager 等已包含在此目录。

  • work :这个目录用于存放JSP编译后的Servlet和包含session数据的目录。在Tomcat中,JSP页面会被编译成Servlet,而这些Servlet的class文件就存储在 work/Catalina/localhost 目录下,其结构通常与 webapps 目录下的应用结构相对应。

3.2 Tomcat 7的核心组件

3.2.1 Catalina

Catalina是Tomcat的Servlet引擎,负责处理所有的Servlet和JSP页面。它将HTTP请求映射到相应的Servlet,通过容器管理Servlet的生命周期,并为Web应用提供必要的服务。

3.2.2 Coyote

Coyote是Tomcat的HTTP连接器组件,负责接收客户端的请求,然后将其转交给Catalina进行处理。它是Tomcat与外部世界沟通的主要通道。Coyote支持多种协议,如HTTP/1.1和AJP。

3.2.3 Jasper

Jasper负责JSP页面的处理。当Coyote接收到来自客户端的请求,并确定需要处理一个JSP页面时,它将请求传递给Jasper。Jasper将JSP转换为Servlet,编译该Servlet,并执行它。

3.2.4 小结

在本章节中,我们详细解析了Tomcat 7的目录结构和核心组件。通过深入理解server.xml文件,我们可以有效地配置和调整服务器,以便更好地服务于应用的部署和运行。同时,我们也了解了webapps目录和work目录的用途,以及Catalina、Coyote和Jasper组件的功能,这些组件共同保障Tomcat服务器的稳定运行。在下一章中,我们将进一步探讨如何在Tomcat 7上部署应用。

4. Tomcat 7应用部署流程

随着软件开发的日益复杂,应用服务器的部署流程也变得越来越关键。Apache Tomcat 作为开源的轻量级应用服务器,其部署流程是确保Web应用顺利运行的基础。在本章中,我们将深入探讨Tomcat 7应用部署的全流程,包括前期的准备工作、部署步骤以及相关的配置和验证。

4.1 部署前的准备工作

部署Tomcat服务器和Web应用之前,确保环境设置正确至关重要。以下是需要进行的一系列准备工作。

4.1.1 环境要求和JDK配置

首先,需要确保机器上安装了正确版本的Java Development Kit (JDK)。Tomcat 7 需要Java SE 6或更新版本的支持。可以通过以下命令来检查当前系统的JDK版本:

java -version

如果系统未安装JDK或版本不符合要求,需要下载并安装适合的JDK版本。此外,还需要设置系统的环境变量,将JDK的 bin 目录添加到系统路径中,以确保可以在任何目录下执行Java命令。

4.1.2 Tomcat的安装和配置

安装Tomcat相对简单。首先,从官方下载Tomcat压缩包并解压到指定目录。然后,设置环境变量 CATALINA_HOME 指向Tomcat的安装目录,以便在命令行中方便地启动和停止Tomcat服务器。

export CATALINA_HOME=/path/to/tomcat

Tomcat安装后,可对 server.xml 文件进行配置,以调整诸如端口号、连接器类型以及Web应用的上下文路径等参数。确保已正确设置 <Connector> 元素,并且有适当的权限访问 conf logs webapps 目录。

4.2 应用部署详细步骤

一旦完成了前期准备,下一步就是具体部署Web应用。这个过程涉及几个关键步骤,每一步都需要仔细处理以确保部署成功。

4.2.1 部署Web应用

Tomcat部署Web应用主要是通过将应用压缩包(WAR文件)直接放入 webapps 目录,或者将解压后的应用目录放入该目录。然后,Tomcat服务器将自动检测并部署该应用。以下是具体步骤:

  1. 将Web应用打包成WAR文件。
  2. 将WAR文件放置在Tomcat的 webapps 目录下。
  3. 启动Tomcat服务器,应用将被自动部署。
# 启动Tomcat服务器
${CATALINA_HOME}/bin/startup.sh

4.2.2 配置虚拟主机

在某些情况下,可能需要在同一个Tomcat实例上部署多个Web应用,而这些应用需要作为独立的虚拟主机运行。可以通过修改 server.xml 文件来配置虚拟主机:

<Host name="example.com"  appBase="webapps"
    unpackWARs="true" autoDeploy="true">
    <Context path="/" docBase="/path/to/your/app" />
</Host>

4.2.3 启动与验证应用

部署和配置完成后,启动Tomcat服务器,验证Web应用是否已成功部署。通常,通过访问 http://localhost:8080/your-app-context 来检查应用是否正常运行。

# 检查应用状态
curl http://localhost:8080/your-app-context/

如果返回了应用页面或正确的状态码,表示应用部署成功。如果部署失败,检查Tomcat的 logs 目录下的日志文件,通常可以找到出错信息和相应的解决方案。

应用部署是Web开发周期中的关键环节,通过对Tomcat 7的深入理解,可以显著提高部署效率,减少问题的发生。以上步骤和细节描述旨在为IT专业人员提供一个详尽、可操作的部署指南。

5. Tomcat 8版本特性与改进

5.1 Tomcat 8与Tomcat 7的对比

5.1.1 性能和资源管理优化

Tomcat 8在性能和资源管理方面有了显著的提升,主要得益于其在内部实现上的优化。这些改进使得Tomcat 8在处理高并发请求时更加高效,资源利用率更高,尤其适合大型企业级应用的部署。

// 示例代码:Tomcat 8资源管理优化
Context context = new StandardContext();
context.setResources(new StandardRoot(server));

上述代码展示了Tomcat 8中资源管理的一个简化示例。 StandardContext 是Tomcat 8中用于管理Web应用上下文的核心类。通过设置 StandardRoot 实例,可以更好地管理资源,包括静态资源和JSP页面的加载优化。

5.1.2 线程池改进和监控

Tomcat 8引入了新的线程池实现,这对于性能优化具有重要意义。新的线程池支持更多的配置选项,使得应用可以根据实际需求进行精细调整。此外,Tomcat 8还增强了对线程池状态的监控功能,有助于管理员及时了解线程池的健康状态和性能瓶颈。

<!-- server.xml配置文件片段:线程池配置 -->
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
          maxThreads="150" minSpareThreads="4"/>

在配置文件 server.xml 中,通过 <Executor> 元素配置了Tomcat使用的线程池。 maxThreads 属性表示线程池的最大线程数,而 minSpareThreads 表示线程池中的最小空闲线程数。这些参数的合理设置,对于优化Tomcat的性能至关重要。

5.2 Tomcat 8的创新特性

5.2.1 对Java EE 7的支持

Tomcat 8紧跟Java EE的最新标准,增加了对Java EE 7的支持。这意味着开发者可以利用Tomcat 8来部署和测试符合Java EE 7规范的应用,而无需额外的容器支持。这一特性显著提升了Tomcat的可用性和对现代化企业应用的支持能力。

// Java EE 7注解示例代码
@WebServlet("/example")
public class ExampleServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        // Servlet实现
    }
}

上述示例代码展示了一个使用Java EE 7中引入的 @WebServlet 注解的Servlet。这简化了Servlet的定义,不需要再在web.xml中配置Servlet映射。

5.2.2 新的Web服务器连接器

Tomcat 8还引入了一个新的Web服务器连接器 org.apache.coyote.http11.Http11Nio2Protocol ,它基于Java的NIO.2 API构建,提供了更好的性能和扩展性。该连接器支持更高级的异步处理和文件传输特性,使得Web服务器可以处理更多的并发连接,并且效率更高。

<!-- server.xml配置文件片段:新的HTTP连接器配置 -->
<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
           connectionTimeout="20000"
           redirectPort="8443" />

在配置文件中,通过指定 protocol Http11Nio2Protocol ,即可启用新连接器。这个新的连接器不仅提高了处理速度,还减少了资源消耗,对于大规模部署非常有帮助。

通过本章节的介绍,我们了解了Tomcat 8版本相较于Tomcat 7在性能和资源管理上的优化,以及对Java EE 7和新的Web服务器连接器的支持。这些特性使得Tomcat 8成为了一个更为强大和灵活的容器,为现代Web应用提供了更加丰富和高效的支持。接下来的章节将深入探讨Tomcat 8中的核心组件新变化,以及配置和部署方面的优化。

6. Tomcat 8的新特性

6.1 核心组件的新变化

6.1.1 支持新的HTTP/2协议

自从HTTP/2协议成为互联网的标准之后,主流的Web服务器软件都相继添加了对它的支持,而Tomcat 8作为一个Web应用服务器也不例外。HTTP/2带来了更高效的通信效率,尤其是在网络延迟和带宽优化方面,相较于传统的HTTP/1.x协议有了质的飞跃。Tomcat 8开始支持HTTP/2协议,允许服务器与客户端之间以更快速、更高效的方式进行数据交换。

为启用HTTP/2支持,Tomcat 8的配置文件( server.xml )需要进行相应的调整,以启用NIO2和HTTP/2连接器。以下是一个配置示例:

<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8080" 
           protocolHandlerClassName="org.apache.coyote.http2.Http2Protocol"
           sslImplementationName="org.apache.tomcat.util.net.SSLImplementation" />

在上述配置中, protocolHandlerClassName 属性指定了HTTP/2协议处理器。当配置完成后,Tomcat服务器即能接受HTTP/2连接。

启用HTTP/2对Web应用的好处显而易见,最直观的感受是在页面加载时间上的大幅度减少。但由于HTTP/2在内部实现上的复杂性,理解并管理相关的配置显得尤为重要。开发者需要对相关的协议和配置选项有足够的了解,才能确保在实际部署中发挥出HTTP/2的最大效用。

6.1.2 模块化的设计

Tomcat 8为了提升服务器的灵活性和可扩展性,引入了模块化的设计。模块化设计允许开发者将Tomcat服务器拆分成多个独立的模块,每个模块负责特定的功能。这样的设计不仅可以减少不必要的组件加载,还可以简化Tomcat的部署和维护,同时提高其在不同环境下的适应性。

开发者可以通过修改 server.xml 配置文件来启用或禁用特定的模块。Tomcat 8新增了一个 <Loader> 元素,它可以用来指定特定模块类加载器,这样可以实现模块的按需加载。以下是一个简单的示例配置:

<Loader className="org.apache.catalina.loader.ParallelWebappLoader" 
        searchVirtualEntities="true"/>

上述配置中, searchVirtualEntities 属性指定了类加载器是否搜索虚拟实体,这是一种优化内存使用的方法。

模块化的设计是Tomcat架构演进中的一个重大突破,它为未来Tomcat的可定制化和轻量级部署提供了可能。随着模块化概念的引入,Tomcat的应用场景将变得更加广泛,同时也为第三方插件和功能模块的开发提供了更大的空间。

6.2 配置与部署的优化

6.2.1 配置文件的优化

配置文件是任何Web服务器管理的关键部分。Tomcat 8对配置文件进行了大量的优化,旨在简化管理流程,减少配置错误,以及提供更好的文档支持。新的配置文件格式更易于编辑,并且对XML的格式要求更加严格,以避免常见的配置错误。此外,随着Tomcat 8对HTTP/2的支持,配置选项也得到了相应的扩充。

一个重要的配置优化是引入了默认配置值。这意味着在很多情况下,开发者可以不必手动配置某些参数,Tomcat会自动使用其推荐的默认值。例如,HTTP/2的配置就可以在没有明确指定时自动启用最佳实践设置。开发者可以通过以下命令查看所有可用的配置参数及其默认值:

./tomcat/bin/configtest.sh

上述命令会输出Tomcat的当前配置,并指出任何可能的错误或问题。这使得开发者能够更快地识别和修复配置错误。

6.2.2 应用部署的简化流程

随着Tomcat 8的不断迭代,应用部署过程也变得更为简单和直观。Tomcat 8支持多种部署方式,包括直接部署到 webapps 目录、通过管理界面部署以及通过REST API部署。特别是后者,为自动化部署提供了便利,允许开发者通过编写脚本或集成持续集成/持续部署(CI/CD)工具来进行应用部署。

部署流程可以分解为以下步骤:

  1. 确保Tomcat服务器已经正确安装并运行。
  2. 将Web应用的WAR文件复制到 webapps 目录。
  3. 重启Tomcat服务器以加载新的应用。

在某些情况下,也可以在不重启服务器的情况下,通过管理界面或命令行工具重新加载应用。

./tomcat/bin/deploy.sh appname.war

上述命令用于部署名为 appname.war 的Web应用。如果 webapps 目录下已经存在同名应用,它将被覆盖。

Tomcat 8还引入了热部署功能,即在不中断服务的情况下,部署新的应用或更新现有应用。这对于生产环境中的应用升级尤其有用,因为它允许服务器无缝地切换到新版本的应用,减少用户体验到的停机时间。

以上内容为第六章“Tomcat 8的新特性”的详细阐述。接下来,让我们继续探索第七章,看看在选择合适的Tomcat版本时,我们应当如何根据项目需求和未来发展趋势做出明智的选择。

7. 如何选择合适的Tomcat版本

7.1 根据项目需求选择

在选择合适的Tomcat版本时,首先要考虑的是项目的特定需求。了解需求可以帮助我们快速地缩小选择范围,从而找到最适合项目的版本。

7.1.1 兼容性考量

Tomcat版本的兼容性不仅包括与操作系统、JDK的兼容性,也包括与项目中使用的库、框架的兼容性。

  • 操作系统和JDK的兼容性 :检查Tomcat版本是否支持你项目运行的操作系统和JDK版本。例如,如果你的项目正在使用Java 8,并且需要在Windows平台上运行,那么你需要选择一个兼容这些条件的Tomcat版本。
  • 库和框架的兼容性 :确保所选版本的Tomcat与项目中使用的库和框架兼容。一些框架可能不支持Tomcat较旧或较新版本的某些特性。

7.1.2 性能和资源考量

选择Tomcat版本时,需要评估项目对性能和资源的需求。

  • 性能 :新版本的Tomcat通常会包含性能改进。如果你对性能有较高要求,应选择最新稳定版本,这样可以利用最新的性能优化和改进。
  • 资源占用 :不同的项目对内存和CPU的占用有不同的要求。了解你的项目需要多少资源,可以帮助你选择一个资源占用更合适的Tomcat版本。

7.2 评估未来发展趋势

在选择Tomcat版本时,不仅要考虑当前的需求,还要预见未来的发展趋势。这样可以保证你的项目长期运行稳定,并能及时获得必要的支持和更新。

7.2.1 长期支持版本的选择

长期支持(Long-Term Support,简称LTS)版本对安全更新和缺陷修复有更长时间的支持周期。

  • 支持周期 :LTS版本通常会获得较长周期的支持,对于那些希望减少升级频率和维护成本的项目来说是最佳选择。
  • 稳定性 :由于经过更长时间的测试和验证,LTS版本通常更加稳定。

7.2.2 社区支持和文档完备性

社区的支持和文档的完备性对于问题解决和持续学习都非常重要。

  • 社区活跃度 :活跃的社区意味着更多的技术支持和更快的问题响应。可以通过社区论坛、邮件列表等途径来了解社区的活跃度。
  • 文档质量 :官方文档和第三方教程的质量和完整性对于快速部署和应用配置至关重要。高质量的文档可以大幅度减少学习和配置时间。

最终,选择合适的Tomcat版本需要综合考虑当前的需求和未来的发展。通过对各个版本的特性、性能、安全性和社区支持等多方面的评估,可以帮助我们做出明智的决定。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:Apache Tomcat 7和Tomcat 8是用于部署Java Web应用的开源Servlet容器。本文通过对比Tomcat 7和Tomcat 8的版本特点、目录结构、应用部署和运行步骤,帮助用户根据项目需求选择适合的Tomcat版本。Tomcat 7支持Java EE 6标准,而Tomcat 8则支持Java EE 7并引入了更多性能和安全性改进。无论选择哪个版本,了解其内部结构和部署流程对于高效管理Java Web应用都是必不可少的。


本文还有配套的精品资源,点击获取
menu-r.4af5f7ec.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值