共計 5717 個字符,預計需要花費 15 分鐘才能閱讀完成。
本篇內容介紹了“Tomcat 入門知識點有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
背景介紹
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.{date} 主要是控制臺輸出,全部日志都在這里面。
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 中部署。
項目結構如下:
添加依賴
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 什么都沒有,僅僅就是為了打包。
Archetype Created Web Application
!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 h3 Hello World! /h3 /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 h2 hello world /h2 /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 入門知識點有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!