Servlet 执行流程 生命周期 ServletConfig 线程安全
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 线程安全的更多相关文章
- Servlet执行流程和生命周期【慕课网搬】
Servlet执行流程(GET方式为例) 首先用户客户端浏览器发出Get方式(点击超链接方式)向浏览器发出请求. 服务器接收到客户端点击超链接,接收到GET请求之后,服务器到WEB.xml中<s ...
- Servlet执行流程和生命周期
Servlet执行流程 Get方式请求HelloServlet ---> <a href="servlet/HelloServlet"> ↓ 服务器在配置文档中查 ...
- Servlet生命周期与线程安全
上一篇介绍了Servlet初始化,以及如何处理HTTP请求,实际上在这两个过程中,都伴随着Servlet的生命周期,都是Servlet生命周期的一部分.同时,由于Tomcat容器默认是采用单实例多线程 ...
- jsp当做第二个servlet request的生命周期 请求 响应 不管中间经历多少个servlet 只要最后一个serlvt执行后 则生命周期结束 request的域消失
jsp当做第二个servlet request的生命周期 请求 响应 不管中间经历多少个servlet 只要最后一个serlvt执行后 则生命周期结束 request的域消失
- Java Web学习总结(9)——servlet和Jsp生命周期解读
一.servlet的工作工程 Servlet是运行在Servlet容器(有时候也叫Servlet引擎,是web服务器和应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的 ...
- servlet反射、生命周期、接口
什么是Servlet Servlet是JavaWeb的三大组件之一,它属于动态资源.Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要: l ...
- Servlet配置及生命周期
1.设置Ecilipse快捷 file new 2.创建Servlet程序 1). 创建一个 Servlet 接口的实现类. public class HelloServl ...
- 面试之jsp、Servlet相关知识——生命周期, 区别等
1.servlet生命周期 所谓生命周期,指的是servlet容器如何创建servlet实例.分配其资源.调用其方法.并销毁其实例的整个过程. 阶段一: 实例化(就是创建servlet对象,调用构造器 ...
- servlet简介及生命周期
Servlet 简介 Servlet 是什么? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上 ...
随机推荐
- C# bootstrap之表格动态绑定值
这段时间研究了下bootstrap,打算从表格开始学习,实现动态绑定值,在网上找了挺多例子,但是很少有写全的,要不就太复杂,实现效果后总结一下,直接拷贝过去可以用. 第一步:先去官网上下载bootst ...
- XML之XPath
1.在 XPath 中,有七种类型的节点:元素.属性.文本.命名空间.处理指令.注释以及文档节点(或称为根节点). 1.1 XPath 术语 节点(Node) 在 XPath 中,有七种类型的节点:元 ...
- JSON(五)——同步请求中使用JSON格式字符串进行交互(不太常见的用法)
在同步请求中使用JSON格式进行数据交互的场景并不多,同步请求是浏览器直接与服务器进行数据交互的大多是用jsp的标签jstl和el表达式对请求中的数据进行数据的渲染.我也是在一次开发中要从其它服务器提 ...
- hue上配置HA的hdfs文件(注意,HA集群必须这样来配置才能访问hdfs文件系统)
按照正常方式配置,发现无论如何也访问不了hdfs文件系统,因为我们是HA的集群,所以不能按照如下配置 将其改为 除此之外,还需要配置hdfs文件的 接着要去hadoop的目录下启动httpfs.sh ...
- Multipath在OpenStack中的faulty device的成因及解决(part 1)
| 版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.如有问题,可以邮件:wangxu198709@gmail.com 简介: Multip ...
- 基于Mysql 5.7 GTID 搭建双主Keepalived 高可用
实验环境 CentOS 6.9 MySQL 5.7.18 Keepalived v1.2.13 拓扑图 10.180.2.161 M1 10.180.2.162 M2 10.180.2.200 VIP ...
- 用js来实现那些数据结构06(队列)
其实队列跟栈有很多相似的地方,包括其中的一些方法和使用方式,只是队列使用了与栈完全不同的原则,栈是后进先出原则,而队列是先进先出(First In First Out). 一.队列 队列是一种特 ...
- 拥抱开源,Office 365开发迎来新时代
前言 作为全球最大的开放源代码托管平台,Github在上周迎来了它的十岁生日.自从2008年正式上线以来,Github上面汇聚了数以千万计的开发人员和各种项目,它几乎成为了开源的代名词和风向标,各大软 ...
- java中的强大的枚举(基本没人用)
枚举的概念和多例设计模式相似,多例设计模式详见:多例设计模式代码模型 范例:简单枚举类 通过emu关键字定义一个枚举 package com.java.demo; enum Color{ RED,BL ...
- 初学servlet之@WebServlet传参
package app01a;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletCon ...