Servlet从浅入深
Servlet是什么
servlet 是运行在 Web 服务器中的小型 Java 程序(即:服务器端的小应用程序)。
servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。
一.执行过程
二.生命周期
实例化------》初始化--------》服务-------》消亡
出生 实例化----》初始化 (第一次访问Servlet就出生了:默认情况下)
活着 服务 应用活着Servlet就活着
死亡 消亡 应用卸载了 Servlet就消亡了
三.创建Servlet的三种方式
a.实现javax.servlet.Servlet接口(参见:编写一个servlet程序:)
b.继承javax.servet.GenericServlet类(适配器模式)
c.继承javax.servlet.http.HttpServlet类(模板方法设计模式)
(开发中常用方式)
Servlet --> GenericServlet --> HttpServlet (继承HttpServlet)
曾祖父 爷爷 爸爸 孙子
小技巧:使生成的servlet更清新一些
找到:MyEclipse\Common\plugins目录
把com.genuitec.eclipse.wizards_9.0.0.me201108091322.jar复制到上面目录
servlet的映射细节1.
<servlet>
<servlet-name>lifeCycleDemo()</servlet-name>
<servlet-class>lifeCycleDemo.ServletCreate</servlet-class>
</servlet>
一个完整的映射(可以配置多个映射路径)
<servlet-mapping>
<servlet-name>lifeCycleDemo</servlet-name>
<url-pattern>/Demo1</url-pattern>
</servlet-mapping>
映射细节2:
通配符* 代表任意字符串
url-pattern: *.do 以*.字符串的请求都可以访问 注:不要加/ url-pattern: /* 任意字符串都可以访问 url-pattern: /action/* 以/action开头的请求都可以访问
匹配规则:
优先级:从高到低
绝对匹配--> /开头匹配 --> 扩展名方式匹配
如果url-pattern的值是/,表示执行默认映射。所有资源都是servlet
二、Servlet的线程安全
servlet的创建时时机:第一次调用会创建该对象。
但是里面的方法会在栈中执行完后进行销毁。但有些资源(成员变量)会存在共享
单实例:每次访问多线程
解决线程安全问题的最佳办法,不要写全局变量,而写局部变量。
三. servlet的消亡方法
手动调用servlet的消亡方法,servlet并不会消亡,只会在tomcat关闭的情况下才会进行销毁。
消亡方法可以进行资源的额释放等操作
Servlet从浅入深的更多相关文章
- 浅入深出之Java集合框架(上)
Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...
- 浅入深出之Java集合框架(中)
Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...
- 浅入深出之Java集合框架(下)
Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...
- 浅入深出Vue:环境搭建
浅入深出Vue:环境搭建 工欲善其事必先利其器,该搭建我们的环境了. 安装NPM 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版本的NodeJS Windows安装程序 下载下来后,直 ...
- 浅入深出Vue:工具准备之PostMan安装配置及Mock服务配置
浅入深出Vue之工具准备(二):PostMan安装配置 由于家中有事,文章没顾得上.在此说声抱歉,这是工具准备的最后一章. 接下来就是开始环境搭建了~尽情期待 工欲善其事必先利其器,让我们先做好准备工 ...
- 浅入深出Vue:工具准备之WebStorm安装配置
浅入深出Vue之工具准备(一):WebStorm安装配置 工欲善其事必先利其器,让我们先做好准备工作吧 导航篇 WebStorm安装配置 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版 ...
- 浅入深出Vue系列
浅入深出Vue导航 导航帖,直接点击标题即可. 文中所有涉及到的资源链接均在最下方列举出来了. 前言 基础篇 浅入深出Vue:工具准备之WebStorm搭建及配置 浅入深出Vue之工具准备(二):Po ...
- 浅入深出Vue:前言
浅入深出Vue系列文章 之前大部分是在做后端,后来出于某些原因开始接触Vue.深感前端变化之大,各种工具.框架令人眼花缭乱.不过正是这些变化,让前端开发更灵活. 博主在刚开始时,参考官网的各个步骤以及 ...
- 『浅入深出』MySQL 中事务的实现
在关系型数据库中,事务的重要性不言而喻,只要对数据库稍有了解的人都知道事务具有 ACID 四个基本属性,而我们不知道的可能就是数据库是如何实现这四个属性的:在这篇文章中,我们将对事务的实现进行分析,尝 ...
随机推荐
- storm集群相关资料
1. Storm集群组件 Storm集群中包含两类节点:主控节点(Master Node)和工作节点(Work Node).其分别对应的角色如下: 主控节点(Master Node)上运行一个被称为N ...
- golang获取IP地址
ip:=this.Ctx.Request.RemoteAddr ip=ip[0:strings.LastIndex(ip, ":")]
- js获取地址栏信息
参考: http://www.w3school.com.cn/jsref/dom_obj_location.asp http://www.xxx.com:8081/ location.host = w ...
- Memtester——Linux内存测试工具
一.Memtester简单介绍 Memtester主要是捕获内存错误和一直处于很高或者很低的坏位, 其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等. 通过给定测试内存的大小和次数, ...
- SUSE11&12 永久关闭防火墙
SUSE11下:关闭操作为:service SuSEfirewall2_setup stopservice SuSEfirewall2_init stop取消开机启动防火墙:chkconfig SuS ...
- forward(请求转发)和redirect(重定向)的区别
原理: forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原 ...
- focal
focal 美 ['foʊk(ə)l] 英 ['fəʊk(ə)l] adj.中心的:很重要的:焦点的:有焦点的 网络劲浪:在焦点上的:局部
- Graph Coloring I(染色)
Graph Coloring I https://www.nowcoder.com/acm/contest/203/J 题目描述 修修在黑板上画了一些无向连通图,他发现他可以将这些图的结点用两种颜色染 ...
- MySQL中执行sql语句错误 Error Code: 1093. You can't specify target table 'car' for update in FROM clause
MySQL中执行sql语句错误 Error Code: 1093. You can't specify target table 'car' for update in FROM clause 201 ...
- 什么是Shell、Shell脚本
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种 ...