带你吃透Servlet技术(一),2024年大数据开发开发实战

67 阅读3分钟

1、ServletJavaEE 规范之一。规范就是接口
2、ServletJavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。
3、Servlet 是运行在服务器上的一个 java 小程序, 它可以接收客户端发送过来的请求,并响应数据给客户端。

✨第一个Servlet程序

1、编写一个类去实现 Servlet 接口。
2、实现 service 方法,处理请求,并响应数据。
3、到 web.xml 中去配置 servlet 程序的访问地址。

Servlet 程序的示例代码:

public class HelloServlet implements Servlet {
    /\*\*
 \* service 方法是专门用来处理请求和响应的
 \* @param servletRequest
 \* @param servletResponse
 \* @throws ServletException
 \* @throws IOException
 \*/
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws
            ServletException, IOException {
        System.out.println("Hello Servlet 被访问了");
    }
}

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\_4\_0.xsd"
 version="4.0">
<!-- servlet 标签给 Tomcat 配置 Servlet 程序 -->
<servlet>
<!--servlet-name 标签 Servlet 程序起一个别名(一般是类名) -->
<servlet-name>HelloServlet</servlet-name>
<!--servlet-class 是 Servlet 程序的全类名 -->
<servlet-class>com.atguigu.servlet.HelloServlet</servlet-class>
</servlet>
<!--servlet-mapping 标签给 servlet 程序配置访问地址 -->
<servlet-mapping>
<!--servlet-name 标签的作用是告诉服务器,我当前配置的地址给哪个 Servlet 程序使用 -->
<servlet-name>HelloServlet</servlet-name>
<!--url-pattern 标签配置访问地址 <br/>
 / 斜杠在服务器解析的时候,表示地址为: http://ip:port/ 工程路径 <br/>
 /hello 表示地址为: http://ip:port/ 工程路径 /hello <br/>
 -->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>

✨常见的错误

常见的错误 1:url-pattern 中配置的路径没有以斜杠打头。
在这里插入图片描述
常见错误 2:servlet-name 配置的值不存在:
在这里插入图片描述
常见错误 3:servlet-class 标签的全类名配置错误:
在这里插入图片描述

✨url地址定位Servlet程序去访问详解

在这里插入图片描述

✨Servlet 的生命周期

第一步:执行 Servlet 构造器方法。
第二步:执行 init 初始化方法。
第一、二步,是在第一次访问,的时候创建 Servlet 程序会调用。
第三步:执行 service 方法。第三步,每次访问都会调用。
第四步:执行 destroy 销毁方法。第四步,在 web 工程停止的时候调用。

✨GET 和 和 POST 请求的分发处理

public class HelloServlet implements Servlet {
    /\*\*
 \* service 方法是专门用来处理请求和响应的
 \* @param servletRequest
 \* @param servletResponse
 \* @throws ServletException
 \* @throws IOException
 \*/
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws
            ServletException, IOException {
        System.out.println("3 service === Hello Servlet 被访问了");
// 类型转换(因为它有 getMethod() 方法)
        HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
// 获取请求的方式
        String method = httpServletRequest.getMethod();
        if ("GET".equals(method)) {
            doGet();
        } else if ("POST".equals(method)) {
            doPost();


![img](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/4feaa668842d4e8190117c96fe450e58~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1770657825&x-signature=HbswEtp1rrrf%2BIhP00c39qeBX6g%3D)
![img](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/bfeb761ff7c141c4aee77e6d7cae5ba2~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1770657825&x-signature=XpHJ1lz%2BsR2YyOS3NkXsuudAtTc%3D)
![img](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/d14c5f8903384313a4384cb068a89ef5~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1770657825&x-signature=hk0r%2FSg9towkSc%2Bq6kANh2a7Yx4%3D)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**


**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://gitee.com/vip204888)**