1. 首页 > 快讯

保姆级 Tomcat 快速入门-tomcat入门教程

很多朋友对于保姆级 Tomcat 快速入门-tomcat入门教程和不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

背景介绍

Apache Tomcat 是Java Servlet、JavaServer Pages (JSP)、Java表达式语言和Java的WebSocket技术的一个开源实现 ,通常我们将Tomcat称为Web容器或者Servlet容器 。

tomcat各版本和相应规范的映射关系:

 

下载地址

https://tomcat.apache.org/download-90.cgi下载到本地并解压:

 

进入主目录:

 

tomcat目录介绍

bin

启动,关闭和其他脚本。这些 .sh文件(对于Unix系统)是这些.bat文件的功能副本(对于Windows系统)。由于Win32命令行缺少某些功能,因此此处包含一些其他文件。

比如说:windows下启动tomcat用的是startup.bat,另外Linux环境中使用的是startup.sh。对应还有相应的shutdown关闭脚本。

conf

tomcat的配置文件和相关的DTD。这里最重要的文件是server.xml。它是容器的主要配置文件。

catalina.policy:tomcat:安全策略文件,控制JVM相关权限,具体可以参考java.security.Permission。

catalina.properties:tomcat Catalina 行为控制配置文件,比如:Common ClassLoader。

logging.properties:tomcat日志配置文件。里面的日志采用的是JDK Logging。

server.xml:tomcat server配置文件(对于我开发人员来说是非常重要)。

context.xml:全局context配置文件,监视并加载资源文件,当监视的文件发生发生变化时,自动加载 。

tomcat-user.xml:tomcat角色配置文件。

web.xml:Servlet标准的web.xml部署文件,tomcat默认实现部分配置 入内:

  • org.apache.catalina.servlets.DefaultServlet。
  • org.apache.jasper.servlet.JspServlet

logs

日志文件默认位于此处。

localhost有用,当你们的tomcat启动不了的时候,多看这个文件。比如:

  • NoClassDefFoundError
  • ClassNotFoundException

access最没用。

catalina.2024-11-17 主要是控制台输出,全部日志都在这里面。

webapps

这是您的webapp所在的位置。其实这里面这几个都是一个项目。

简化web部署的方式。在线上环境中我们的应用是不会放在这里的。最好的办法就是外置。

libtomcat存放共用的类库。比如:

  • ecj-4.17.jar: eclipse Java编译器
  • jasper.jar:JSP编译器。

work

存放tomcat运行时编译后的文件,比如JSP编译后的文件 。

temp

存放运行时产生的临时文件。

启动tomcat

启动tomcat

我们在windows下的就直接启动bin目录下的startup.bat,对应Linux环境中我们使用的是startup.sh。

双击就能启动了。控制台会输8080端口,然后我们访问:

http://localhost:8080/页面展示:

 

这就代表着我们的tomcat启动成功了。

此时,http://localhost:8080/请求到的是ROOT目录。

比如:我们还可以http://localhost:8080/manager

Servlet项目部署到tomcat中

创建web项目

使用maven创建web项目,既然说tomcat是Servlet容器,那么在项目中创建一个Servlet类,然后打成war包,拷贝到tomcat中部署。

项目结构如下:

 

添加依赖

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
  3.     <modelVersion>4.0.0</modelVersion> 
  4.     <groupId>com.tian.maven</groupId> 
  5.     <artifactId>my-web-maven</artifactId> 
  6.     <packaging>war</packaging> 
  7.     <version>1.0-SNAPSHOT</version> 
  8.     <name>my-web-maven Maven Webapp</name
  9.     <url>http://maven.apache.org</url> 
  10.     <dependencies> 
  11.       <dependency> 
  12.         <groupId>junit</groupId> 
  13.         <artifactId>junit</artifactId> 
  14.         <version>3.8.1</version> 
  15.         <scope>test</scope> 
  16.       </dependency> 
  17.       <dependency> 
  18.         <groupId>javax.servlet</groupId> 
  19.         <artifactId>javax.servlet-api</artifactId> 
  20.         <version>3.1.0</version> 
  21.       </dependency> 
  22.     </dependencies> 
  23.     <build> 
  24.       <finalName>my-web-maven</finalName> 
  25.     </build> 
  26.   </project> 

创建DemoServlet

  1. package com.tian.maven; 
  2.    
  3.   import javax.servlet.ServletException; 
  4.   import javax.servlet.annotation.WebServlet; 
  5.   import javax.servlet.http.HttpServlet; 
  6.   import javax.servlet.http.HttpServletRequest; 
  7.   import javax.servlet.http.HttpServletResponse; 
  8.   import java.io.IOException; 
  9.    
  10.   @WebServlet(urlPatterns = "/demo"
  11.   public class DemoServlet extends HttpServlet { 
  12.       @Override 
  13.       protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
  14.           String msg = req.getParameter("message"); 
  15.           String contextPath = req.getServletContext().getContextPath(); 
  16.           System.out.println("contextPath=" + contextPath); 
  17.           resp.getWriter().println(msg); 
  18.       } 
  19.   } 

web.xml什么都没有,仅仅就是为了打包。

Archetype Created Web Application

  1. <!DOCTYPE web-app PUBLIC 
  2.   "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
  3.   "http://java.sun.com/dtd/web-app_2_3.dtd" > 
  4.   
  5.  <web-app> 
  6.    <display-name>Archetype Created Web Application</display-name
  7.  </web-app> 

index.jsp找那个也没什么内容:

  1. <html> 
  2.     <body> 
  3.     <h2>Hello World!</h2> 
  4.     </body> 
  5.     </html> 

 

使用mvn命令打成war包。

 

把打成的war包拷贝(其实拷贝my-web-maven文件夹也是一样的)到tomcat中webapps目录下:

 

然后到bin目录下,双击

 

项目运行起来后,访问 http://localhost:8080/

 

证明我们的项目已经启动成功了。

接下来我们访问我们写的Servlet:

http://localhost:8080/demo?message=hello

 

报错,HTTP状态 404 - 未找到;

注意:这里访问的时候,我们需要把项目名称当做contextPath,即访问方式应该是:

http://localhost:8080/my-web-maven/demo?message=hello页面上输出

hello

轻松搞定,这样我们的项目就成功的部署到tomcat中。

IDEA中的项目部署到tomcat中

创建一个servlet项目,项目名称my-servlet。

 

新建一个类MyServlet

 

进入我们刚刚安装的tomcat目录,进入到lib目录中,选中servlet-api.jar。

 

点击ok。

 

点击Apply,然后点击OK。

修改MyServlet内容:

  1. package com.tian.servlet; 
  2.     
  3.    import javax.servlet.*; 
  4.    import java.io.IOException; 
  5.    import java.io.PrintWriter; 
  6.      
  7.    //实现接口Servlet,必须重写下面的这些方法 
  8.    public class MyServlet implements Servlet { 
  9.     
  10.        private transient ServletConfig servletConfig; 
  11.        @Override 
  12.        public void init(ServletConfig servletConfig) throws ServletException { 
  13.            this.servletConfig = servletConfig; 
  14.        } 
  15.     
  16.        @Override 
  17.        public ServletConfig getServletConfig() { 
  18.            return servletConfig; 
  19.        } 
  20.     
  21.        @Override 
  22.        public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { 
  23.            String servletName = servletConfig.getServletName(); 
  24.            //网页响应类型,浏览器将其渲染为HTML格式 
  25.            response.setContentType("text/html"); 
  26.            PrintWriter writer = response.getWriter(); 
  27.            writer.println("<html><head></head>" + "<body> Hello this is  " + servletName + "</body></html>"); 
  28.        } 
  29.     
  30.        @Override 
  31.        public String getServletInfo() { 
  32.            return "my first Servlet"
  33.        } 
  34.     
  35.        @Override 
  36.        public void destroy() { 
  37.        } 
  38.    } 

修改web.xml文件内容:

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2.  <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
  3.           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  4.           xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
  5.           version="3.1"
  6.      <servlet> 
  7.          <servlet-name>myServlet</servlet-name
  8.          <servlet-class>com.tian.servlet.MyServlet</servlet-class> 
  9.      </servlet> 
  10.      <servlet-mapping> 
  11.          <servlet-name>myServlet</servlet-name
  12.          <url-pattern>/demo</url-pattern> 
  13.      </servlet-mapping> 
  14.  </web-app> 

另外我们把index.jsp内容修改一下,主要是为了更好的演示:

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %> 
  2.    <html> 
  3.    <body> 
  4.    <h1> hello world </h1> 
  5.    </body> 
  6.    </html> 

 

IDEA集成tomcat

在我们的IDEA中添加我们安装的tomcat:

 

来到tomcat配置 的界面:

 

配置tomcat:

 

进入安装目录:

 

点击OK,

 

然后进入deployment栏目:

 

添加我们创建的servlet项目:

 

自动就添加了我们的项目

 

然后点击Apply,再点击OK。

IDEA集成tomcat,以及把我们项目给关联起来了。下面我们就来运行一下:

 

启动tomcat

点击绿色三角:

 

证明我们的项目在tomcat中已经启动成功

 

访问我们的servlet

此时,我们就可以来访问我们的servlet了。

访问:http://localhost:8080/ 页面显示就是我们前面修改的index.jsp的内容。

再访问我们自己写的Servlet:

http://localhost:8080/demo

 

总结

 

tomcat是什么,tomcat如何安装,如何启动tomcat,如何部署我们自己的Servlet项目,我们在IDEA如何集成tomcat以及如何启动tomcat。

 

关于本次保姆级 Tomcat 快速入门-tomcat入门教程和的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

用户评论

青衫负雪

听起来很棒!我一直想学习使用Tomcat,这个“保姆级”入门教程正好合适我。

    有17位网友表示赞同!

服从

终于找到一个通俗易懂的Tomcat入门教程了,简直太棒了!

    有8位网友表示赞同!

神经兮兮°

想学习Java开发,但对Tomcat不太了解,这个教程看起来很有帮助。

    有13位网友表示赞同!

伪心

新手朋友们可以参考这个教程直接上手啦!

    有14位网友表示赞同!

若他只爱我。

希望教程能涵盖比较基础的知识点,比如如何配置Tomcat等。

    有12位网友表示赞同!

看我发功喷飞你

学习Java开发离不开Tomcat,找个好教程真是不容易啊!

    有11位网友表示赞同!

抚涟i

这个保姆级教程能教会我从零开始搭建Tomcat吗?

    有5位网友表示赞同!

走过海棠暮

感觉这个入门教程挺适合小白的,准备好好学习一下。

    有10位网友表示赞同!

独角戏°

分享一个免费的 Tomcat 入门教程的机会不错呀!

    有9位网友表示赞同!

喜欢梅西

学习过程中遇到问题可以参考教程中的解答吗?

    有7位网友表示赞同!

嗯咯

这个教程针对哪个水平的Java开发人员呢?

    有16位网友表示赞同!

浮殇年华

希望能看到一些详细的实例讲解,更容易理解!

    有18位网友表示赞同!

信仰

是不是还有配套的视频教程呢?结合视频更直观。

    有17位网友表示赞同!

墨染年华

学习 Tomcat 的效率提高了,感谢分享这个棒棒的资源!

    有8位网友表示赞同!

爱情的过失

我还在用旧版本的 Tomcat,应该会更新一下版本的吗?

    有13位网友表示赞同!

浮世繁华

这个教程能让我快速学会如何部署Java应用程序吗?

    有18位网友表示赞同!

暮光薄凉

看完教程后会不会有巩固练习题呢?

    有9位网友表示赞同!

太易動情也是罪名

想学习更深入的 Tomcat 知识,后续还有什么推荐吗?

    有10位网友表示赞同!

哭花了素颜

期待看到这个教程能更新最新的 Tomcat 版本内容!

    有8位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/7371.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666