背景介绍
Apache Tomcat 是 Java Servlet、JavaServer Pages(JSP)、Java 表达式语言和 Java 的 WebSocket 技术的一个开源实现 , 通常咱们将 Tomcat 称为 Web 容器或者 Servlet 容器。
tomcat 各版本和相应标准的映射关系:
下载地址
https://tomcat.apache.org/dow…
下载到本地并解压:
进入主目录:
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.{date}
次要是控制台输入,全副日志都在这外面。
webapps
这是您的 webapp 所在的地位。其实这外面这几个都是一个我的项目。
简化 web 部署的形式。在线上环境中咱们的利用是不会放在这里的。最好的方法就是外置。
lib
tomcat 寄存共用的类库。比方:
- 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 中部署。
我的项目构造如下:
增加依赖
<project xmlns=”http://maven.apache.org/POM/4.0.0″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven…d”>
<modelVersion>4.0.0</modelVersion>
<groupId>com.tian.maven</groupId>
<artifactId>my-web-maven</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>my-web-maven Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
<build>
<finalName>my-web-maven</finalName>
</build>
</project>
创立 DemoServlet
package com.tian.maven;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(urlPatterns = “/demo”)
public class DemoServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String msg = req.getParameter(“message”);
String contextPath = req.getServletContext().getContextPath();
System.out.println(“contextPath=” + contextPath);
resp.getWriter().println(msg);
}
}
web.xml 什么都没有,仅仅就是为了打包。
<!DOCTYPE web-app PUBLIC
“-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”
“http://java.sun.com/dtd/web-app_2_3.dtd” >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
index.jsp 找那个也没什么内容:
<html>
<body>
<h2>Hello World!</h2>
</body>
</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 内容:
package com.tian.servlet;
import javax.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;
// 实现接口 Servlet,必须重写上面的这些办法
public class MyServlet implements Servlet {
private transient ServletConfig servletConfig;
@Override
public void init(ServletConfig servletConfig) throws ServletException {
this.servletConfig = servletConfig;
}
@Override
public ServletConfig getServletConfig() {
return servletConfig;
}
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
String servletName = servletConfig.getServletName();
// 网页响应类型,浏览器将其渲染为 HTML 格局
response.setContentType(“text/html”);
PrintWriter writer = response.getWriter();
writer.println(“<html><head></head>” + “<body> Hello this is ” + servletName + “</body></html>”);
}
@Override
public String getServletInfo() {
return “my first Servlet”;
}
@Override
public void destroy() {
}
}
批改 web.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_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.tian.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping>
</web-app>
另外咱们把 index.jsp 内容批改一下,次要是为了更好的演示:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<h1> hello world </h1>
</body>
</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 如何装置,如何启动 tomcat,如何部署咱们本人的 Servlet 我的项目,咱们在 IDEA 如何集成 tomcat 以及如何启动 tomcat。
「 人只有不失去方向,就不会失去本人
」