Servlet-javaweb学习笔记(六)

本文介绍了Servlet的基本概念,包括它的作用和在JavaEE中的地位。通过示例展示了如何使用Maven引入Servlet库,创建Servlet类并配置访问路径。详细说明了Servlet的执行流程和生命周期,以及重要的服务方法。还涵盖了Servlet的体系结构,HTTP方法的处理,以及通过注解和XML配置方式设置Servlet的URL映射。
摘要由CSDN通过智能技术生成

一、Servlet是什么?

二、Servlet快速使用

(一)利用Maven将Servlet引入库

(二)创建一个类,实现Servlet接口,并重写接口有方法。创建访问路径。

(三)测试

三、Servlet的执行流程

(一)大致描述

(二)细节描述

四、Servlet的生命周期

 (一)对象的生命周期

(二)Servlet生命周期

五、Servlet的方法

1.初始化方法

2.提供服务器方法

3.销毁方法

4.获取ServletConfig对象(Servlet的配置对象)(不常用)

5.获取Servlet信息(不常用)

六、Servlet的体系结构

七、Servlet urlPattern配置

(一) 配置方式

(二) 配置规则:

八、XML配置方式编写Servlet


一、Servlet是什么?

Servlet是java提供的一个动态web开发技术。就比如不同的用户看到的界面有的不同,那就是啦。

Servlet是JavaEE规范之一,其实就是一个接口。实现接口就行。

二、Servlet快速使用

(一)利用Maven将Servlet引入库

创建文本项目后,导入Servlet的jar包。如果不是最新版(tomcat10)则,以下依赖坐标

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>4.0.1</version>
</dependency>

 如果是最新版,不再使用Javax了,不会有人用着tomcat10版本,对着上面坐标导入了一下午,但就是看不到页面吧,不会吧,不会吧,不会那个人就是我吧。导入以下坐标。

<dependency>
  <groupId>jakarta.servlet</groupId>
  <artifactId>jakarta.servlet-api</artifactId>
  <version>6.0.0</version>
  <scope>provided</scope>
</dependency>

(二)创建一个类,实现Servlet接口,并重写接口有方法。创建访问路径。

package com.rosen.web;
import jakarta.servlet.*;
import jakarta.servlet.annotation.WebServlet;

import java.io.IOException;
@WebServlet("/demo")
public class ServletDemo implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("123");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

@WebServlet("/demo")就是创建访问路径。其中在service方法里输出123,代表如果你访问了前面的访问路径,就可以看到控制台输出123了。

(三)测试

用tomcat启动项目,在启动项目web路径(如果是插件启动,在控制台中,如果是直接框架编译就会弹出页面来)后,在网址后加上上面起的访问路径。如“123.0.0.1:80/javaweb_test_war/demo”访问后看控制台是否输出,如果输出,则Servlet实现成功。

三、Servlet的执行流程

(一)大致描述

首先创建web项目,实现servlet类,并且写了访问路径。把web项目发布到tomcat服务器中,服务器一启动,就可以通过路径访问。127.0.0.1:80是访问tomcat服务器。12.0.0.1:80/javaweb_test_war是访问到了web项目。12.0.0.1:80/javaweb_test_war/demo访问到了Servlet。

(二)细节描述

1.servlet对象是谁实现的

web服务器(tomcat)创建的Servlet实现的,里面的方法也是tomcat实现的。

2.服务器怎么指定Servlet中一定有service方法

因为必须实现这个接口,就必须复写这个方法

四、Servlet的生命周期

 (一)对象的生命周期

指一个对象从被创建到被销毁的整个过程

(二)Servlet生命周期

Servlet运行在Servlet容器中(web服务器)中,其生命周期由容器来管理。分为四个阶段。

1.加载和实例化:默认情况下,Servlet第一次被访问时,由容器创建Servlet对象。

        也可以自己设置,如图所示

·····

2.初始化:在Servlet实例化之后,容器调用Servlet的init()方法,初始化对象。完成加载配置文件,创建连接等初始化工作。该方法只调用一次。

3.请求处理:每次请求Servlet时,Servlet容器都会调用Servlet的service()方法对请求进行处理。

4.服务终止:当需要释放内存/关闭服务器,Servlet容器都会Servlet的destroy()方法完成资源的释放。调用后,容器就会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收

五、Servlet的方法

1.初始化方法

void init(ServletConfig servletConfig)

在Servlet创建时候执行一次,只执行一次

2.提供服务器方法

void service(ServletRequest servletRequest, ServletResponse servletResponse)

每次Servlet被访问,调用

3.销毁方法

void destroy()

当需要释放内存/关闭服务器,Servlet容器都会Servlet的destroy()方法完成资源的释放

4.获取ServletConfig对象(Servlet的配置对象)(不常用)

ServletConfig getServletConfig()

与init()方法参数对应,想要返回的化,就把init()中的参数,设置为成员变量。

5.获取Servlet信息(不常用)

String getServletInfo() 

    像作者,像版本,像版权。

六、Servlet的体系结构

 因为web开发,针对http协议的,所以自定义的Servlet,会继承HttpServlet

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
@WebServlet("/http1")

public class ServletDemohttp1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("get");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("post");
    }


}

使用get和post方法,如果访问页面,自动调用get方法,post方法,必须数据传过来,才会调用。

因为原来的Servlet接口,对于数据还要判断是post还是get,而此直接把两者分开了

七、Servlet urlPattern配置

(一) 配置方式

Servlet要想被访问,必须设置访问路径

且可以配置多个访问路径

@WebServlet(urlPatterns = {"/http1","/http2","/htt3"})

(二) 配置规则:

1.精确匹配

 2.目录匹配

3.拓展名匹配        

 注意:*.do前面不能再加其他上一层了

4.任意匹配

/就是静态资源访问不到了 

八、XML配置方式编写Servlet

Servlet3.0之前的配置方式,现在都用注解方式。

在web.xml的<web-app>里配置

<servlet>
//名字自取
  <servlet-name>ser1</servlet-name>
//Servlet的接口实现类
  <servlet-class>com.rosen.web.ServletDemo</servlet-class>
</servlet>
  <servlet-mapping>
//自取名字
    <servlet-name>ser1</servlet-name>
//url
    <url-pattern>"/demo"</url-pattern>
  </servlet-mapping>

 会与注解方式冲突。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rosen6664

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值