Apache Tomcat 是Java Servlet、JavaServer Pages (JSP)、Java表達式語言和Java的WebSocket技術的一個開源實現 ,一般咱們將Tomcat稱爲Web容器或者Servlet容器 。html
tomcat各版本和相應規範的映射關係:java
下載地址web
https://tomcat.apache.org/download-90.cgi
下載到本地並解壓:apache
進入主目錄:windows
啓動,關閉和其餘腳本。這些 .sh文件(對於Unix系統)是這些.bat文件的功能副本(對於Windows系統)。因爲Win32命令行缺乏某些功能,所以此處包含一些其餘文件。api
好比說:windows下啓動tomcat用的是startup.bat,另外Linux環境中使用的是startup.sh。對應還有相應的shutdown關閉腳本。瀏覽器
tomcat的配置文件和相關的DTD。這裏最重要的文件是server.xml。它是容器的主要配置文件。tomcat
catalina.policy
:tomcat:安全策略文件,控制JVM相關權限,具體能夠參考java.security.Permission。安全
catalina.properties
:tomcat Catalina 行爲控制配置文件,好比:Common ClassLoader。app
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
日誌文件默認位於此處。
localhost
有用,當大家的tomcat啓動不了的時候,多看這個文件。好比:
NoClassDefFoundError
ClassNotFoundException
access
最沒用。
catalina.{date}
主要是控制檯輸出,所有日誌都在這裏面。
這是您的webapp所在的位置。其實這裏面這幾個都是一個項目。
簡化web部署的方式。在線上環境中咱們的應用是不會放在這裏的。最好的辦法就是外置。
tomcat存放共用的類庫。好比:
ecj-4.17.jar: eclipse Java編譯器
jasper.jar:JSP編譯器。
存放tomcat運行時編譯後的文件,好比JSP編譯後的文件 。
存放運行時產生的臨時文件。
啓動tomcat
啓動tomcat
咱們在windows下的就直接啓動bin目錄下的startup.bat,對應Linux環境中咱們使用的是startup.sh。
雙擊就能啓動了。控制檯會輸8080端口,而後咱們訪問:
http://localhost:8080/
頁面展現:
這就表明着咱們的tomcat啓動成功了。
此時,http://localhost:8080/
請求到的是ROOT目錄。
好比:咱們還能夠http://localhost:8080/manager
使用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-v4_0_0.xsd">
<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中。
建立一個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:
來到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。
「人只要不失去方向,就不會失去本身
」