Tomcat的安装与Maven依赖Servlet的使用

这篇具有很好参考价值的文章主要介绍了Tomcat的安装与Maven依赖Servlet的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🍎一.Tomcat应用

🍒1.1什么是Tomcat

Tomcat 是一个 HTTP 服务器.
前面我们已经学习了 HTTP 协议, 知道了 HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式.
同时也通过 ajax 和 Java Socket 分别构造了 HTTP 客户端.
HTTP 服务器我们也同样可以通过 Java Socket 来实现. 而 Tomcat 就是基于 Java 实现的一个开源免费,也是被广泛使用的 HTTP 服务器.

🍒1.2Tomcat下载安装

下载地址
点击此处下载
Tomcat的安装与Maven依赖Servlet的使用
选择其中的 zip 压缩包, 下载后解压缩即可

*解压缩的目录最好不要带 “中文” 或者 特殊符号

🍒1.3 IDEA插件Smart Tomcat

在File中点击Settings,搜索Smart Tomcat后点击下载
Tomcat的安装与Maven依赖Servlet的使用
Tomcat的安装与Maven依赖Servlet的使用

🍎二.Maven依赖Servlet应用

🍒2.1什么是Servlet

Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app

回顾 动态页面 vs 静态页面

静态页面也就是内容始终固定的页面. 即使 用户不同/时间不同/输入的参数不同 , 页面内容也不会发生变化. (除非网站的开发人员修改源代码, 否则页面内容始终不变).对应的, 动态页面指的就是 用户不同/时间不同/输入的参数不同, 页面内容会发生变化

构建动态页面的技术有很多, 每种语言都有一些相关的库/框架来做这件事.Servlet 就是 Tomcat 这个 HTTP 服务器提供给 Java 的一组 API, 来完成构建动态页面这个任务

Servlet 主要做的工作
●允许程序猿注册一个类, 在 Tomcat 收到某个特定的 HTTP 请求的时候, 执行这个类中的一些代码.
●帮助程序猿解析 HTTP 请求, 把 HTTP 请求从一个字符串解析成一个 HttpRequest 对象.
●帮助程序猿构造 HTTP 响应. 程序猿只要给指定的 HttpResponse 对象填写一些属性字段, Servlet就会自动的安装 HTTP 协议的方式构造出一个 HTTP 响应字符串, 并通过 Socket 写回给客户端.

当然, Servlet 还支持一些其他的辅助功能, 此处暂时先不介绍.简而言之, Servlet 是一组 Tomcat 提供的 API, 让程序猿自己写的代码能很好的和 Tomcat 配合起来, 从而更简单的实现一个 web app.而不必关注 Socket, HTTP协议格式, 多线程并发等技术细节, 降低了 web app 的开发门槛, 提高了开发效
率.

🍒2.2创建Servlet简单实现一个响应

🍉一.创建一个Maven文件

打开IDEA点击创建项目点击Maven,点击Next,后就正常创建即可
Tomcat的安装与Maven依赖Servlet的使用

🍉二.引入依赖

创建好目录后,点击pom.xml引入Servlet依赖
Tomcat的安装与Maven依赖Servlet的使用
点击复制资源:Servlet资源地址
Tomcat的安装与Maven依赖Servlet的使用
输入 后将复制好的资源粘贴到里面,如果出现红色错误不要急,是第一次引入资源而且是外网所以需要一段时间才能下载好
Tomcat的安装与Maven依赖Servlet的使用

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>Servlet</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    
</project>

点击右上角Maven进行刷新
Tomcat的安装与Maven依赖Servlet的使用

🍉三创建目录

如下在main创建 webapp文件----在创建WEB-INF文件—在创建web.xml文本
Tomcat的安装与Maven依赖Servlet的使用
往 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>

webapp 目录就是未来部署到 Tomcat 中的一个重要的目录. 当前我们可以往 webapp 中放一些静态资源, 比如 html , css 等.

在这个目录中还有一个重要的文件 web.xml. Tomcat 找到这个文件才能正确处理 webapp 中的动态资源

🍉四.编写代码

点击Java创建一个类
Tomcat的安装与Maven依赖Servlet的使用
创建一个类 HelloServlet , 继承自 HttpServletAlt+Enter导入import javax.servlet.http.HttpServlet包
Tomcat的安装与Maven依赖Servlet的使用

●在这个类上方加上 @WebServlet(“/hello”) 注解, 表示 Tomcat 收到的请求中, 路径为 /hello的请求才会调用 HelloServlet 这个类的代码. (这个路径未包含 Context Path)

●重写 doGet 方法. doGet 的参数有两个, 分别表示收到的 HTTP 请求 和要构造的 HTTP 响应. 这个方法会在 Tomcat 收到 GET 请求时触发

●HttpServletRequest 表示 HTTP 请求. Tomcat 按照 HTTP 请求的格式把 字符串 格式的请求转成了一个 HttpServletRequest 对象. 后续想获取请求中的信息(方法, url, header, body 等) 都是通过这个对象来获取.

●HttpServletResponse 表示 HTTP 响应. 代码中把响应对象构造好(构造响应的状态码, header,body 等)

●resp.getWriter() 会获取到一个流对象, 通过这个流对象就可以写入一些数据, 写入的数据会被构造成一个 HTTP 响应的 body 部分, Tomcat 会把整个响应转成字符串, 通过 socket 写回给浏览器.

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;
/**
 * Created with InteliJ IDEA.
 * /Description:
 * User:PANJIAPENG
 * Date:2022-11-09
 * Time:19:32
 */
@WebServlet("/hello")
public class ServletHello extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("hello servlet");
        resp.getWriter().write("hello Servlet");
    }
}

这个代码虽然只有寥寥几行, 但是包含的信息量是巨大的
(1) 我们的代码不是通过 main 方法作为入口了. main 方法已经被包含在 Tomcat 里, 我们写的代码会被Tomcat 在合适的时机调用起来.
此时我们写的代码并不是一个完整的程序, 而是 Tomcat 这个程序的一小部分逻辑.

(2) 我们随便写个类都能被 Tomcat 调用嘛? 满足啥样条件才能被调用呢?
主要满足三个条件:
● 创建的类需要继承自 HTTP Servlet
这个类需要使用 @WebServlet 注解关联上一个 HTTP 的路径
● 这个类需要实现 doXXX 方法

当这三个条件都满足之后, Tomcat 就可以找到这个类, 并且在合适的时机进行调用

🍉五.打包/部署/运行

打包:

war 包和 jar 包的区别
●jar 包是普通的 java 程序打包的结果,也是默认打包格式. 里面会包含一些 .class 文件.
●war 包是 java web 的程序, 里面除了会包含 .class 文件之外, 还会包含 HTML, CSS, JavaScript, 图片, 以及其他的 jar 包. 打成 war 包格式才能被 Tomcat 识别.
Tomcat的安装与Maven依赖Servlet的使用
点击运行进行打包/部署
Tomcat的安装与Maven依赖Servlet的使用
检验程序:

输入127.0.0.1:8080/Servlet/hello
注意:这是根据自己设置的文件路径进行查找的
Tomcat的安装与Maven依赖Servlet的使用

🍒2.3 Servlet程序运行常见错误

出现 404
404 表示用户访问的资源不存在. 大概率是 URL 的路径写的不正确

●错误实例1: 少写了 Context Path
通过 /hello 访问服务器

●错误实例2: 少写了 Servlet Path
通过 /Servlet 访问服务器

●错误实例3: Servlet Path 写的和 URL 不匹配
修改 @WebServlet 注解的路径

●错误实例4: web.xml 写错了
清除 web.xml 中的内容

Tomcat的安装与Maven依赖Servlet的使用

出现405
405 表示对应的 HTTP 请求方法没有实现.
错误实例: 没有实现 doGet 方法.

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
}

Tomcat的安装与Maven依赖Servlet的使用
Tomcat的安装与Maven依赖Servlet的使用
Tomcat的安装与Maven依赖Servlet的使用
出现 500
往往是 Servlet 代码中抛出异常导致的

错误实例:

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  throws ServletException, IOException {
    String s = null;
    resp.getWriter().write(s.length());
  }
}

Tomcat的安装与Maven依赖Servlet的使用
出现 “空白页面”

错误实例:
修改代码, 去掉 resp.getWritter().write() 操作

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
     System.out.println("hello");
   }
}

出现 “无法访问此网站”

一般是 Tomcat 启动就失败了.
错误实例: Servlet Path 写错了又肯没有加"/"

Tomcat的安装与Maven依赖Servlet的使用
Tomcat的安装与Maven依赖Servlet的使用

🍒2.4总结

初学 Servlet, 遇到的这类问题会非常多. 我们不光要学习 Servlet 代码的基本写法, 也要学习排查错误的思路.
程序猿调试 BUG 如同医生诊病.
一个有经验的程序猿和一个新手程序猿相比, 最大的优势往往不是代码写的多好, 而是调试效率有多高. 同一个问题可能新手花了几天都无法解决的, 但是有经验的程序猿可能几分钟就搞定了.
你还觉得 “程序猿是吃青春饭” 嘛?

熟悉 HTTP 协议能够让我们调试问题事半功倍.
●4xx 的状态码表示路径不存在, 往往需要检查 URL 是否正确, 和代码中设定的 Context Path 以及Servlet Path 是否一致.
●5xx 的状态码表示服务器出现错误,或者代码写错, 往往需要观察页面提示的内容和 Tomcat 自身的日志, 观察是否存在报错.
●出现连接失败往往意味着 Tomcat 没有正确启动, 也需要观察 Tomcat 的自身日志是否有错误提示.
●空白页面这种情况则需要我们使用抓包工具来分析 HTTP 请求响应的具体交互过程.
●观察日志是调试程序的重要途径. Tomcat 的日志往往很多, 需要同学们耐心阅读, 经常阅读, 熟练了就能更快速的找到问题了.

舞台在大,你不登场,永远都是观众.平台再好,你不参加永远都是局外人.能力再大,你若不行动,没人能看到你的成功.我们一起加油屏幕前的陌生人!
Tomcat的安装与Maven依赖Servlet的使用文章来源地址https://www.toymoban.com/news/detail-464041.html

到了这里,关于Tomcat的安装与Maven依赖Servlet的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • SpringBoot学习——追根溯源servlet是啥,tomcat是啥,maven是啥 & springBoot项目初步,maven构建,打包 & 测试

    SpringBoot学习——追根溯源servlet是啥,tomcat是啥,maven是啥 & springBoot项目初步,maven构建,打包 & 测试

    1.追根溯源,servlet是啥,tomcat是啥,maven是啥; 2.前后端开发模式,mvc,mvvc,service层的事务; 3.maven对项目全生命周期的管理,打包jar包和运行; 4.springBoot项目的搭建,pom文件,项目结构,项目环境; 5.Druid连接数据库,管理连接,springBootApplication的exclude; 6.banner.text的使用

    2024年02月13日
    浏览(11)
  • JavaWeb搭建| Tomcat配置| Maven依赖|这一篇就够了(超详细)

    JavaWeb搭建| Tomcat配置| Maven依赖|这一篇就够了(超详细)

    🙈作者简介:练习时长两年半的Java up主 🙉个人主页:老茶icon 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,计算机系列(火速更新中) 💭 格言:种一棵树最好的时间是十年前,其次是现在 🏡动动小手,点个关注不迷路,感谢宝

    2024年02月01日
    浏览(13)
  • IDEA2023 Maven3.9.1+Tomcat10.1.8配置并搭建Servlet5.0的基本框架

    IDEA2023 Maven3.9.1+Tomcat10.1.8配置并搭建Servlet5.0的基本框架

    文章目录 一、Maven3.9.1下载并配置 二、Tomcat10.1.8下载并配置 三、搭建Servlet 一、Maven3.9.1下载并配置 (1)Maven下载 Maven官网:https://maven.apache.org/download.cgi?. Maven3.9.1下载:https://dlcdn.apache.org/maven/maven-3/3.9.1/binaries/apache-maven-3.9.1-bin.zip   (2)Maven配置环境变量并修改settings.xml文件

    2024年02月09日
    浏览(14)
  • 【Maven】Maven的新建、使用、安装配置、集成配置到eclipse,Maven项目测试servlet,Maven容易出现的问题(看这一篇你大概就会了!别不信)

    【Maven】Maven的新建、使用、安装配置、集成配置到eclipse,Maven项目测试servlet,Maven容易出现的问题(看这一篇你大概就会了!别不信)

    目录 一、引言 --- maven的介绍 1、什么是 Maven? 2、Maven的作用 3、如何使用 Maven? 4、在什么环境下使用 Maven? 5、Maven的使用效果 二、maven安装及配置 1、下载解压安装 2、配置 ①环境变量配置 ②Maven插件安装与配置 三、集成配置eclipse 四、新建 Maven项目及细节配置 1、Maven项目

    2024年02月04日
    浏览(15)
  • 基于Java+MySQL+Tomcat+Servlet+Maven+JQuery+jackson+开源Markdown编辑器实现前后端分离个人博客系统

    基于Java+MySQL+Tomcat+Servlet+Maven+JQuery+jackson+开源Markdown编辑器实现前后端分离个人博客系统

    目录 项目简介 模块实现 设计实现数据库相关代码 博客列表页 博客详情页 注册页 登录页 检测登录状态 显示用户信息 退出登录 发布博客 删除博客 统计博客数量 效果展示 部分代码展示 小结:     项目中使用了Java ,MySQL ,Tomcat ,Servlet ,Maven ,JQuery ,jackson,开源MarkDo

    2024年02月02日
    浏览(9)
  • javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet

    javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet

    1,javax.servlet 和 jakarta.servlet的关系 javax.servlet 和 jakarta.servlet 是 Java Servlet API 的两个版本。 Java Servlet API 是由 Sun Microsystems(现在是 Oracle)开发和维护的,其包名以 javax.servlet 开头。从 Java EE 8 开始,Servlet API 的维护权转交给了 Eclipse Foundation 的 Jakarta EE 社区,因此,在最新的

    2024年01月20日
    浏览(12)
  • Maven(五):Maven的使用——依赖的测试

    Maven(五):Maven的使用——依赖的测试

    本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远! 标签的位置: dependencies/dependency/scope 标签的可选值: compile/test/provided/system/runtime/import 1.1 compile 和

    2023年04月18日
    浏览(10)
  • “深入解析Maven:安装、创建项目和依赖管理的完全指南“

    “深入解析Maven:安装、创建项目和依赖管理的完全指南“

    Maven是一个流行的项目管理工具,被广泛用于Java项目的构建、依赖管理和部署。它提供了一种简单而强大的方式来管理项目的各个方面,使开发人员能够更专注于业务逻辑的开发,而不必花费过多时间和精力在构建和部署过程上。 在软件开发中,项目往往依赖于许多第三方库

    2024年02月13日
    浏览(8)
  • Servlet-搭建个人博客系统(MVC架构模式简介,maven的配置和使用)

    Servlet-搭建个人博客系统(MVC架构模式简介,maven的配置和使用)

    目录 1. MVC架构模式简介 2. maven的配置和使用 3. 项目总述🐻 3.1 🍎Controller层 3.2 🍎Model层 3.3 🍎View层 4. 页面的主要功能实现🐻 4.1 🍎登陆页面(login.html) 4.2 🍎博客列表页面(blog_index.html) 4.3 🍎博客详情页面(blog_detail.html) 4.4 🍎博客编辑页(blog_editor.html) 5.Conto

    2024年02月05日
    浏览(11)
  • maven的依赖范围scope使用

    maven的依赖范围scope使用

    标签的位置:dependencies/dependency/scope 标签的可选值:compile/test/provided/system/runtime/import #①compile 和 test 对比 main目录(空间) test目录(空间) 开发过程(时间) 部署到服务器(时间) compile 有效 有效 有效 有效 test 无效 有效 有效 无效 #②compile 和 provided 对比 main目录(空间

    2024年02月10日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包