环境

JDK 8

Spring Tool Suite 4.6.1

Servlet 3.1

Tomcat 8.5

Maven 3.6.3

Servlet 说明

Java web 的核心接口 Servlet,很多的功能都围绕它展开。

作为顶级接口,我们可以选择直接实现它。它包含五个需要被实现的方法,下面将依次介绍。

Servlet 的生命周期方法调用:

在 Servlet 创建后,调用 init 方法。

所有客户端的请求都会由 service 方法来处理。

Servlet 被销毁时,调用 destroy 方法,然后被 GC 回收。

init

init 方法会在 Servlet 被实例化后被调用,且只被调用一次。

public void init(ServletConfig config) throws ServletException;

getServletConfig

通过该方法,可以获取到 ServletConfig 接口的一个对象。ServletConfig 之后介绍。

public ServletConfig getServletConfig();

service

客户端通过配置的路径可以访问到该方法,每被访问一次,该方法就被调用一次。

public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException

getServletInfo

获取 Servlet 的信息。

public String getServletInfo();

destroy

该方法在 Servlet 被销毁时调用。

public void destroy();

Servlet 示例

提供 Servlet-api

Servlet 的实现和接口在 Servlet 容器中都有,不需要自己提供。

所以我们只需要 Servlet-api 来保证我们编写代码不出现编译错误即可。

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

jiangbo.javaweb

02java-web-servlet

1.0.0

war

Servlet 的示例

1.8

1.8

UTF-8

javax.servlet

javax.servlet-api

3.1.0

provided

实现 Servlet 接口

package jiangbo.javaweb;

import java.io.IOException;

import javax.servlet.Servlet;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

public class Servlet01 implements Servlet {

@Override

public void init(ServletConfig config) throws ServletException {

System.out.println("init...");

}

@Override

public ServletConfig getServletConfig() {

return null;

}

@Override

public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {

System.out.println("service...");

}

@Override

public String getServletInfo() {

return null;

}

@Override

public void destroy() {

System.out.println("destroy...");

}

}

配置 web.xml

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee

http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">

servlet01

jiangbo.javaweb.Servlet01

servlet01

/servlet01

其中的 servlet-name 必须一样,它们才能关联起来。其中的逻辑是:

访问 /servlet01 路径时,找到其 servlet-name 为 servelt01。

根据 servlet01 找到对应的 servlet,得到 class 为:jiangbo.javaweb.Servlet01。

调用 jiangbo.javaweb.Servlet01 类的 service 方法。

映射路径的注意事项:

可以使用 * 作为通配符,但精确匹配优先。

必须以 / 或者 * 开头。

模糊匹配可以是 /test/* 或者 .do,但不能是 /test/.do。

可以将多个路径映射到同一个 Servlet 上,但是不能同一个路径映射多个 Servlet 。

浏览器访问

控制台输出

查看控制台输出, init 方法执行了一次,而 service 访问被调用了三次。

init...

service...

service...

service...

destroy...

java servlet是接口_JavaWeb:Servlet 接口相关推荐

  1. java文件下载接口_javaweb通过接口来实现多个文件压缩和下载(包括单文件下载,多文件批量下载)...

    @RequestMapping("/uploads")public void recursion(String root, Vector vecFile,HttpServletRe ...

  2. java 调用tomcat api,调用servlet接口流程

    使用Servlet接口的整体流程 目前对JavaWeb的理解是:用一次提交过程来表示,当点击一个提交的标签.会将url传到tomcat服务器,在tomcat的配置文件中找到管理javaweb项目的配置 ...

  3. 没有servlet接口_Java——Servlet

    在service方法里写后端的需要的处理.什么是Servlet? Servlet是运行在服务器端的小型应用程序,通过http接收和响应来自web客户端的请求. 2. 如何创建Servlet? 分为两步 ...

  4. java web核心编程_JavaWeb核心编程之(三)Servlet配置

    Servlet配置 1.配置Serlvet加载时机 2.配置多映射 配置加载时机 新建项目config->创建包com.xiaoan.config->创建类FirstServlet imp ...

  5. java web 生成验证码_Javaweb开发中通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 package gacl.res ...

  6. 初学Java Web(3)——第一个Servlet

    这学期 Java Web 课程的第一节课就简短复习了一下 Java 的一些基础知识,所以觉得 Java 的基础知识还是很重要的,但当我想要去写一篇 Java 回顾的文章的时候发现很难,因为坑实在太多了 ...

  7. Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交

    在Java EE应用编程中Servlet是基础,JSP是建立在Servlet基础之上的,其他Web框架如Struts.WebWork和Spring MVC都是基于Servlet的.本文主要讲述MyEc ...

  8. java ee用户登录_EE Servlet 3:使用会话和过滤器开发用户登录

    java ee用户登录 我在上一篇文章中介绍了Application类,您可以在其中设置后端服务. 我添加的一个示例服务是UserService . 该服务将加载包含用户名和密码集的Java用户属性文 ...

  9. java 的泛型的嵌套_Java接口泛型的嵌套实现

    业务管理端增删改查的东西写得多了,懒得重复那么多的方法了,搞了一个最基本的接口来偷懒. 代码在下面 ,保留起来,慢慢看: 1.最基本的泛型接口 import java.util.List;import ...

最新文章

  1. java面试常见问题之Hibernate总结
  2. 面板panel与窗口frame的区别
  3. 网络编程相关概念学习笔记
  4. 又是一卦测感情,这卦很是霸气
  5. 解决apktool d file.apk出现Error occured while disassembling class以及apktool源码编译
  6. CodeForces - 1174D Ehab and the Expected XOR Problem(构造+思维+位运算)
  7. 简单Nlp分析套路,获取数据(爬虫),数据处理(分词,词频,命名实体识别与关键词抽取),结果展现
  8. django-关闭调试模式-保护网站安全
  9. VS2008下CEGUI 0.7.1的安装
  10. 【转参考】MySQL利用frm和ibd文件进行数据恢复
  11. ppocr 源码阅读:ppocr.modeling.architecures 之build_model模块
  12. 离线版的百度地图 js
  13. 怎样把IPv4转换成IPv6?
  14. kdj线指标详解与案例探究
  15. 研发团队管理--向上沟通
  16. 2020春节假期延长至正月初九(2月2日)
  17. [转]优秀程序设计的Kiss原则(keep it simple,stupid)
  18. 中联医疗系统服务器,中联医学影像系统(PACS)
  19. Codeforces Global Round 21 C. Fishingprince Plays With Array
  20. Assert 的用法

热门文章

  1. SAP Spartacus module 延迟加载和正常加载的 chunk 内容差异
  2. SAP Spartacus not found页面的显示触发机制 - ErrorPageTemplate
  3. SAP CRM webclient ui help link超链接的生成逻辑
  4. 一步步学习如何安装并使用SAP HANA Express Edition
  5. SAP Hybris Commerce里类似ABAP里的透明表设计
  6. Promolike Qualtrics Dashboard
  7. 不同的S/4HANA系统,同一创建用户的功能,因为权限不同而造成的差异
  8. how is AppointmentList.view being loaded in the runtime
  9. 为什么我开发的SAP UI5应用里的group by 功能不工作?
  10. how SAP OData supported option in odata eq ne lt gt?