通过Tomcat / Small Tomcat,如何部署Servlet?(超详细)

这篇具有很好参考价值的文章主要介绍了通过Tomcat / Small Tomcat,如何部署Servlet?(超详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

基于Tomcat对Servlet进行部署

一、创建项目

二、引入Servlet依赖

三、构建目录结构

四、编写代码

五、打包程序

六、部署程序

七、验证程序

基于Smart Tomcat对Servlet进行部署

第一步:下载Smart Tomcat插件

第二步:进行相关配置

 

第三步:运行配置

 第四步:确认部署是否成功

第五步:验证程序

Tomcat的运行方式


基于Tomcat对Servlet进行部署

        以下将会通过七个步骤,以打印“hello”为例,对Servlet进行部署;

        使用工具(这是配套使用的方案!):idea2021或2020,jdk 8,Java Servlet API 3.1.0版本,Tomcat 8.5;


一、创建项目

        首先,需要创建一个maven项目(这里建议使用idea社区版2021或2020,因为2022版本创建maven项目变化比较大);(如下图)

smart tomcat配置,网络协议,servlet,tomcat,java

项目创建好后,可以看到目录结构(如下图)

smart tomcat配置,网络协议,servlet,tomcat,java

解释:

  • main文件里主要存放业务代码;
  • resources存放代码需要的依赖资源(暂时不用);
  • test测试代码;
  • test下的java文件是项目的“阵眼”,是全局配置文件,有很多关于项目相关属性的配置;

为什么要使用maven来构建项目?

        以前写的代码,都是在idea中的main方法里直接点击运行即可,针对简单的程序还可以,但对于有多个模块,病区相互依赖的程序来说,使用maven,就方便了我们进行编译和打包操作;


二、引入Servlet依赖

        Servlet不是java标准库自带的,所以需要下载Servlet依赖;(maven的一个核心功能就是能自动管理依赖:把使用库中依赖的东西,自动从中央仓库中下载下来)

打开中央仓库搜索servlet:(如下图)

地址:Maven Repository: Search/Browse/Explore (mvnrepository.com)

smart tomcat配置,网络协议,servlet,tomcat,java

选择第一个API:(如下图)

smart tomcat配置,网络协议,servlet,tomcat,java

选择3.1.0版本(如下图):

 smart tomcat配置,网络协议,servlet,tomcat,java

 选择maven,复制里面的内容(如下图)

smart tomcat配置,网络协议,servlet,tomcat,java

        返回idea,打开pom.xml,手动写下这个标签(如下图),把刚刚复制的内容粘贴到这个标签里

smart tomcat配置,网络协议,servlet,tomcat,java

 smart tomcat配置,网络协议,servlet,tomcat,java

解释:

        这时候idea就会自动根据你刚刚粘贴进去的内容,去中央仓库下载依赖,依赖下载完成之前,这里是标红报错的,等待他下载好之后,就手动刷新一下(如下图);

smart tomcat配置,网络协议,servlet,tomcat,java


三、构建目录结构

        根据Tomcat要求的目录,咱还需要添加点东西(如下图)

注意:一定要注意命名,严格按照下图格式!

smart tomcat配置,网络协议,servlet,tomcat,java

 web.xml中需要写点东西,写的内容不用记,直接复制,这部分内容是固定的,Tomcat会识别他,所以不能没有;

这里给出代码(直接复制就可以):

<!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>

        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

这个是schema文件,描述了你的xml中都允许写哪些节点,结点间的层次关系,那些属性是合法的;

        作用:验证 + 补全;

        如果这里标红报错了,之影响以上作用,但是咱目前来说用不上,但是如果实在不限看到标红,可以alt + enter;

四、编写代码

        将代码放到java目录下(也可以创建一些package)如下图:

smart tomcat配置,网络协议,servlet,tomcat,java

        将创建好的这个公开的类里继承HttpServlet;(这是刚才通过maven下载的servlet的jar包);

smart tomcat配置,网络协议,servlet,tomcat,java

根据请求计算响应——写下doGet方法:(如下图)

smart tomcat配置,网络协议,servlet,tomcat,java

 doGet方法是什么?

        doGet就表示,当Tomcat收到GET请求时,就会调用到此方法;

扩展:

        这里还有很多函数,写doGet函数,就表示使用GET方法,写下doPost函数,就会使用Post方...

HttpServletRequest req是什么?

        这是Tomcat的请求报文,将他解析成一个对象了;

HttpServletResponse resp 是什么?

        这是Tomcat构造的一个空的对象,就是根据请求所要计算的响应,resp相当于“输出型参数”,doGet就需要根据req 的数据 + 业务逻辑构造出一个完整的resp对象;最后Tomcat就把resp对象转化成Http响应报文;

接下来,还需要在此方法之上,加一段代码(如下图):

smart tomcat配置,网络协议,servlet,tomcat,java

 解释:

        表示当GET请求并且url里的路径是/hello请求的时候,Tomcat才会调用到这里的doGet方法;所以我们在请求中写不同的路径,就会关联上不同的类,也就会执行不同的方法;

修改这个方法里的内容(以打印hello为例):解释都在注释里

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //super.doGet(req, resp);注意这里自动生成的代码一定要删掉,否则一定会出问题,这是为了防止程序员忘记写对应的重写方法专门弄的一个保险
        System.out.println("hello");//在Tomcat这里打印日志
        resp.getWriter().write("hello");//给客户端返回hello
    }
}

解释:为什么一定要删掉 super.doGet(req, resp) 这段代码?

       这是为了防止程序员忘记写对应的重写方法专门弄的一个保险;

       当代码中有 super.doGet,然后你在写下计算的响应代码,而 super.doGet 中引用父类的方法已经有默认的响应(响应是用 resp.sendError,此方法将抛出illegalstateexception。使用此方法后,应将响应视为已提交;简而言之就是一个检查机制,检查你是否忘记写重写方法),你接着又写了一次响应,就相当于有两次响应,所以若不删除这段代码,你会得到了非法的状态异常。


五、打包程序

打包是干什么的?

        需要将缺失的依赖下载好,然后编译所有的.java文件,得到一堆class文件,再将.class压缩到一个压缩包中;

Servlet程序是怎么跑起来的?为什么要打包?

        以前所写的Java代码中,都包含main方法,这就相当于一个带发动机的火车车头,剩下的java代码就是车厢;在Servlet的代码中,Tomcat就是带发动机的火车车头,Servlet代码就是车厢,打包就是将写好的代码挂在车头后面~

具体做法:直接使用maven打包(如下图)

smart tomcat配置,网络协议,servlet,tomcat,java

 双击后,结果如下:

smart tomcat配置,网络协议,servlet,tomcat,java

 问题:

        虽然成功的打包出了jar包,但是tomcat不认识,因为tomcat是要求压缩包的格式为war包!

jar包和war包有什么区别?

        最主要的区别就是,war包会将整个webapp的目录都打包进去,包括web.xml,以及外来的一些静态html、css等;

解决办法:修改pom.xml,在其中写下如下代码:

smart tomcat配置,网络协议,servlet,tomcat,java

 最后在点击一次打包,就可以观察在target中看到我们所需要的文件了(如下图)

smart tomcat配置,网络协议,servlet,tomcat,java


六、部署程序

将war包拷贝到Tomcat的webapps中;

smart tomcat配置,网络协议,servlet,tomcat,java

保存到(如下图目录)

smart tomcat配置,网络协议,servlet,tomcat,java

最后运行你的Tomcat,就可以发现,你的war包会自动解压缩;


七、验证程序

        通过浏览器构造一个HTTP请求,访问Tomcat服务器;

可以观察到如下结果:

smart tomcat配置,网络协议,servlet,tomcat,java

 这样就成功啦~



基于Smart Tomcat对Servlet进行部署

        实际上,对于以上的七步,还可以进行优化:第五第六步是可以“一键式”打包和部署,使用IDEA社区版,可以使用第三方的Smart Tomcat插件来完成;


第一步:下载Smart Tomcat插件

smart tomcat配置,网络协议,servlet,tomcat,java


第二步:进行相关配置

smart tomcat配置,网络协议,servlet,tomcat,java

 smart tomcat配置,网络协议,servlet,tomcat,java

注意:

        Context path是网络路径,这相当于将webapp映射成了 Context path;


第三步:运行配置

        一键式的完成打包部署;(实际上,就是让idea直接调用tomcat,并且加载写的servlet程序);(如下图)

smart tomcat配置,网络协议,servlet,tomcat,java

 第四步:确认部署是否成功

smart tomcat配置,网络协议,servlet,tomcat,java

 注意:

        这里标红不要害怕,不是报错,Tomcat的日志信息就是这样的颜色,看到startup in xxxms就表示成功了;


第五步:验证程序

  smart tomcat配置,网络协议,servlet,tomcat,java


Tomcat的运行方式

        1.直接在startup里运行,手动拷贝war包;

        2.Smart Tomcat直接通过java代码,调用tomcat的jar包运行,不需要调用的时候指定tomcat加载哪个webapp;


smart tomcat配置,网络协议,servlet,tomcat,java文章来源地址https://www.toymoban.com/news/detail-799879.html

到了这里,关于通过Tomcat / Small Tomcat,如何部署Servlet?(超详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 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日
    浏览(36)
  • 在Linux系统中部署Tomcat并通过公网访问

    如果你想要将SSM的项目部署上线,那么你首先就必须将Tomncat上传部署到LInux系统中,因为SSM打包后的war文件需要Tomcat容器,接下来我就详细介绍一下如何在Linux中部署Tomcat并如何通过公网访问! 点击右侧链接阿里云服务器购买地址购买阿里云服务器,目前可以免费试用一个月

    2024年02月14日
    浏览(27)
  • Tomcat的部署(贼详细)

    目录  一、Tomcat服务器简介 1、Tomcat服务器 2、Tomcat三大核心组件 3、 Java Servlet 4、JSP全称Java Server Pages 5、 Tomcat 功能组件结构 6、 Container 结构分析  7、Tomcat 请求过程 二:Tomcat部署与安装 1.关闭防火墙,上传所需软件包  2.安装JDK 3.设置JDK环境变量  4.编写一个java脚本来验

    2024年02月08日
    浏览(20)
  • Linux服务器远程访问通过Tomcat部署的静态资源

    1.1 安装Java 下载jdk8 切换到root用户,创建文件夹/usr/local/java,将下载的jdk压缩包上传到该目录下,解压 编辑配置文件,配置环境变量,在末尾添加如下内容 重载激活配置 检查安装成功 1.2 安装Tomcat 下载tomcat 切换到root用户,创建文件夹/usr/local/tomcat,将下载的tomcat压缩包上传

    2024年01月18日
    浏览(52)
  • 如何通过tomcat下载映射下载文件

    比如下载 测试文档 比如下载sql文件 要在 conf/web.xml 中作些配置:markdown 1.在tomcat文件内server.xml中 增加 2.访问的地址 http://localhost:8087/testBackData/ 比如配置离线版的element-plus

    2024年02月11日
    浏览(30)
  • Linux系统部署Tomcat详细教程(图文讲解)

    前言:本篇博客教大家如何一步一步使用Linux系统去部署自己的Tomcat服务器,每一行代码都是我自己严格执行过的,共分为了8点进行阐述,逻辑清晰! 博主的其他部署教程: 1、Jenkins部署前后端分离项目:Jenkins部署前后端分离项目最全图文教程(手把手教学) 2、Docker部署前

    2024年02月14日
    浏览(33)
  • Nginx+Tomcat负载均衡、动静分离实例详细部署

    ●rr 轮询 负载均衡模式: 每个请求按时间顺序逐一分配到不同的后端服务器,如果超过了最大失败次数后(max_fails,默认1),在失效时间内(fail_timeout,默认10秒),该节点失效权重变为0,超过失效时间后,则恢复正常,或者全部节点都为down后,那么将所有节点都恢复为有效

    2024年02月13日
    浏览(29)
  • Linux系统安装部署Tomcat(超详细操作演示)

    Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。 简单来说,Tomcat是一个WEB应用程序的托管平台,可以让用户编写的WEB应用程 序,被Tomcat所托管,并提供网站服务

    2024年02月11日
    浏览(32)
  • tomcat与servlet

    目录 一、Http服务器 二、tomcat 1、概念 2、tomcat解压缩文件 (1)bin文件夹 (2)conf文件夹 (3)logs (4)webapps 3、借助tomcat服务器访问网页 三、servlet 1、概念 2、servlet实现在浏览器上显示hello (1)创建Maven项目 (2)引入依赖 (3)创建目录 (4)编写代码 (5)打包程序 (

    2024年01月20日
    浏览(37)
  • Tomcat+Http+Servlet

    JAVAWeb技术栈 BS架构: B/S架构(Browser/Server架构)是一种常见的软件架构模式,用于构建Web应用程序。在B/S架构中,浏览器(Browser)作为客户端,通过网络协议(通常是HTTP)与服务器(Server)进行通信,而服务器负责处理客户端的请求并生成响应。 客户端(浏览器):客户端

    2024年02月12日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包