共计 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 小编将为大家输出更多高质量的实用文章!