Servlet的一些细节(2)
1. Servlet的创建时间
Servlet是不能单独运行,调用它的叫做Servlet引擎,或者叫做web服务器
针对客户端的多长Servlet请求,通常情况下,服务器只会创建一个Servlet实例对象,也就是说Servlet实例对象一旦创建,它就会驻留在内存中,为后续的其他请求服务,直至web容器退出,Servlet实例对象才会销毁。
Servlet对象一旦被创建,就会执行init方法,一旦销毁就会执行destroy方法。可以通过这两个方法观察Servlet对象的生命周期
所以如果编写了一个Servlet类Demo时,在启动服务器的时候,是不会创建Demo这个Servlet对象的,只有在浏览器的URL中访问到http://.../Demo的时候,才会执行init方法并创建这个对象。我们关掉浏览器后,这个对象并不会消失,以后再访问这个地址,还是原来的Servlet对象。
只有我们停掉这个服务器时,才会摧毁这个对象
但是每次访问请求都会调用Servlet的service方法,并且每次请求,Servlet请求都会创建一个HttpServletRequest请求对象和一个HttpServletResponse对象,然后将这两个对象作为参数给service方法,service方法再根据请求方式调用doXXX方法。
HttpServletRequest请求对象和HttpServletResponse对象的生命周期是很短的,比如说新浪的网站每天有几亿个请求,就会有几亿个对象,但是对象在请求结束后立即销毁,所以只要不是同时这么多请求,对服务器内存的压力还不是很大的。
2.Servlet对象也可以是web服务器启动的时候创建,而不是第一次访问的时候
<servlet>
<servlet-name>ServletDemo</servlet-name>
<servlet-class>cn.school.ServletDemo</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
structs框架其实就是一个大的Servlet程序,它就被配置服务器启动时候生成对象。
里面数字大小就确定了启动的顺序,数据越小优先级越高。
3. 缺省Servlet
如果某个Servlet的映射路径仅仅是一个正斜杠,那么这个Servlet就成为当前web应用程序的缺省Servlet
凡是在web,xml文件中找不到匹配的Servlet-mapping元素的URL,他们的访问请求都会交给缺省Servlet处理。
在Java中,所有的请求都会走Servlet。
不管是动态的,静态的,图片,视频还是什么什么的。
比如说我们新建一个1.html静态页面,然后什么也不做,在浏览器中输入http://localhost:8080/T_D623/1.html
就可以找到这个静态页面。
这是因为服务器为我们配置了一个默认Servlet路径
所有服务器配置文件都在C:\tomcat\conf这个文件夹下,有一个web.xml为服务器下的所有程序共享。
下面注册了一个Servlet,启动级别是服务器启动时启动
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
它的注册路径是
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
就是所有找不到正确路径的请求都走这一条路径
当我们请求一个静态页面时,就会通过这条路径请求,去查找项目中有没有对应名称的静态页面,如果没有就会返回

所以呢,如果我们在项目中自定义了一个默认Servlet路由,那么就会取代服务器中的,所以要慎重。
Servlet的一些细节(2)的更多相关文章
- Servlet的一些细节问题
Servlet的细节问题 1.一个已经注册的Servlet可以被多次映射即: <servlet> <!-- servlet的注册名 --> <servlet-name&g ...
- servlet中的细节
Get方法有大小限制:1024个字符.这些信息使用 Query_String头传递,并通过Query_String环境变量访问.Post方法:请求体信息使用FromData头传递.读取所有表单参数:g ...
- Servlet的一些细节(1)
1. Servlet程序必须映射到一个URL地址 由于客户端是通过URL访问web服务器资源,所以Servlet程序必须映射到一个URL地址.这个工作在web.xml文件中使用<servlet ...
- [Java.Web] Servlet 的一些细节
本文来自 传智播客视频PPT 1. 由于客户端是通过 URL 地址访问 web 服务器中的资源,所以 Servlet 程序若想被外界访问,必须把 servlet 程序映射到一个 URL 地址上,这个工 ...
- Servlet的一些细节
由于客户端是通过URL地址访问web服务器的中的资源的,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet& ...
- 2016-2-1 Servlet细节
Servlet的一些细节(韩顺平老师视频讲解)(1)由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序想要被外界访问,必须把servlet程序映射到一个URL地址上.这个工作在 ...
- JavaWeb -- Servlet运行过程 和 细节
Servlet的运行过程 lServlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后: ①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象.如果是,则 ...
- Servlet映射细节
Servlet的映射细节: 1):一个Servlet程序(Web组件),可以配置多个<url-pattern>,表示一个Servlet有多个资源名称. <servlet-mappin ...
- java web学习总结(五) -------------------servlet开发(一)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
随机推荐
- 让ie6/7/8兼容css3的圆角阴影等特殊效果的方法 PIE1.0.0及placeholder在这些IE下生效的方法
PIE地址:http://css3pie.com/ 使用方法1: #login,#AnnouncementBox { border:3px solid #fff; -webkit-border-r ...
- 服务器上搭建spark开发环境
1.安装相应的软件 (1)安装jdk 下载地址:http://www.Oracle.com/technetwork/java/javase/downloads/index.html (2)安装scal ...
- poj 1273.PIG (最大流)
网络流 关键是建图,思路在代码里 /* 最大流SAP 邻接表 思路:基本源于FF方法,给每个顶点设定层次标号,和允许弧. 优化: 1.当前弧优化(重要). 1.每找到以条增广路回退到断点(常数优化). ...
- 【SPOJ839】最优标号
[题目描述] 给你一张无向图G(V,E).每个顶点都有一个标号,它是一个[0,2^31-1]内的整数.不同的顶点可能会有相同的标号. 对每条边(u,v),我们定义其费用cost(u,v)为u的标号与v ...
- 关于this
一:全局环境中的this指的是window对象 二:作为对象的方法调用 当函数作为对象的方法被调用时,this指向该对象 例子: 三:作为普通方法调用 当函数不作为对象的属性被调用,而是作为普通函数函 ...
- 如何为jquery添加方法
以下内容引自一位网友的帖子: jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery ...
- MongoDB 与传统关系型数据库mysql比较
与关系型数据库相比,MongoDB的优点: 转载自 http://blog.sina.com.cn/s/blog_966e430001019s8v.html①弱一致性(最终一致),更能保证用户的访问 ...
- IIC 概述之1
概述: I²C 是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee" , 它是一 ...
- BZOJ 1007 水平可见直线
Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的. 例如,对于直线: ...
- Unity 网络斗地主 判断牌的类型
Unity 网络斗地主 牌的类型 web版本演示地址: http://www.dreamhome666.com/Desktop.html 在上个版本中,下面的角色在牌的后面,可以将角色做为一个P ...