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

Posted 阿善9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet 执行流程 生命周期 ServletConfig 线程安全相关的知识,希望对你有一定的参考价值。

Day34 servlet

 Tomcat 目录结构

 

bin:脚本目录

启动脚本:startup.bat

停止脚本:shutdown.bat

conf:配置文件目录 (config /configuration)

核心配置文件:server.xml   配置get请求编码  URIEconding

用户权限配置文件:tomcat-users.xml

所有web项目默认配置文件:web.xml

lib:依赖库,tomcatweb项目中需要使用的jar

logs日志文件.

localhost_access_log.*.txt tomcat记录用户访问信息,星*表示时间。

例如:localhost_access_log.2016-02-28.txt

temp:临时文件目录,文件夹内内容可以任意删除。

webapps默认情况下发布WEB项目所存放的目录。

worktomcat处理JSP的工作目录

三、如何使用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)

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

 * 服务方法

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

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

 * 执行者:服务器

l void destroy():销毁方法

 * 销毁方法

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

 * 执行次数: 一生只一次

 * 执行者:服务器

1.2 ServletConfig介绍(了解)

概念

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

作用

n 获得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 线程安全的主要内容,如果未能解决你的问题,请参考以下文章

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

java_servlet执行流程和生命周期

jsp和servlet

Servlet的生命周期

JSP和Servlet面试题

JSP和Servlet面试题