`
mazhiyuan
  • 浏览: 64277 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HF servlet&jsp 前6章要点总结

阅读更多

今天有时间把前6章主要讲servlet的内容坐下总结。好了,开工:

 

1.谁来负责这些任务

 

任务 web服务器 容器 servlet
创建请求和响应对象   在开始线程之前创造  
调用service()方法  

service()方法调用

 

 
开始一个新线程来处理请求   开始一个servlet进程  
把响应对象转换为一个HTTP响应   容器由响应对象中的数据生成HTTP响应流  
了解HTTP 通过HTTP与客户浏览器对话    
把html增加到响应对象     这是提供给客户的动态内容
有响应对象的一个引用   容器把它交给servlet 用它打印响应
在部署描述文件中查找URL   找到对应请求的适当servlet  
删除请求响应对象   servlet一旦结束就删除请求和响应对象  
协调生成动态内容 知道如何转发到容器 知道要调用谁  
管理生命周期   调用服务器方法  
名字和部署描述文件中的<servlet-class>元素匹配     任何公共类

 

 

2.servlet生命周期的3大重要时刻

 

 

 

  

 

  何时调用 作用 是否覆盖
init servlet实例被创建之后,并在servlet能为客户请求提供服务之前 使你在servlet处理客户请求之前有机会对其初始化 可以
service 当第一个请求来临时,容器会开始一个新线程 这个方法查看请求,确定HTTP方法,并调用 不可以
doGet or doPost service根据请求的HTTP方法决定 从这里开始你的代码 至少要覆盖一个

 

3.HttpServletResponse要点

最常使用的是setContentType()和getWriter()。

利用getWriter()方法可以完成字符I/O,向流写入HTML。

还可以使用响应来设置首部,发送错误,以及增加cookie。

请求重定向和请求分派是两码事。请求分派是在服务器端发生的,而重定向在客户端进行。

 

4.servlet初始化参数和上下文参数

 

上下文参数 servlet参数
部署描述文件

不在servlet中

<web-app>

<context-param>

<param-name></param-name>

<param-value></param-value>

</context-param>

</web-app>

在servlet中

<servlet>

<servlet-name></servlet-name>

<servlet-class></servlet-class>

<init-param>

</init-param>

</servlet>

servlet代码
getServletContext().getInitParameter("foo") getServletConfig().getInitParameter()

 

 

5.URL重写

在写至响应的HTML中,URL重写把会话ID增加到其中所有的URL的最后。

如果客户不接受cookie,URL重写会自动发生,但是必须显式的对所有URL编码。

要编码一个URL,需要调用response.encodeURL(aString).

  out.println("<a href =\""+response.encodeURL("/BeerTest.do")+"\">Click Me</a>");

 没有办法对静态页面完成自动URL重写,所以,如果你依赖会话,就必须使用动态页面。

 

6.关键的HttpSession方法

 

  做什么 怎么用
getCreationTime 返回第一次创建会话的时间 得出这个会话有多老,以便限制会话的寿命
getLastAccessdTime 返回容器最后一次有此会话ID的请求时间  得出客户最后一次访问这个会话的时间,得出客户是否已经离开很长时间了
setMaxInactiveinterval  对于此会话,指定客户请求的最大间隔时间  用于撤销会话,并可以减少服务器中无用会话的数量
getMaxInactiveinterval  对应此会话,返回客户请求的最大间隔时间  
invalidate  结束会话  

 

7.8个监听者

 

场景 监听者接口 事件类型
你想知道一个web应用上下文中是否增加、删除或替换了一个属性

ServletContextAttributeListener

attributeAdded

attributeRemoved

attributeReplaced

ServletContextAttributeEvent
你想知道有多少个并发用户

HttpSessionListener

sessionCreated

sessionDestroyed

HttpSessionEvent
每次请求到来时记录日志

ServletRequestListener

requestInitialized

requestDestroyed

ServletRequestEvent
你想知道什么时候增加、删除和替换一个请求属性

ServletRequestAttributeListener

attributeAdded

attributeRemoved

attributeReplaced

ServletRequestAttributeEvent
你有一个属性类,并想把它绑定到一个会话或从会话删除时得到通知

HttpSessionBinding

valuedBound

valueUnbound

HttpSessionBindingEvent
你想知道什么时候增加、删除或替换一个会话属性

HttpSessionBinding

attributeAdded

attributeRemoved

attributeReplaced

HttpSessionBindingEvent
你想知道是否创建或插销了一个上下文

ServletContextListener

contextInitialized

contextDestroyed

ServletContextEvent
你有一个绑定到会话的属性类,当它迁移到另一个jvm时得到通知

HttpSessionListener

sessionDidActivate

sessionWillPassivate

HttpSessionEvent

 

8.属性作用域

  可访问性 作用域 适用于
上下文--非线性安全 web应用的所有部分 所部署的生命周期 整个应用共享的资源
会话--非线性安全 访问这个特定会话的所有servle和jsp 会话的生命周期 与客户会话有关的资源和数据,比如购物车
请求--线性安全 应用中能直接访问请求的所有部分 请求的生命周期 将模型信息传递到视图
分享到:
评论

相关推荐

    servlet实现身高体重比测试

    Servlet是Java Web开发中的一个重要组件,它主要用于扩展服务器的功能,处理来自客户端(通常是浏览器)的请求并返回响应。在这个“servlet实现身高体重比测试”的项目中,我们将深入理解Servlet的生命周期、EL...

    HF之HTML&css

    在描述中的"XHTML第一到十四章习题"部分,你将深入理解如何使用CSS来美化和增强HTML页面的用户体验。 XHTML结合了HTML的易读性与XML的严谨性,要求标签必须闭合,使得文档结构更加规范。例如,` `标签在HTML中...

    HF9624用户手册V1.0(20190626).pdf_hf_HF-9624EU_hf9624说明书_HF9624_串口服务器

    HF9624串口服务器是一款专为串口设备联网设计的强大硬件,它提供了一整套功能完善的解决方案,使得串口设备能够轻松接入无线或有线网络。此设备支持Wi-Fi连接,同时具备10/100M以太网自适应能力,能够在不同网络环境...

    Vault Guide to PE & HF Interviews

    《Vault Guide to PE & HF Interviews》是一本专为求职者准备的指南,主要涵盖了私募股权(Private Equity, PE)和对冲基金(Hedge Fund, HF)行业的面试准备。这本书由Vault.com出版,并且根据Colin H. (hjiang4@u....

    ANSYS HF&SI产品新功能介绍.pdf

    ANSYS的HF&SI产品是电磁仿真领域的旗舰级解决方案,主要针对高频和信号完整性问题。在R17版本中,该产品引入了一系列的新功能,旨在提高设计效率、精确度和自动化程度,尤其对于电机高效率设计、电子散热、物联网、...

    HF3FF与HF3FD系列 5脚 单刀双掷继电器封装及其应用说明-HF3FF_D.rar

    HF3FF与HF3FD系列继电器是电子产品设计中常用的一种元器件,尤其在自动控制、信号切换等领域有着广泛的应用。这两个系列的继电器都属于5脚单刀双掷(SPDT)类型,这意味着它们拥有一个输入线圈和两个可切换的输出...

    PW20_PW21_HF2211_HF2221_HF6208_HF9610_HF5122_1.40.5_20200426.zip

    标题 "PW20_PW21_HF2211_HF2221_HF6208_HF9610_HF5122_1.40.5_20200426.zip" 提供的是一个固件更新的压缩包文件,其中包含了多个汉枫(HF)设备的固件。这个特定的更新针对的是HF2211型号,版本号为1.40.5。发布日期...

    备案资料 HF_VC6sword.exe

    总结一下,HF_VC6sword.exe可能是一个为Visual C++ 6.0用户设计的工具,包含源代码,能够帮助开发者进行某种形式的编程辅助工作。为了深入了解这个工具的具体功能和用法,最佳方式是参考提供的博文链接。如果你是C++...

    HF线切割编控一体化系统|线切割编程|线切割编程教程--琛扬数控

    百度为您找到相关结果约758个HF线切割编控一体化系统|线切割编程|线切割编程教程--琛扬数控在编程中,HF系统均采用双精度计算;HF系统所生成的加工代码均采用绝对式的G代码,其数值精确保留到小数点第四位;HF系统在加工...

    CR95HF操作命令介绍中文版

    ### CR95HF操作命令详解 #### 一、概述 CR95HF是一款高性能的射频识别(RFID)读写器芯片,广泛应用于各种近距离无线通讯(NFC)及RFID场景。本文将详细介绍CR95HF的部分核心操作命令及其功能,以便开发者能够更好地...

    应用密码学des

    &he0,&he2,&he4,&he6,&he8,&hea,&hec,&hee,&hf0,&hf2,&hf4,&hf6,&hf8,&hfa,&hfc,&hfe, _ &h1b,&h19,&h1f,&h1d,&h13,&h11,&h17,&h15,&h0b,&h09,&h0f,&h0d,&h03,&h01,&h07,&h05, _ &h3b,&h39,&h3f,&h3d,&h33,&h31,&...

    HF9.0线切割控制软件.rar

    《HF9.0线切割控制软件:智能化与高效加工的典范》 HF9.0线切割控制软件是一款专为线切割工艺设计的先进控制程序,它集成了多种智能化功能,旨在提升加工效率和精度,同时确保操作简便。该软件的核心亮点在于其停电...

    HF & VUC Fyn-crx插件

    标题中的“HF & VUC Fyn-crx插件”指的是一个特定的浏览器扩展程序,用于增强HF & VUC Fyn平台的用户体验。HF & VUC Fyn可能是一个丹麦语的在线服务或者应用,专注于提供某种特定的功能或内容,如教育、信息传播或是...

    HF3FF继电器封装

    本篇文章将深入探讨HF3FF继电器的AD封装、JQC-HF3F-005型号及其在Altium Designer中的应用。 首先,让我们了解一下HF3FF继电器的封装。封装是指电子元件在电路板上的物理形状和尺寸,它决定了元件如何在PCB(印制...

    霍尼韦尔二维码扫描枪HF500使用手册

    下面将根据手册中的主要内容,总结出关于HF500的详细知识点。 首先,HF500扫描器的连接方式包括USB和RS232两种。在连接扫描器之前,需要关闭计算机电源,待扫描器完全连接后,再打开计算机电源。这样做的目的是为了...

    hf线切割v7.03下载 703.EXE

    hf线切割v7.03下载 703.EXE

Global site tag (gtag.js) - Google Analytics