java servlet是接口_JavaWeb:Servlet 接口
环境
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 接口相关推荐
- java文件下载接口_javaweb通过接口来实现多个文件压缩和下载(包括单文件下载,多文件批量下载)...
@RequestMapping("/uploads")public void recursion(String root, Vector vecFile,HttpServletRe ...
- java 调用tomcat api,调用servlet接口流程
使用Servlet接口的整体流程 目前对JavaWeb的理解是:用一次提交过程来表示,当点击一个提交的标签.会将url传到tomcat服务器,在tomcat的配置文件中找到管理javaweb项目的配置 ...
- 没有servlet接口_Java——Servlet
在service方法里写后端的需要的处理.什么是Servlet? Servlet是运行在服务器端的小型应用程序,通过http接收和响应来自web客户端的请求. 2. 如何创建Servlet? 分为两步 ...
- java web核心编程_JavaWeb核心编程之(三)Servlet配置
Servlet配置 1.配置Serlvet加载时机 2.配置多映射 配置加载时机 新建项目config->创建包com.xiaoan.config->创建类FirstServlet imp ...
- java web 生成验证码_Javaweb开发中通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 package gacl.res ...
- 初学Java Web(3)——第一个Servlet
这学期 Java Web 课程的第一节课就简短复习了一下 Java 的一些基础知识,所以觉得 Java 的基础知识还是很重要的,但当我想要去写一篇 Java 回顾的文章的时候发现很难,因为坑实在太多了 ...
- Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交
在Java EE应用编程中Servlet是基础,JSP是建立在Servlet基础之上的,其他Web框架如Struts.WebWork和Spring MVC都是基于Servlet的.本文主要讲述MyEc ...
- java ee用户登录_EE Servlet 3:使用会话和过滤器开发用户登录
java ee用户登录 我在上一篇文章中介绍了Application类,您可以在其中设置后端服务. 我添加的一个示例服务是UserService . 该服务将加载包含用户名和密码集的Java用户属性文 ...
- java 的泛型的嵌套_Java接口泛型的嵌套实现
业务管理端增删改查的东西写得多了,懒得重复那么多的方法了,搞了一个最基本的接口来偷懒. 代码在下面 ,保留起来,慢慢看: 1.最基本的泛型接口 import java.util.List;import ...
最新文章
- java面试常见问题之Hibernate总结
- 面板panel与窗口frame的区别
- 网络编程相关概念学习笔记
- 又是一卦测感情,这卦很是霸气
- 解决apktool d file.apk出现Error occured while disassembling class以及apktool源码编译
- CodeForces - 1174D Ehab and the Expected XOR Problem(构造+思维+位运算)
- 简单Nlp分析套路,获取数据(爬虫),数据处理(分词,词频,命名实体识别与关键词抽取),结果展现
- django-关闭调试模式-保护网站安全
- VS2008下CEGUI 0.7.1的安装
- 【转参考】MySQL利用frm和ibd文件进行数据恢复
- ppocr 源码阅读:ppocr.modeling.architecures 之build_model模块
- 离线版的百度地图 js
- 怎样把IPv4转换成IPv6?
- kdj线指标详解与案例探究
- 研发团队管理--向上沟通
- 2020春节假期延长至正月初九(2月2日)
- [转]优秀程序设计的Kiss原则(keep it simple,stupid)
- 中联医疗系统服务器,中联医学影像系统(PACS)
- Codeforces Global Round 21 C. Fishingprince Plays With Array
- Assert 的用法
热门文章
- SAP Spartacus module 延迟加载和正常加载的 chunk 内容差异
- SAP Spartacus not found页面的显示触发机制 - ErrorPageTemplate
- SAP CRM webclient ui help link超链接的生成逻辑
- 一步步学习如何安装并使用SAP HANA Express Edition
- SAP Hybris Commerce里类似ABAP里的透明表设计
- Promolike Qualtrics Dashboard
- 不同的S/4HANA系统,同一创建用户的功能,因为权限不同而造成的差异
- how is AppointmentList.view being loaded in the runtime
- 为什么我开发的SAP UI5应用里的group by 功能不工作?
- how SAP OData supported option in odata eq ne lt gt?