- 浏览: 62669 次
- 性别:
- 来自: 北京
最新评论
-
wucaifang819787:
你好!麻烦问下不知道哪个图片行不行的:http://dl.it ...
struts2源码浅析(四) -
ChenXzh:
高手,佩服得五体投地
关于struts2报There is no Action mapped for namespace / and action name xxx_xxx
初看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范围内的变量。
也可以使用方法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
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
发表评论
-
JAVA多线程-厕所问题
2012-11-22 11:55 1930在http://my.oschina.net/xpbug/bl ... -
第八章 最大自序列和
2012-11-01 20:29 833第八章的问题是常见的---最大自序列和 的问题 书中提 ... -
第二章 旋转字符串的思考
2012-10-26 16:09 845编程珠玑第二章旋转字符串,abcdefg向左旋转3位,变为de ... -
Mongdb的upsert出现E11000 duplicate key errors的错误分析
2012-10-25 17:36 9153昨日上线的系统,今天查日志时发现有不少E11000 dupli ... -
开源的Mongodb java client -- mango发布
2012-07-20 21:53 1852Mango ---- 一个非常简单的操作mongodb的 ... -
浅出Apache Cxf
2012-03-05 20:14 0由于业务需要,开放了系统的 Web Se ... -
struts2源码浅析(四)
2011-10-19 17:15 1512接上一篇讲了filter后,现在request到了action ... -
struts2源码浅析(三)
2011-10-19 16:50 1568接上篇http://mazhiyuan.iteye.com/b ... -
struts2源码浅析(二)
2011-10-19 16:34 2226接上一篇http://mazhiyuan.iteye.com/ ... -
struts2源码浅析(一)
2011-10-19 16:18 17271. Struts2架构图 请求首先通过Filter ... -
struts2.1权威指南-笔记
2010-12-19 22:36 10951.struts 1.x 和 struts 2.x的 ... -
Hibernate学习总结4---对象状态
2010-12-10 16:14 948session 的几个主要方法: 1,save方法和persi ... -
Hibernate学习总结3 --配置文件
2010-12-10 16:10 938如果不希望使用默认的hibernate.cfg.xml 文件作 ... -
Hibernate 学习总结一
2010-12-10 14:54 862引入: 模型不匹配(阻 ... -
HF servlet&jsp 前6章要点总结
2010-11-21 11:58 881今天有时间把前6章主要讲servlet的内容坐下总结。好了,开 ... -
jquery源码分析之属性篇
2010-11-20 20:09 1914jquery提供了一些快捷函 ... -
HF servelt&jsp 定制标记开发 要点总结
2010-11-13 11:41 13061.标记文件使用一个页 ... -
bean相关标准动作总结+复习
2010-11-07 23:22 7561.<jsp:useBean>动作会定义一个变量, ... -
HF servlet&jsp ---include 指令和动作元素
2010-11-07 23:02 8101.include的2种方式 include多用于网站中可重用 ... -
HF servlet&jsp 总结—无脚本的JSP
2010-11-04 18:26 7948无脚本的JSP 8.1在JSP页面使用动作元素 <js ...
相关推荐
通过学习该程序可以掌握servlet的执行过程,掌握el表达式的用法
ANSYS HF&SI产品新功能介绍.pdf
佳能LEGRIA HF20HF200摄像机的使用说明书,是比较详细的。
head-first-HTML与css、XHTML第一到十四章习题
霍尼韦尔二维码扫描枪HF500使用手册,中文版霍尼韦尔二维码扫描枪HF500使用手册
HF9624串口服务器是串口设备联网功能的完整解决方案,这个功能强大的产品支持Wi-Fi或者10/100M以太网自适应,支持完整的TCP/IP协议栈,并且支持多种数据加密方式,确保数据保密性。
IBM x3650 M3 HF安装使用 中文文档
Vault Guide to PE & HF Interviews
CR95HF上位机开发源码和使用文档。 包括CR95HF全协议栈在支持,ISO14443A,ISO14443B,ISO15693,ISO18092。 支持ST25DV产品在快速传输,模式管理。、 支持NDEF格式在NFC,包括类型2A,3,4A,4B,5等。 脚本可用。 包含...
语言:dansk hf&vuc fyn菜单 - 围绕hf&vuc fyn播出易于导航。 使其易于绕过HF&Vuc Fyn。
汉枫设备升级固件,包含HF2211,版本为1.40.5;更新时间:2020-04-26 15:22:12
Midea美的KFR-51LW_N8HF3家用空调套机使用安装说明书用户手册图解图示pdf电子版下载
HF50-R HF50-RA医用诊断X射线机说明书
&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,&...
CR95HF操作命令介绍中文版介绍了大部分的操作指令,对CR95HF看开发有一定的帮助
壹 HF 编控软件的安装说明一、HF 编控一体化包括如下硬件和软件 1、内置卡一...HF 编程软件的操作使用说明 HF 线切割数控自动编程软件系统,是一个高智能化的... wenku.baidu.com/link?u... 2012-03-19 - 89%好评 ...
HF3FF与HF3FD系列 5脚 单刀双掷继电器封装及其应用说明-HF3FF_D.rar
巴鲁夫天线配置手册 HF Cobalt CNT 使用手册
Midea美的KFR-35GW_N8HF3家用空调套机使用安装说明书用户手册图解图示pdf电子版下载
hf_hf_数据库创建及Demo.rar