0
点赞
收藏
分享

微信扫一扫

1.1 深度学习和神经网络

SPEIKE 2024-03-06 阅读 19

目录

一.概述

二.基础实现

1.导入坐标

2.定义实现类

3.注解

4.访问Servlet

三.执行流程

四.生命周期 

1.加载和实例化

2.初始化

3.请求处理

4.服务终止

五.方法

1.init

2.service

3.destroy

4.getServletInfo

5.getServletConfig

六.体系结构

七.urlPattern配置

1.精确匹配

2.目录匹配

3.扩展名匹配

4.任意匹配

八.Xml配置Servlet


 

一.概述

servlet就是一门Java提供的动态开发web资源的技术。 

Servlet是JavaEE规范之一,本质就是一个接口,需要开发人员自己定义Servlet类实现Servlet接口,并由web服务器运行Servlet。

查看API文档,开发者的任务便是编写实现类,实现上述接口中的5个方法。

二.基础实现

1.导入坐标

首先创建一个Web项目,前文已说过此处不赘述。

在配置文件中引入Tomcat的插件:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>
    </build>

 添加Servlet的依赖:

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

2.定义实现类

如上,定义实现类。

package Myweb;

import javax.servlet.*;
import java.io.IOException;

public class ServletDemo1 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 {

    }

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

    @Override
    public void destroy() {

    }
}

 重写方法。

3.注解

4.访问Servlet

配置文件中添加如下代码,将打包改为war包:

<packaging>war</packaging>

 添加插件:

   <plugin>
              <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
                
  </plugin>

打包。

启动Tomcat服务器~

键入正确的注释:

Servlet已经启动成功!(这句话是博主自行键入的~)

当然也可以通过Maven插件的方式运行~

三.执行流程

http://localhost:8080/Servlet_F1_war/demo1

如上是博主访问上述Servlet的路径,展开来说:

  •  localhost:8080:Tomcat服务器的端口号
  • Servlet_F1_war:项目名
  • demo1:Servlet的注解名

Servlet由web服务器创建,它的方法也由web服务器调用。

四.生命周期 

1.加载和实例化

默认情况下,当Servlet第一次被访问时,由容器创建Servlet对象。

2.初始化

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

@WebServlet(urlPatterns="/demo1",loadOnStartup = 0)

完成如上修改,则服务器启动时 

3.请求处理

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

4.服务终止

        当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()方法完成资源的释放。在destroy()方法调用之后,容器会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收。

五.方法

1.init

初始化方法,创建Servlet时执行一次~

2.service

提供服务方法,每次Servlet被访问,都会调用该方法~

3.destroy

销毁方法,当Servlet被销毁时,调用该方法。

4.getServletInfo

获取ServletConfig对象。

5.getServletConfig

获取Servlet信息。

六.体系结构

开发B/S架构的web项目,都是针对HTTP协议,所以我们自定义Servlet来继承HttpServlet。如下:

package Myweb;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/demo2")
public class ServletDemo2 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);
    }
}

        考虑到不同请求方式提交数据的格式不同,需要针对不同方法编写不同的业务逻辑。HttpServlet的存在,本质上是简化了封装处理get请求和post请求的过程~

七.urlPattern配置

如上,一个Servlet可以配置多个访问路径。

1.精确匹配

即,访问路径与配置路径完全一致:

2.目录匹配

包含通配符的路径~

(需要注意的是,如果出现名字相似的重合情况,精确匹配的优先级会高于目录匹配~) 

3.扩展名匹配

不能以斜杠开头

4.任意匹配

无论写什么路径都可以访问得到。需要注意的是,该种写法优先级最低~

  • "/"的配置方式,会覆盖掉Tomcat种的DefaultServlet,当其他的url-pattern都匹配不上时都会走这个Servlet
  • "/*",则意味着匹配任意访问路径

八.Xml配置Servlet

3.0版本以前,只支持XML配置方式。

举报

相关推荐

0 条评论