• 带你吃透Servlet技术


    请添加图片描述

    个人主页: 几分醉意的CSDN博客_传送门

    前言:在上一篇,我们已经初步的了解了 Servlet技术 传送门,接下来我们继续深入学习Servlet。

    💖继承HttpServlet实现Servlet程序

    一般在实际项目开发中,都是使用继承 HttpServlet 类的方式去实现 Servlet 程序。

    1、编写一个类去继承 HttpServlet 类。
    2、根据业务需要重写 doGetdoPost 方法。
    3、到 web.xml 中的配置 Servlet 程序的访问地址。

    ✨代码实战

    Servlet类的代码

    public class HelloServlet2 extends HttpServlet {
        /**
         * doGet ()在 get 请求的时候调用
         * @param req
         * @param resp
         * @throws ServletException
         * @throws IOException
         */
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
                IOException {
            System.out.println("HelloServlet2 的 的 doGet  方法");
        }
        /**
         * doPost ()在 post 请求的时候调用
         * @param req
         * @param resp
         * @throws ServletException
         * @throws IOException
         */
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
                IOException {
            System.out.println("HelloServlet2 的 的 doPost  方法");
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    web.xml 中的配置

    <servlet>
    	<servlet-name>HelloServlet2servlet-name>
    	<servlet-class>com.servlet.HelloServlet2servlet-class>
    servlet>
    <servlet-mapping>
    	<servlet-name>HelloServlet2servlet-name>
    	<url-pattern>/hello2url-pattern>
    servlet-mapping>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    ✨自动生成doGet和doPost方法

    如果每次都手动的写这些方法,肯定是挺浪费时间的,那么有没有什么方式可以自动的把这些方法生成呢,当然有,首先我们调出Generate窗口,快捷键是Alt+INS,选择如下图所示的Override Methods..
    在这里插入图片描述
    点击Override Methods..后,选中doGetdoPost方法,点击ok即可自动生成这两个方法。
    在这里插入图片描述

    Servlet1类里面原本没有任何方法,自动生成后效果如下:

    public class Servlet1 extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            super.doGet(req, resp);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            super.doPost(req, resp);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    ✨注意事项

    如果继承HttpServlet 类的时候,没有这个类,直接报红,那么原因是因为没有导入Servletjar包,我们只需要打开解压的Tomcat文件夹下的lib目录,找到Servlet-api.jar这个文件,add导入idea里面就可以了。
    在这里插入图片描述
    如果没有tomcat可以看这篇文章,文章主要是对tomcat进行了介绍,已经提供了tomcat下载方式,感兴趣的小伙伴可以看一下。

    💖使用 IDEA 自动生成Servlet 程序

    上面的自动生成doGetdoPost方法很方便,但是还不是最简便的,不符合我们程序猿的标准,我们要的是最简,能不动手绝不动手。

    那么有没有一种方法,可以让我们创建文件后,直接就是Servlet程序的文件,文件既已经自动的实现了HttpServlet接口,又已经自动生成doGetdoPost方法,我们只需要创建这个文件,后面的交给工具。当然有,而且创建这个文件的方法很简单,下面博主会详细介绍。

    首先选中目录然后右击,点击New--Servlet
    在这里插入图片描述
    然后会弹出来一个弹窗,如下,对每个选项都详细介绍了一下,需要创建到哪自己手动调一下就行。
    在这里插入图片描述

    然后让我们来看一下效果,下列代码全idea自动生成的,这个方法确实是很方便,感兴趣的小伙伴可以尝试一下。
    在这里插入图片描述

    ✨常见问题

    下面我们来说一下典型的使用IDEA自动生成Servlet程序会出现的典型的问题,那就是如下图所示,我们New的时候,压根就没有Servlet这个选项,连这个选项都没有我们肯定就创建不了,那么是什么原因导致的呢,这个问题当时也困扰我许久,解决之后恍然大悟,并且出了一期博客,详细的介绍了解决方法,如果碰到相同问题的小伙伴,点击 这里查看,有问题就会有答案,我们迎难而上,百折不回。

    在这里插入图片描述

  • 相关阅读:
    目标检测 YOLOv5 - YOLOv5的后处理
    数据指标口径不统一、重复开发?亿信ABI指标管理平台帮你解决
    通过二级域名解决1台云服务器搭建多个公众号后端服务的问题
    使用Docker构建、共享和运行WebAssembly应用程序
    Best Websites to Download Cracked Software for Free
    DAMO-YOLO训练KITTI数据集
    解决自动驾驶落地难点,全自动驾驶才是未来
    Linux 零拷贝sendfile函数
    Unity3d中Scene场景2D模式下放大后UI元素后不显示的问题
    Day47——前端学习
  • 原文地址:https://blog.csdn.net/YOU__FEI/article/details/127384147