Day34 servlet

三、如何使用Servlet

1、继承GenericServlet类(通用)

(1)GenericServlet类有一个关键的设计,定义了一个私有的ServletConfig成员变量,在init()方法中,由Servlet容器传入ServletConfig对象与之匹配。

(2)GenericServlet类中唯一一个抽象方法是Service方法,子类必须实现Service方法,以为用户提供特定的服务。

2、继承HttpServlet类,是GenericServlet的子类,重写了Service方法,提供了HTTP的相关服务实现。用户需要做的事,根据实际情况,重写doPost()、doGet()等方法。

 

Servlet是JavaWeb三大组件之一(Servlet、Filter、Listener),且最重要

1.1.1 Servlet入门(重点)

方式1:实现Sevrlet接口(了解)

方式2:

编写servlet步骤:

Servlet规范要求:Servlet程序需要编写实现类,并在web.xml进行配置

l 继承javax.servlet.http.HttpServlet

l 复写doGet()和doPos()t方法

l 配置web.xml文件

1.1.1.1 Servlet的执行的流程详解

1.1.1.2 Request获得请求参数(掌握)

1.1.2 Request接收请求参数

1.1.2.1 Request接收请求参数的概述

请求参数

方法名

描述

String getParameter(String name)

获得指定参数名对应的值。如果没有返回null,如果只有多个获得第一个。

例如:username=jack

1.1 Servlet生命周期(重点)

l 概念:Servlet生命周期就是Servlet对象从创建到销毁的过程

n 何时创建:用户第一次访问servlet是创建

n 何时销毁:项目从服务器中移除或者服务器停止

l Servlet规定,所有的servlet必须实现javax.servle.Servlet接口

l void init(ServletConfig config):初始化方法

* 初始化方法

* 执行时机:默认第一次访问的时候

* 执行次数:一生只一次(单例)

* 执行者:服务器(tomcat)

l void service(ServletRequest request,ServletResponse response):服务方法

* 服务方法

* 执行时机:每次访问的时候

* 执行次数:访问一次执行一次

* 执行者:服务器

l void destroy():销毁方法

* 销毁方法

* 执行时机:项目被移除的时候或者服务器正常关闭的时候

* 执行次数: 一生只一次

* 执行者:服务器

1.2 ServletConfig介绍(了解)

l 概念

n servlet的配置对象,一个servlet对应一个servlet配置对象

l 作用

n 获得servlet名称  <servlet-name>ConfigServlet</servlet-name>

n 获得servlet的初始化参数

n 获得上下文对象(全局管理者ServletContext)

l 创建(ServletConfig的生命周期):

服务器创建servlet的同时,也创建了当前servlet的配置对象,通过servlet的init方法传递给当前servlet

获取servletconfig.

servlet中通过了 getServletConfig()

常见的api(了解)

方法名

返回值类型

描述

getInitParameter(name)

String

获得Servlet的初始化参数的

getInitParameterNames()

Enumeration

获得所有Servlet的初始化参数的名称

getServletContext()

ServletContext

获得ServletContext对象的引用

getServletName()

String

获得Servlet在web.xml中配置的name的值。

及<servlet-name>标签配置内容。

、如何保证Servlet线程安全

1、保证变量作用域合理,线程私有的变量要定义在方法中。

2、共享变量要用保证线程安全,可以使用加锁、atomic类、volatile关键字实现。

Servlet 执行流程 生命周期 ServletConfig 线程安全的更多相关文章

  1. Servlet执行流程和生命周期【慕课网搬】

    Servlet执行流程(GET方式为例) 首先用户客户端浏览器发出Get方式(点击超链接方式)向浏览器发出请求. 服务器接收到客户端点击超链接,接收到GET请求之后,服务器到WEB.xml中<s ...

  2. Servlet执行流程和生命周期

    Servlet执行流程 Get方式请求HelloServlet ---> <a href="servlet/HelloServlet"> ↓ 服务器在配置文档中查 ...

  3. Servlet生命周期与线程安全

    上一篇介绍了Servlet初始化,以及如何处理HTTP请求,实际上在这两个过程中,都伴随着Servlet的生命周期,都是Servlet生命周期的一部分.同时,由于Tomcat容器默认是采用单实例多线程 ...

  4. jsp当做第二个servlet request的生命周期 请求 响应 不管中间经历多少个servlet 只要最后一个serlvt执行后 则生命周期结束 request的域消失

    jsp当做第二个servlet  request的生命周期   请求 响应  不管中间经历多少个servlet 只要最后一个serlvt执行后 则生命周期结束  request的域消失

  5. Java Web学习总结(9)——servlet和Jsp生命周期解读

    一.servlet的工作工程 Servlet是运行在Servlet容器(有时候也叫Servlet引擎,是web服务器和应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的 ...

  6. servlet反射、生命周期、接口

    什么是Servlet Servlet是JavaWeb的三大组件之一,它属于动态资源.Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要: l  ...

  7. Servlet配置及生命周期

    1.设置Ecilipse快捷  file new 2.创建Servlet程序 1). 创建一个 Servlet 接口的实现类.              public class HelloServl ...

  8. 面试之jsp、Servlet相关知识——生命周期, 区别等

    1.servlet生命周期 所谓生命周期,指的是servlet容器如何创建servlet实例.分配其资源.调用其方法.并销毁其实例的整个过程. 阶段一: 实例化(就是创建servlet对象,调用构造器 ...

  9. servlet简介及生命周期

    Servlet 简介 Servlet 是什么? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上 ...

随机推荐

  1. zuul入门(1)zuul 的概念和原理

    一.zuul是什么 zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用. Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架. ...

  2. Spring Security入门(3-8)Spring Security获取session中的UserDetail

  3. Apache Flink 分布式执行

    Flink 的分布式执行过程包含两个重要的角色,master 和 worker,参与 Flink 程序执行的有多个进程,包括 Job Manager,Task Manager 以及 Job Clien ...

  4. mysql中独立表空间与共享表空间之前如何切换

    环境 mysql版本:5.7.19 官方文档:(https://dev.mysql.com/doc/refman/5.7/en/innodb-multiple-tablespaces.html) 查看 ...

  5. Spring Cloud之——Config(配置中心)

    Spring Cloud Config(配置中心) 大家好,有一段时间没有写技术博客了.由于工作上的事情,这方面很难分配时间.近几年随着服务化的兴起,一批服务化的框架应运而生,像dubbo,thrif ...

  6. Lua中table的实现-《Lua设计与实现》

    本文来自<Lua设计与实现>的阅读笔记,推荐Lua学习者可以购买一本,深入浅出讲解lua的设计和实现原理,很赞,哈哈   Lua中对于表的设计,是基于数组和散列表,和其他语言不同,对于数组 ...

  7. 区块链3.0:拥抱EOS

    EOS是当下最火的区块链技术,被社会广泛看好为下一代区块链3.0.不同于以太坊的学习,EOS的主语言是C++,本文作为EOS研究的首篇文章,重点介绍EOS的创新点,它的周边生态,各种概念原理的解释,以 ...

  8. Windows下安装Python3和Django

    下载python3 首先去 python的官网 下载最新稳定版的python3, 我下载的时候python3的最新版本是3.6.5. 亦可点击 此链接 直接下载. 安装python3 傻瓜式安装,注意 ...

  9. ProxySQL 读写分离实践

    前言 ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎.具有以下特性: 连接池,而且是 multiplexing 主机和用户的最大连接数限制 自动下线后端DB 延迟超过阀值 ping ...

  10. 简述ConCurrentHashMap

    HashMap: 从JDK1.2起,就有了HashMap,HashMap不是线程安全的,多线程操作时需要注意. CurrentHashMap: 在JDK1.5中,引入concurrent包,从此Map ...