小小小幸运 发表于 5 天前

Java Web 之 Tomcat 100问

Tomcat 是什么?

Tomcat 是一个开源的 Java Servlet 容器和 Web 容器。
Tomcat 的重要功能有哪些?

运行和管理 Web 应用;处理 HTTP 哀求。
怎样安装 Tomcat ?

(以后有时间,整理为截图更好)

[*]下载 Tomcat 安装包(Apache Tomcat 官网:https://tomcat.apache.org)。
[*]解压到指定目次。
[*]设置情况变量(如 CATALINA_HOME)。
[*]启动 Tomcat:
[*]

[*]Windows: 运行 bin/startup.bat。
[*]Linux/macOS: 运行 bin/startup.sh。
[*]留意:启动tomcat时如果出现乱码,修改日志设置logging.properties文件中的参数java.logging.ConsoleHandler.encoding即可。

[*]访问 http://localhost:8080 验证是否启动成功。
[*]关闭Tomcat:运行shutdown.bat文件。
怎样在 Tomcat 中摆设 Web 应用?

示例:摆设一个简朴的 Web 应用
创建一个简朴的 Servlet:
继承HttpServlet,并实现此中的doGet方法。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

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("<html><body>");
      out.println("<h1>Hello, Tomcat!</h1>");
      out.println("</body></html>");
    }
}
编译 Servlet 并将其放入 WEB-INF/classes 目次。
创建 web.xml 文件设置 Servlet:
<web-app>
    <servlet>
      <servlet-name>HelloServlet</servlet-name>
      <servlet-class>HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>HelloServlet</servlet-name>
      <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>
将应用打包为 WAR 文件或直接复制到 Tomcat 的 webapps 目次。
启动 Tomcat 并访问 http://localhost:8080/your-app/hello。
war 模式和 war exploded 模式有什么区别?

在Java Web开发中(特殊是使用IDEA或Eclipse等IDE摆设到Tomcat时),会碰到WAR模式和WAR Exploded模式两种不同的摆设方式。
WAR 模式(打包模式)WAR Exploded(展开模式)热更新不支持支持特点将项目编译后打包成一个尺度的 .war 文件(如 myapp.war),摆设时服务器会自动解压到其工作目次(如Tomcat的 webapps 目次)。直接将项目的编译结果以目次布局展开(未压缩),摆设到服务器。是否压缩文件压缩(ZIP格式)未压缩摆设速率比WAR Exploded模式更快。文件以目次形式存在,摆设速率略慢于WAR模式。调试便利性低高 建议:

[*]开发阶段使用WAR Exploded模式:

[*]使用 WAR Exploded,使用热更新提高开发服从。
[*]在IDEA中设置Tomcat时,选择 Deploy as exploded war。

[*]生产阶段使用WAR 模式:

[*]使用 WAR模式,通过CI/CD工具生成 .war 文件后摆设。

IDEA中,怎样启动 Tomcat 热摆设?

Tomcat的热摆设机制:


[*]对于Exploded模式,Tomcat会监控 WEB-INF/classes 和 WEB-INF/lib 的变化,但默认不自动重载Java类(需设置reloadable="true"或使用JRebel)。
IDEA中的设置:
<!-- 在Tomcat的 context.xml 中 -->
<Context reloadable="true" path="/myapp"/>
开启后,Tomcat会检测变动并自动重启应用(影响性能,慎用于生产情况)。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Java Web 之 Tomcat 100问