• Tomcat的安装与使用,maven与Servlet的使用


    ⭐️前面的话⭐️

    本篇文章将介绍Tomcat的安装与使用,maven与Servlet的使用,一步一步教你如何在Tomcat上部署自己的网页以及第一个Servlet程序,idea中Smart Tomcat的使用和常见问题。

    📒博客主页:未见花闻的博客主页
    🎉欢迎关注🔎点赞👍收藏⭐️留言📝
    📌本文由未见花闻原创,CSDN首发!
    📆首发时间:🌴2022年6月27日🌴
    ✉️坚持和努力一定能换来诗与远方!
    💭参考书籍:📚《暂时没有》
    💬参考在线编程网站:🌐牛客网🌐力扣
    博主的码云gitee,平常博主写的程序代码都在里面。
    博主的github,平常博主写的程序代码都在里面。
    🍭作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!



    封面


    🍒1.Tomcat的下载与使用

    Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。
    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

    Tomcat是一个HTTP服务器,当然HTTP服务器有很多种,在java领域,Tomcat是比较知名的一个。反正知道Tomcat是一个HTTP服务器就行了,它能够借助API来接收和处理HTTP请求,下面来介绍一下Tomcat的安装与使用。

    下载与安装:
    第一步,上网搜索Tomcat,找到Tomcat官网,当然如果你不想找,我给你找好:https://tomcat.apache.org/,收好哈。

    第二步,找到下载的地方,如果你是jdk8,选择Tomcat8版本。
    版本
    第三步,点进去,选择zip文件点击下载即可。

    下载
    第四步,找个你喜欢的地方,解压即可,点进目录,你会得到下面一堆文件:
    安装
    使用:
    第五步,了解各目录文件的作用
    bin目录:启停脚本,就是说启动和关闭Tomcat的可执行文件都在这个目录中,.bat文件表示Windows批处理文件,.sh文件表示Linux的shell脚本文件,所以Tomcat在Linux也是可以运行的,以startup命名的文件就是Tomcat启动程序,以shutdown命名的文件就是Tomcat关闭程序。
    启动与关闭
    conf目录:含有Tomcat配置文件,配置文件是xml类型的文件,server.xml文件可以修改Tomcat的端口号,默认为8080
    配置文件
    temp,lib,work目录先不管不是很重要,logs目录:主要用来储存日志。
    webapps目录:储存我们部署的Serlvet程序,Servlet部署的程序是war结尾的压缩包(类似)相当于一个网站,一个Tomcat可以部署多个Servlet程序,也可以直接部署前端页面。
    1
    第六步,使用Tomcat,最简单的方式就是启动Tomcat,启动办法就是在bin目录找到startup.bat文件启动Tomcat,然后直接访问http://127.0.0.1:8080可访问到Tomcat首页。

    启动Tomcat页面图如下,最后出现类似org.apache.catalina.startup.Catalina.start Server startup in 896 ms 的文字就表示启动成功了。注意,当启动一个Tomcat程序后在启动一个Tomcat程序会启动失败,因为端口号8080已经被上一个Tomcat程序占用了。
    3
    Tomcat

    也可以部署页面访问,首先将一个前端页面文件(HTML/CSS/JS文件)复制到webapps目录中,然后在bin目录找到startup.bat文件启动Tomcat,最后访问http://127.0.0.1:8080/部署文件的相对wepapps目录的相对路径进行验证。比如我的webapps目录中有一个博客系统文件夹,里面有一个blog_list.html页面文件,我们现在要使用Tomcat访问这个文件,访问的url为http://127.0.0.1:8080/博客系统/blog_list.html
    2

    cmd窗口里面的不认识的文字是乱码了,因为Tomcat内部的编码格式是utf-8,Windows默认的编码格式为gbk,编码格式不一致,所以就乱码了。

    访问http://127.0.0.1:8080/博客系统/blog_list.html效果图:
    效果图
    在Tomcat部署的页面,有外网IP后别人也是可以访问的,好了,Tomcat的操作差不多就是这样。

    🍒2.maven的使用

    maven是java世界中非常知名的“工程管理工具”,“构建工具”,即管理依赖,构建/编译,打包,下面来介绍如何使用idea来使用maven来引入mysql的依赖。

    第一步,新建项目
    1

    第二步,选择maven。
    2
    第三步,编辑基本信息

    3
    4
    第四步,去maven中央仓库,找到mysql数据库的jar包,网址为:https://mvnrepository.com/
    5
    6
    7
    第五步,复制依赖,拷贝到pom.xml文件中,注意要新建一个<dependencies>放在该标签里面。
    8
    第六步,刷新
    9
    第七步,引入依赖成功。
    引入成功

    这样,我们的MySQL的依赖就通过Maven引入好了。

    🍒3.Servlet

    Servlet是一组操作HTTP的API,Tomcat能够调用Servlet然后实现对请求的接收和处理。

    🍇3.1第一个Servlet程序

    第一步,创建maven项目

    创建步骤与上面演示创建maven一致。

    第二步,引入依赖,在maven中央仓库搜索Servlet,找到如下图所示的api
    10
    11
    我们选择3.1版本。
    12
    把依赖引入到pom.xml文件。
    13
    第三步,创建目录结构
    main目录里创建webapp目录。

    14

    webapp目录里面创建WEB-INF目录。
    15
    WEB-INF目录下创建web.xml文件。
    16
    至于为什么要这样创建,这是Tomcat与idea的约定,也可以改其他名称,但需要额外配置。
    在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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    第四步,在java,目录下编写servlet代码,第一个Servlet程序诞生了。

    • 创建类,需继承HttpServlet类。
    • 重写doGet方法,用来处理HTTP GET请求,根据请求生成响应。
    • 在方法里面写执行的代码。
    • 加上WebServlet注解,与http带有注解所写的路径关联起来,可以理解为设置该Servlet程序所在的网页相对路径。
    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;
    
    //将响应的请求使用注解与http 带有"/hello"的URL关联起来
    @WebServlet("/hello")
    public class HelloServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //不要调用父类的构造方法
            //super.doGet(req, resp);
    
            //控制台输出hello world
            System.out.println("hello world");
            //放入响应的body中,页面就能显示hello world了
            resp.getWriter().write("hello world");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    第五步,针对当前重写进行打包
    因为我们所写的程序是没有main方法的,需要打包到Tomcat上调用运行。最朴素的打包过程如下:

    首先在pom.xml文件写入以下内容,与dependencies同一级:

        <!-- 打包为war包 不写默认为jar包-->
        <packaging>war</packaging>
    
        <build>
            <!--指定war包名-->
            <finalName>hello_servlet</finalName>
        </build>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    目的是为了使打包的压缩格式为war和指定包名。

    5.1
    双击package,进行打包。
    5.2
    提示 BUILD SUCCESS表示这样就打包完成了。
    5.3
    此时,target目录就会有打包好的文件了。
    5.4
    第六步,部署到Tomcat,启动Tomcat
    将打包好的war包拷贝到TomCat中的webapps目录中。

    6.1

    然后启动Tomcat,运行我们的第一个Servlet程序。

    第七步,验证程序运行结果。

    访问http://127.0.0.1:8080/hello_servlet/hello可以得到一个显示hello world的页面,同时命令行运行的Tomcat也会输出hello world。

    对于URL的路径为什么是/hello_servlet/hello,取决于两方面,一是war包的名称作为一级路径也叫做Context Path,二是java代码在注解标注的路径作为二级路径也叫做Servlet Path,访问的路径就是/war包名(一级路径)/注解标注的路径(二级路径)。我的war包名称为hello_servlet,注解标注的路径是/hello所以综合起来,页面的访问路径为/hello_servlet/hello,加上前面的协议域名端口号,URL就是http://127.0.0.1:8080/hello_servlet/hello

    6.2
    6.3
    那这样和直接写一个html文件有什么区别呢?注意,使用java写的代码是动态的,而直接使用HTML的页面是静态的,比如我在响应请求的内容加上一个时间戳,我们知道时间戳是时刻变化的,我们再来看看页面的变化。

    //放入响应的body中,页面就能显示hello world了
    resp.getWriter().write("hello world" + System.currentTimeMillis());
    
    • 1
    • 2

    经过打包加war包部署,访问页面得到的效果如下:
    maven1

    Servlet创建总结:

    1. 创建maven项目。
    2. 引入依赖。
    3. 创建webapp目录结构。
    4. 编写Servlet代码。
    5. 打包。
    6. 部署。
    7. 验证。

    🍇3.2Smart Tomcat

    Smart Tomcat是idea上的一个插件,上面所介绍的Servlet程序运行方法实在是有点麻烦,主要是第五步,第六步,每次修改都需要重新打包和部署,非常麻烦,Smart Tomcat就帮助我们解决了这个问题,只需简单配置一下稍微点一下就可以一键实现打包和部署操作,Smart Tomcat插件安装步骤如下:

    第一步,打开idea设置,找到插件选项,即Plugins
    1
    第二步,在Marketplace搜索Smart Tomcat,下载安装即可。
    2
    第三步,重启一下idea就可以了,首次使用smart tomcat需要配置,配置过程如下:
    1

    2
    配置好后点击绿色的倒三角形就可以运行Servlet程序了。

    3

    🍇3.3常见错误

    常见错误1:404 未找到
    出现该错误,最常见的错误就是路径输错了。
    404

    常见错误2:405方法不允许
    这个错误最常见的就是请求处理的方法不匹配,比如对于GET方法的请求使用POST方法处理,就会出现405方法未找到页面异常。
    405
    405
    对于浏览器什么时候发送的是GET方法,什么时候发送的是POST方法,有以下总结:
    GET方法:
    1)直接在浏览器地址栏输入URL(网址)
    2)通过a标签跳转
    3)通过link/script/img…等标签跳转
    4)通过form表单,method方法指定为GET
    5)通过ajax,type指定为GET
    POST方法:
    1)通过form表单,method方法指定为POST
    2)通过ajax,type指定为GET

    还有可能就是调用了父类的super构造方法会出现这种情况,根据源码可知如果协议版本是HTTP/1.1就会返回405错误。

    源码
    调用父类的doGet方法页面的结果:
    405

    常见错误3:500服务器内部错误
    这种情况一般发生在代码出现异常的时候出现,就是我们的代码没有处理异常,异常就会向上传递,Tomcat会进行处理,这时候的页面异常状态码就是500。这个问题好解决,因为页面会把出现异常的原因以及出现异常的位置告诉你。
    比如我们给代码来一个空指针异常。

    500
    500

    常见错误6:页面无法访问
    最常见的原因就是Tomcat没有运行或者崩溃,我们把Tomcat关了,就会出现页面无法访问的情况。

    无法访问页面


    下期预告:Servlet原理

    觉得文章写得不错的老铁们,点赞评论关注走一波!谢谢啦!

    1-99

  • 相关阅读:
    深度神经网络训练
    JAVA_多态(面向对象进阶)学习笔记
    Vue3+node.js网易云音乐实战项目(五)
    golang——工程组件logrus日志记录框架(结构化记录,支持文件切割,hook)
    【LaTex】LaTex的下载与安装(超详细、超简洁)
    【three.js】坐标辅助器和轨道控制器
    VB.NET 中使用SqlConnection类连接到Microsoft SQL Server数据库的详细步骤
    FastDFS的集群部署
    ES6 Proxy and Reflection API
    用中文编程工具编写的代码实现如图所示效果,请分享一下用你所学的编程语言写下这个代码,大家一起交流学习
  • 原文地址:https://blog.csdn.net/m0_59139260/article/details/125492914