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

HF servlet&jsp 总结—使用JSP

阅读更多
初看HF系列的servlet&jsp前6章主讲的servlet没来得及做总结,今后补上,从“使用jsp”开始,做做总结,分享给大家,同时也复习一遍...

PS:总结得很零碎,但这也是HF的风格

7使用JSP
7.1 JSP->SERVLET
Jsp页面转为servlet的规则:
Html标签会出现在out.write()语句中;
Scriptlet脚本会转为为java语句,就像他们在JSP中一样。
表达式会出现在out.print()语句中,这也是为什么表达式不加分号的原因。

所有的脚本语句和表达式都放在service方法中,说明他们都是局部变量。

要想得到实例变量,应该使用声明<%! %>
在转化为servlet后,他们会出现在service方法之外,作为一个实例变量存在。

在tomcat中,_JspService方式是不允许覆盖

7.2 JSP页面相关
Html注释<!- ->  和jsp注释<%- -%>

在servlet中上下文应用为getServletContext(),在jsp中则为application

7.3 pageContext
使用pageContext可以访问page、request、session、application范围的变量。
pageContext是PageContext类的实例,它提供了如下两个方法来访问page、request、session、application范围的变量。
getAttribute(String name):取得page范围内的name属性。
getAttribute(String name,int scope):取得指定范围内的name属性,其中scope可以是如下4个值:
PageContext.PAGE_SCOPE:对应于page范围。
PageContext.REQUEST_SCOPE:对应于request范围。
PageContext.SESSION_SCOPE:对应于session范围。
PageContext.APPLICATION_SCOPE:对应于application范围。
与getAttribute()方法相对应,PageContext也提供了2个对应的setAttribute()方法,用于将指定变量放入page、request、session、application范围内。
下面的JSP页面示范了使用pageContext来操作page、request、session、application范围内的变量。
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>pageContextTesting</TITLE>
</HEAD>
<BODY>
<%
//使用pageContext设置属性,该属性默认在page范围内
pageContext.setAttribute("page","hello");
//使用request设置属性,该属性默认在request范围内
request.setAttribute("request","hello");
//使用pageContext将属性设置在request范围中
pageContext.setAttribute("request2","hello" 
, PageContext.REQUEST_SCOPE);
//使用session将属性设置在session范围中
session.setAttribute("session","hello");
//使用pageContext将属性设置在session范围中
pageContext.setAttribute("session2","hello" 
, PageContext.SESSION_SCOPE);
//使用application将属性设置在application范围中
application.setAttribute("app","hello");
//使用pageContext将属性设置在application范围中
pageContext.setAttribute("app2","hello" 
, PageContext.APPLICATION_SCOPE);
//下面获取各属性所在的范围:
out.println("page变量所在范围:" + 
pageContext.getAttributesScope("page") + "<br>");
out.println("request变量所在范围:" +
pageContext.getAttributesScope("request") + "<br>");
out.println("request2变量所在范围:"+
pageContext.getAttributesScope("request2") + "<br>");
out.println("session变量所在范围:" +
pageContext.getAttributesScope("session") + "<br>");
out.println("session2变量所在范围:" +
pageContext.getAttributesScope("session2") + "<br>");
out.println("app变量所在范围:" +
pageContext.getAttributesScope("app") + "<br>");
out.println("app2变量所在范围:" + 
pageContext.getAttributesScope("app2") + "<br>");
%>
</BODY>
</HTML>

也可以使用方法getAttribute("app2",PageContext.APPLICATION_SCOPE);

pageContext.findAttribute("app2");
即使不知道作用域也可以查找一个属性,使用findAttribute,它首先在页面上下文中查找属性"app2",若存在则等价于在PageContext上调用getAttribute(String name)一样。
若页面上下文中没有这个属性,就会在其他作用域查找,先从做严格的作用域查起,逐步转向不怎么严格的作用域,即先在请求作用域查找,再查找会话作用域,最后查找应用作用域。最先查找到的就算“赢”,如果在一个作用域中找到指定名字的属性,就不会在其他作用域中查找。


7.3 JSP的生命周期
1.编写jsp并部署到web容器。
2.容器读取web.xml,但对jsp文件不做任何处理,直到第一个请求来到。
3.客户请求该jsp页面。
4.容器尝试将该jsp文件翻译为servlet的java文件。并在这一步会捕获jsp语法错误。
5.容器尝试将这个java文件编译为class文件。并在这一步会java语言语法错误。
6.容器加载class文件。
7.容器实例化servlet,并运行jspInit方法,该servlet准备就绪。
8.容器创建一个新的线程来处理请求,运行_jspService方法。

   一旦servlet得到加载和初始化,请求时只会发生一件事情,那就是创建或分配一个新的线程来运行服务方法。

7.4 jsp隐式对象的java类型
application ----  javax.servlet.ServletContext
out ---- javax.servlet.jsp.JspWriter
request ---- javax.servlet.ServletRequest
response ---- javax.servlet.ServletResponse
session ---- javax.servlet.http.HttpSession
分享到:
评论

相关推荐

    servlet实现身高体重比测试

    - `web09_bmi`可能代表一个Web项目目录,其中包含了Servlet类文件、JSP页面、Web配置文件(如`web.xml`)以及其他相关资源。 - 项目的目录结构通常包括`WEB-INF`目录,其中的`classes`目录存放编译后的Servlet类,...

    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以太网自适应能力,能够在不同网络环境...

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

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

    CR95HF上位机开发源码和使用文档

    CR95HF上位机开发源码和使用文档。 包括CR95HF全协议栈在支持,ISO14443A,ISO14443B,ISO15693,ISO18092。 支持ST25DV产品在快速传输,模式管理。、 支持NDEF格式在NFC,包括类型2A,3,4A,4B,5等。 脚本可用。 包含...

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

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

    HF & VUC Fyn-crx插件

    标题中的“HF & VUC Fyn-crx插件”指的是一个特定的浏览器扩展程序,用于增强HF & VUC Fyn平台的用户体验。...了解以上知识点,用户就能更好地理解和使用HF & VUC Fyn-crx插件,提高在HF & VUC Fyn平台的使用体验。

    Vault Guide to PE & HF Interviews

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

    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。发布日期...

    CR95HF操作命令中文版

    总结来说,CR95HF操作命令中文版涵盖了读卡器的基础操作、高级功能、系统配置、故障排查和安全性等多个方面。理解并熟练掌握这些命令,将有助于开发者更高效地利用CR95HF读卡器进行RFID应用的开发和部署。通过阅读...

    巴鲁夫天线配置手册HF Cobalt CNT 使用手册

    【巴鲁夫天线配置手册HF Cobalt CNT 使用手册】是关于巴鲁夫公司的一款高频天线HF Cobalt CNT的配置与使用指南。该手册涵盖了设备的电源需求、安装环境条件、安装要点以及详细的操作步骤。 首先,HF Cobalt CNT天线...

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

    "HF3FF_D.LIB"文件很可能是一个库文件,包含了HF3FF系列继电器的详细电气参数和封装信息,供电路设计软件(如Altium Designer、Cadence等)使用。设计师可以通过导入此库文件,在电路板布局时选择合适的继电器模型,...

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

    壹 HF 编控软件的安装说明一、HF 编控一体化包括如下硬件和软件 1、内置卡一...HF 编程软件的操作使用说明 HF 线切割数控自动编程软件系统,是一个高智能化的... wenku.baidu.com/link?u... 2012-03-19 - 89%好评 ...

    HF116F-G 说明书

    然后,逆变器将直流电转换为交流电,供应给家庭或电网使用。 继电器在光伏发电系统中起着重要的作用。继电器是一种电子控制器件,它具有控制系统和被控制系统,通常应用于自动控制电路中。它通过控制电路的开闭来...

    HF3FF继电器封装

    HF3FF是一种特定的继电器封装,通常为小型直插式(DIP)封装,具有紧凑的尺寸,适合在空间有限的电路板上使用。这种封装的继电器通常有引脚间距、长度和宽度的具体规格,确保在电路板上焊接时的稳定性和可靠性。 接...

    HF-LPB100模块SPI接口使用文档V1.0_201312111

    了解并掌握这些知识点,对于正确使用HF-LPB100模块进行SPI通信至关重要,能够帮助开发者实现高效、可靠的无线数据传输。在实际应用中,还需要注意电源管理、抗干扰措施以及SPI设备间的兼容性等问题,以确保系统的...

    CR95HF操作命令介绍中文版

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

    IK+Analyzer+2012FF_hf1 分词器全套使用下载

    使用IK Analyzer 2012FF_hf1 需要以下步骤: 1. 下载并解压压缩包。 2. 将相应的jar文件添加到你的Java项目类路径中。 3. 在Solr配置文件中指定IK Analyzer为分析器。 4. 根据需要,自定义词典或调整配置文件。 5. ...

Global site tag (gtag.js) - Google Analytics