JavaWeb 之 Servlet 简介与应用 一、Servlet 技术 二、Servlet 入门案例 三、执行原理(url如何访问到Servlet程序)

  1、概念

    Servlet:server applet,是指运行在服务器端的小程序。

    Servlet 就是 JavaEE 规范之一。(规范就是接口)

    Servlet 就是 JavaWeb 三大组件之一。(三大组件分别是:Servlet程序、Filter 过滤器、Listener监听器)

    Servlet 就是运行在服务器上的一个 Java 小程序。(它可以接收客户端发送过来的请求,并响应数据给客户端

  2、Servlet

    Servlet 就是一个接口,定义了 Java 类被浏览器访问到(Tomcat识别)的规则。

    JavaWeb 之 Servlet 简介与应用
一、Servlet 技术
二、Servlet 入门案例
三、执行原理(url如何访问到Servlet程序)

二、Servlet 入门案例

  1、编写步骤

    手动实现 Servlet 程序:

    (1)编写一个类去实现 Servlet 接口;

    (2)实现 service 方法,处理请求,并响应数据;

    (3)到 web.xml 中去配置 servlet 程序的访问地址;

  2、入门案例

    (1)创建 JavaEE 项目

    (2)定义一个类,实现 Servlet 接口

public class HelloServlet implements Servlet{}

    (3)实现接口中的抽象方法

 1 import javax.servlet.*;
 2 import java.io.IOException;
 3 
 4 /**
 5  * @author njf
 6  * on 2021/8/6
 7  */
 8 public class HelloServlet implements Servlet {
 9     @Override
10     public void init(ServletConfig config) throws ServletException {
11 
12     }
13 
14     @Override
15     public ServletConfig getServletConfig() {
16         return null;
17     }
18 
19     /**
20      * service 方法是专门用来处理请求和响应的
21      * @param req
22      * @param res
23      * @throws ServletException
24      * @throws IOException
25      */
26     @Override
27     public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
28         System.out.println("Hello Servlet被访问了");
29     }
30 
31     @Override
32     public String getServletInfo() {
33         return null;
34     }
35 
36     @Override
37     public void destroy() {
38 
39     }
40 }

    (4)配置 Servlet ,在 web.xml 里面配置

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
 5          version="4.0">
 6 
 7     <!--配置servlet-->
 8     <servlet>
 9         <!--servlet名称-->
10         <servlet-name>HelloServlet</servlet-name>
11         <!--servlet全类名-->
12         <servlet-class>com.njf.java.HelloServlet</servlet-class>
13     </servlet>
14     
15     <servlet-mapping>
16         <!--servlet名称-->
17         <servlet-name>HelloServlet</servlet-name>
18         <!--映射路径-->
19         <url-pattern>/hello</url-pattern>
20     </servlet-mapping>
21 </web-app>

    Demo:

    JavaWeb 之 Servlet 简介与应用
一、Servlet 技术
二、Servlet 入门案例
三、执行原理(url如何访问到Servlet程序)

  3、配置 xml 常见错误

    (1)错误1:url-pattern 中配置的路径没有以斜杠开头。

    JavaWeb 之 Servlet 简介与应用
一、Servlet 技术
二、Servlet 入门案例
三、执行原理(url如何访问到Servlet程序)

    (2)错误2:servlet-name 写错了,配置的值不存在。

    JavaWeb 之 Servlet 简介与应用
一、Servlet 技术
二、Servlet 入门案例
三、执行原理(url如何访问到Servlet程序)

    (3)错误3:servlet-class 标签的全类名配置错误。

    JavaWeb 之 Servlet 简介与应用
一、Servlet 技术
二、Servlet 入门案例
三、执行原理(url如何访问到Servlet程序)

  4、注意

    Servlet 接口是在 javax.servlet 包里的,要想使用此类,需要给模块添加 Tomcat 运行环境或者添加 javax.servlet-api.jar到环境中。

三、执行原理(url如何访问到Servlet程序)

    (1)当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径

    (2)查找 web.xml 文件,是否有对应的<url-pattern>标签体内容。

    (3)如果有,则在找到对应的<servlet-class>全类名

    (4)Tomcat会将字节码文件加载进内存,并且创建其对象

    (5)调用其方法

     示意图:

    JavaWeb 之 Servlet 简介与应用
一、Servlet 技术
二、Servlet 入门案例
三、执行原理(url如何访问到Servlet程序)

JavaWeb 之 Servlet 简介与应用
一、Servlet 技术
二、Servlet 入门案例
三、执行原理(url如何访问到Servlet程序)