时间:2015-07-10 来源:

Servlet--生命周期 【编程语言】

现在开始正式的进入Servlet的编码整理web前端制作,首当其冲的就是Servlet的生命周期. Servlet的生命周期一共分为5个部分,web前端制作加载程序div前端切图,初始化,div前端切图服务web切图报价,销毁,手机html制作卸载. 1,加载程序(只调用一次):其实也就是实例化,符合w3c标准web容器负责加载Servlet,当容器启动时或者第一次使用这个Servlet的时候,jpg或psd转html容器会负责创建这个Servlet实例web前端制作,但是用户必须通过web.xml配置文件来指定Servlet的位置,web前端制作这个特别要注意承接网页制作,这个位置必须是包名+类名. 那么问题来了?为什么必须要加上包名呢? 很简单:如果不加包名,承接网页制作要是有一个类名一样的类就没法区分了.然后还有就是web容器成功加载这个配置文件后web切图报价,肯定是通过反射来对这个Servlet实例化的,网站div+css所以这里的写位置的时候就必须是包名+类名符合w3c标准,初始化(只调用一次):当一个Servlet被实例化后网页外包接活,容器将调用init()或者init(ServletConfig servletConfig)来初始化这个对象,网页外包接活初始化的目的是为了让这个Servlet对象在处理客户端请求前完成一些初始化的工作web前端制作,比如说建立数据库链接啦,div+css制作读取资源文件信息啦等等承接网页制作,如果初始化失败,承接网页制作则此Servlet将被直接卸载. 问题来了?为什么我前面说容器调用init()或者init(ServletConfig servletConfig)这里有2个方法呢? 很简单:我们在自己编码Servlet的时候要不就是实现Servlet接口web切图报价,要不就是继承httpServlet抽象类,手机html制作在Servlet中使用init()方法来初始化符合w3c标准,在httpServlet中,html切图制作其实是继承于GenericServlet类网页外包接活,处理服务(可调用多次) 当有请求提交时web前端制作,Servlet将调用service()方法来进行处理,web前端制作在service方法中承接网页制作,Servlet通过ServletRequest接收客户的请求,div前端切图也可以利用ServletResponse设置相应信息.处理一次请求web切图报价,返回一次响应,手机html制作调用一次这个方法. 4,销毁(只调用一次) 当web容器关闭或者检测到一个Servlet要从容器中被删除的时候,符合w3c标准会自动调用destroy()方法网页外包接活,卸载(只调用一次) 当一个Servlet销毁后web前端制作,此实例将等待被垃圾收集器回收,web前端制作如果需要再次使用此Servlet,会重新调用init()方法初始化.这里有一点要注意:在正常情况下,承接网页制作Servlet只会初始化一次web切图报价,而处理服务会调用多次,网站div+css销毁也只会调用一次.但是如果一个Servlet长时间不适用的话符合w3c标准,也会被容器自动销毁,符合w3c标准而如果需要再次使用时会重新进行初始化的操作网页外包接活,即在特殊情况下初始化可能会进行多次,网页外包接活销毁也会进行多次.到底什么时候是特殊情况呢? 一会下面再说这个. 具体如下图所示: 下面自己写一个Servlet来研究下Servlet的生命周期: package linkin; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class LinkinServlet implements Servlet { public LinkinServlet() { System.out.println("LinkinServlet..."); } @Override public void destroy() { System.out.println("destroy..."); } @Override public ServletConfig getServletConfig() { return null; } @Override public String getServletInfo() { return null; } @Override public void init(ServletConfig servletConfig) throws ServletException { System.out.println("init..."); } @Override public void service(ServletRequest arg0, IOException { System.out.println("service..."); } } <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>LinkinServlet</servlet-name> <servlet-class>linkin.LinkinServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LinkinServlet</servlet-name> <url-pattern>/LinkinServlet</url-pattern> </servlet-mapping> </web-app> 写完上面的代码承接网页制作,基本就可以比较细致的了解了Servlet的生命周期了,承接网页制作但是这里会不由得引发出3个问题: 1,平时我们自己写代码的时候,手机html制作初始化一个对象实例符合w3c标准,都是去调用他的构造器然后自己new实例出来,html切图制作现在Servlet帮我们做了网页外包接活,我们在使用Servlet的时候就可以直接用这个Servlet了呢.但是这个初始化时机是什么时候呢?上面的代码我们看到是在第一次处理请求的时候Servlet对象被初始化,网页外包接活要是我现在想在启动tomcat的时候就初始化这个Servlet对象可以做到么?其实这种情节很常见的web前端制作,比如说我们要在启动容器的时候读取一些静态文件等等. 解决上面的问题,web前端制作有必要来研究一个web.xml中的一个标签:load-on-startup.

load-on-startup,配置在servlet节点中,div前端切图用来指定Servlet被创建的时机web切图报价,若为负数,手机html制作则在第一次请求时被创建符合w3c标准,若为0或者正数,符合w3c标准则在当前Servlet容器加载时创建实例网页外包接活,数值越小,jpg或psd转html载入的优先级越高web前端制作,越早创建.优先级提倡从1开始,web前端制作1以下的数字承接网页制作,有些容器不理会.负数则被认为是“默认”.如果没有配置,承接网页制作则在第一次请求时才实例化. 2,很明显的我们知道同一个Servlet可以被映射到多个URL上,网站div+css即多个<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个Servlet的注册名.但是要是多次写映射是不是有点土呢?有时候我们要用甚至不想写具体的映射只想写统配符合w3c标准,应该怎么写呢? 一定要注意:在Servlet映射到的URL中也可以使用*通配符,符合w3c标准但是只能有两种固定的格式:一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾,网页外包接活比如“/action/*”.

 

版权声明:本文为博主原创文章web前端制作,关于Servlet的销毁前面也说到了承接网页制作,当容器关闭或者长时间不使用的时候回自动进行销毁,承接网页制作而如果容器配置了动态加载(reloadable="true"),每当重新加载新的内容后,手机html制作实际上Servlet也会销毁.如果观察不到销毁信息符合w3c标准,可以在destroy()方法中加入一个线程的延迟(Thread.sleep(3000))操作用来延迟容器的关闭时间.

点击次数:3971
作者:
web前端行业资讯
Web new NewsList
微软发布WindowsServerBuild17074更新 ,,2018年01月18日凭借一个AI小功能,这款Google应用冲上苹果AppStore榜首 ,,2018年01月18日百度数据可视化实验室正式成立,发布深度学习可视化平台VisualDL ,,2018年01月18日OpenAI开源最新工具包,模型增大10倍只需额外增加20%计算时间 ,,2018年01月18日百度手机输入法8.0正式发布:支持多人语音速记 ,,2018年01月18日CSDN宣布收购TinyMind团队并升级为AI社区 ,,2018年01月18日甲骨文发布补丁修复英特尔芯片漏洞造成的问题 ,,2018年01月18日权威!官方发布CPU熔断和幽灵漏洞防范指引:附补丁下载 ,,2018年01月18日Oracle宣布新的JavaChampions ,,2018年01月18日腾讯加码区块链项目已悄然注册“以太锁”商标 ,,2018年01月18日Fedora28壁纸征集活动现已开幕:将持续至2月13日 ,,2018年01月18日苹果WebKit团队发布Speedometer2.0网页响应测试工具 ,,2018年01月18日百度输入法8.0后天发布:全感官AI输入 ,,2018年01月18日腾讯和乐高合作:共同研发智能玩具、游戏 ,,2018年01月18日HomePod上市日益临近智能音箱市场吸引力越来越大 ,,2018年01月18日3D打印脑组织?科学家正在向这一目标正在前进 ,,2018年01月18日英特尔公布修补漏洞后PC性能数据:8代CPU影响最小 ,,2018年01月18日云存储公司Dropbox秘密提交IPO申请估值超百亿美元 ,,2018年01月18日iPod之父:防手机上瘾无技术难度苹果谷歌应承担责任 ,,2018年01月18日芯片不安全英特尔云客户考虑转用AMD等对手处理器 ,,2018年01月18日2018年Java展望 ,,2018年01月18日区块链有多火?快播流量矿石遭20多万人疯抢 ,,2018年01月18日Intel搞定神经拟态芯片:模拟人类大脑、自主学习 ,,2018年01月18日阿里巴巴发布IoTConnect开放连接协议,盼推动语音互动入口普及 ,,2018年01月18日区块链火了,全球大佬们怎么看? ,,2018年01月18日Facebook正测试新功能主推本地新闻资讯 ,,2018年01月18日在GooglePlay中发现使用Kotlin开发的安卓恶意软件 ,,2018年01月18日VisualStudio201715.6预览版本2,增加新功能 ,,2018年01月18日百度陆奇:AI是5G最好的加速器 ,,2018年01月18日PinterestCEO:不同于谷歌和Facebook,我们走了第三条路 ,,2018年01月18日做一个有主见的女生【编程语言】2014年11月04日接口压测之——put方法1 【研发管理】2015年08月14日VMWare安装kali之后的设置【编程语言】2015年03月26日表情的发送,展示,粘贴与删除 【综合】2015年01月07日HDOJ4687BokeandTsukkomi一般图最大匹配带花树+暴力【综合】2014年11月06日<CC++版>设计模式学习之工厂模式<1>【编程语言】2015年01月04日Androidwiki:01.PackageManager获得清单文件中的所有信息【综合】2015年07月06日利用特殊的二叉树层序重构二叉树 【编程语言】2015年02月11日解密微软失落十年:消极员工排序官僚主义盛行 ,,2016年07月24日关于链接地址为JavaScript:void(0)的问题2016年11月22日WAS7添加“登陆密码认证”方法 【综合】2014年11月10日WPS2012组合公式一键帮你算个税2014年01月28日JS密码强度验证(兼容IE,火狐,谷歌)2014年01月29日(hdustep6.1.7)ConnecttheCities(在有的路已经修建好的情况下,求让n个点连通的最小费用)【架构设计】2015年03月17日php获取本地图片文件并生成xml文件输出具体思路2014年01月29日算法|最大连续子数组 【数据库】2015年04月09日优化Oracle停机时间及数据库恢复2014年01月30日poj2635TheEmbarrassedCryptographer筛素数+高精度除法 【架构设计】2015年08月04日如何制作PPT教程之字体篇2014年01月28日cocos2dxandroid环境报错记录 【编程语言】2015年07月13日【LeetCode-面试算法经典-Java实现】【169-MajorityElement(主元素)】 【移动开发】2015年08月24日Spring3+mybatis(SQLServer)查询分页的实现 【编程语言】2015年07月09日Android后台进程与前台线程间的区别使用 【综合】2015年06月24日向Google学习打造灵动的web体验 2,收藏 ,,2016年06月23日Scala入门到精通——第二十九节Scala数据库编程 【综合】2015年08月17日Android之Service 【移动开发】2014年11月24日【SVN】团队项目出现Theprojectcannotbebuiltuntilbuildpatherrorsareresolved的解决方法与.classpath文件 【Web前端】2015年04月13日渗透理解Animation时间插值Interpolator类 【移动开发】2015年01月07日JBossClassLoadingUseCases(jboss类型加载使用案例)【移动开发】2015年07月08日机器学习及其matlab实现—从基础到实践——HW3【Web前端】2015年09月02日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)