码迷,mamicode.com
首页 > 编程语言 > 详细

Servlet 执行流程 生命周期 ServletConfig 线程安全

时间:2018-04-25 17:07:50      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:lib   vax   list   从服务器   流程   ini   特定   值类型   时机   

Day34 servlet

 

 

三、如何使用Servlet

1、继承GenericServlet类(通用)

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

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

 

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

 

ServletJavaWeb三大组件之一(ServletFilterListener),且最重要

1.1.1 Servlet入门(重点)

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

方式2:

编写servlet步骤: 

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

继承javax.servlet.http.HttpServlet

复写doGet()doPos()t方法

配置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生命周期(重点)

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

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

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

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介绍(了解)

概念

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

作用

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

获得servlet的初始化参数

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

创建(ServletConfig的生命周期):

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

获取servletconfig.

servlet中通过了 getServletConfig()

常见的api(了解)

方法名

返回值类型

描述

getInitParameter(name)

String

获得Servlet的初始化参数的

getInitParameterNames()

Enumeration

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

getServletContext()

ServletContext

获得ServletContext对象的引用

getServletName()

String

获得Servletweb.xml中配置的name的值。

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

 

、如何保证Servlet线程安全

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

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

 

Servlet 执行流程 生命周期 ServletConfig 线程安全

标签:lib   vax   list   从服务器   流程   ini   特定   值类型   时机   

原文地址:https://www.cnblogs.com/shan1393/p/8945303.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!