符号 说明
+ 加
减
* 乘
/或 div 除
%或 mod 求余
表 13。3。 比较运算
符号 说明
==或 eq 相等(equals)
!=或 ne 不相等(not equals)
或 gt 大于(greater than )
=或 ge 大于等于(greater than or equals )
表 13。4。 逻辑运算
符号 说明
121 / 148
…………………………………………………………Page 122……………………………………………………………
符号 说明
&& 或 and 逻辑和
||或 or 逻辑或
!或 not 取反
表 13。5。 特殊运算
符号 说明
empty 是否为 null 或空字符串
? : 三元运算符
下面上所有运算符的显示结果,顺便说一下如果想在 jsp 中显示{name}而不让
jsp把它当作 el计算出来,可以写成{name},这样最后显示的结果就是{name}
了。
122 / 148
…………………………………………………………Page 123……………………………………………………………
第 14 章 生命周期
注意
讲一下 servlet 的生命周期与运行时的线程模型,对了解 servlet 的运行原理有
所帮助,这样才能避免一些有冲突的设计。
如果你不满足以下任一条件,请继续阅读,否则请跳过此后的部分,进入下一章:
第 15 章 分页。
1。 了解 servlet 的生命周期。
2。 了解 servlet 运行时的线程模型,及设计程序时需要注意的部分。
14。1。 生命周期
我们之前使用的都是 javax。servlet。http。HttpServlet,这个类实现了
javax。servlet。Servlet 接口,而这个接口中定义的三个方法是所有 servlet 都
必须实现的。
package javax。servlet;
public interface Servlet {
void init(ServletConfig config);
void service(ServletRequest request; ServletResponse response);
void destroy();
}
123 / 148
…………………………………………………………Page 124……………………………………………………………
如图所示,tomcat 之类的服务器首先根据 web。xml 中的定义实例化 servlet,然
后调用它的 init()方法进行初始化,init()方法的 ServletConfig 参数是服务
器传递进 servlet 的,其中包含web。xml 配置的初始化信息和 ServletContext
对象等共享内容。
初始化后的 servlet 实例便进入等待请求的状态,当有与 servlet…mapping 匹配
的请求进入时,服务器会调用 servlet 实例的 service 方法,传入
ServletRequest 与 ServletResponse 两个参数等待 servlet 处理完毕。
注意一点,对于每个 web 应用,内存中只存在一个 servlet 实例,所有请求都是
调用这个 servlet 实例,所以我们说 servlet 不是线程安全的,所有操作都要限
制在 service()方法中进行,不要在servlet 中定义类变量。(doGet()和doPost()
是 HttpServlet 覆盖 service()方法后分支出来的辅助方法,实际上服务器调用
的还是 service()。)
当web 应用卸载时,服务器会调用每个已经初始化的 servlet 的 destroy(),然
后销毁这些 servlet 实例,如果你需要在 servlet 销毁时释放什么资源的话,可
以写在destory()方法中。
那么 servlet 是在什么时候进行初始化的呢?我们可以通过 web。xml 中的
load…on…startup 标签。
TestServlet
anni。TestServlet
1
124 / 148
…………………………………………………………Page 125……………………………………………………………
load…on…startup 的值是一个整数,当它大于等于零的时候服务器会在web 发布
的时候初始化servlet。当它小于零或者我们没有设置load…on…startup 的时候,
服务器会在用户第一次访问 servlet 的时候才去初始化 servlet。
或许你对 load…on…startup 为什么是一个整数存有疑问,为什么不是 true 和
false 呢?这是因为如果我们在web。xml 中设置了多个 servlet 的时候,可以使
用 load…on…startup 来指定 servlet 的加载顺序,服务器会根据
load…on…startup 的大小依次对 servlet 进行初始化。不过即使我们将
load…on…startup 设置重复也不会出现异常,服务器会自己决定初始化顺序。
回头看看 javax。servlet。Filter 中也有 init()和 destroy()方法,它的声明周
期与 servlet 基本一致,服务器使用 init()对 Filter 初始化,销毁 Filter 的
时候调用 destroy()方法,只是过滤器就不在有 load…on…startup 设置了,它总
是会在服务器启动的时候进行初始化,然后按照 web。xml 定义的顺序依次执行。
14。2。 线程模型
我们做一个试验,以此来证明某些编写 servlet 的方法是绝对错误的。
第一步,我们打开浏览器,浏览 14…02 的 index。jsp 页面,输入“叮咚”。
第二步,我们再打开一个 14…02/index。jsp 页面,输入“lingirl”。
第三步,点击第一个页面的提交按钮,然后在 10 秒之内点击另一个页面的提交
按钮,等两个页面都提交成功后,我们会看到如下页面。
url 上有乱码这个就是提交“叮咚”的页面,会惊讶吧?本来这时应该显示“叮
咚”的。
125 / 148
…………………………………………………………Page 126……………………………………………………………
这个页面对应提交“lingirl”的页面,它似乎是显示正常的。
到底是哪里出错了,为什么第一个页面提交了数据,却得到第二个页面提交的结
果,首先让我们看一下 TestServlet 的代码。
package anni;
import java。io。IOException;
import javax。servlet。ServletException;
import javax。servlet。http。HttpServlet;
import javax。servlet。http。HttpServletRequ
小说推荐
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 最新章:第31章
- asp基础实用教程(DOC格式)
- 目 录一、关于ASP二、ASP的新功能三、创建ASP页四、使用脚本语言五、使用变量和常量六、使用集合七、ASP内建对象八、向浏览器发送内容九、包含文件十、访问数据库十一、调试ASP脚本十二、维护ASP应用程序的安全一、关于ASP Active Server Pages(ASP)是服务器端脚本编写环境
- 最新章:第17章
- asp基础入门篇(DOC格式)
- ASP入门与实例-IIS的安装与配置1、运行环境与软件要求Windows 2000 以上(不包括Windows XP Home版)IIS 4.0 以上Microsoft Access 2000Dreamweaver MX2、IIS的安装与配置a.安装IIS若操作系统中还未安装IIS服务器,可打开"控
- 最新章:第23章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 最新章:第28章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- Word2003使用技巧大全(DOC格式)
- Word使用技巧(二)表格使用大全更新时间:2009-11-16 19:32:15 本文共阅读了257次 作者:xushezheng 文章来源:电教组字体大小:大中小一、快速插入表格 拖动“插入表格”能插入的最大表格跟该图标位置、显示分辨率有关。如使用800×600分辨率时最大为18行×28列 二、
- 最新章:第1章
- Excel word ppt office使用技巧大全(DOC格式)
- -Page 1-Excel_word_ppt_使用技巧大全(完全版)Excelwordppt使用技巧大全(2011新版本)I-Page 2-Excel_word_ppt_使用技巧大全(完全版
- 最新章:第338章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 最新章:第37章