JSP指令元素简介
指令元素(Directives Elements)
指令主要用来提供整个JSP网页相关的信息,并且用来设定JSP页面的相关属性。
一、page指令
功能:设定整个JSP网页的属性和相关功能。用于对jsp文件中的全局属性进行设置
语法:< %@ page attribute1="value1" attribute2="value2" %>
标签元素:< jsp:directive.page attribute1="value1" attribute2="value2" />
page指令元素的属性
language="language"指定JSP Container要用什么语言来编译JSP网页。目前只可以使用Java语言,不过不排除增加其它语言。默认值为Java。
extends="className"定义此JSP页面产生的Servlet是继承自哪个父类。必须为实现HttpJspPage接口的类。JSP规范对不完全理解其隐意的情况下使用此属性提出警告。
import="importList"定义此JSP页面可以使用哪些Java API。用逗号分隔列出一个或多个全质类名。此列表用于在生成的java servlet中创建相应的导入语句。进行选择的类文件有如下几种:(1)系统环境变量中所指定目录下的类文件;(2)tomcat容器默认tomcat\common\lib目录下的零散类文件或者打包后的jar 文件;(3)建立的web模块所在web-inf\classes目录下的类文件以及web-inf\lib 目录下的jar文件。
以下包是自动包含的,不必被指出:
https://www.wendangku.net/doc/7f14358001.html,ng.*;java.servlet.*;java.servlet.jsp.*;java.servlet.htt.*
session="true|false"用来共享信息的有效性,即指明JSP页面是否需要一个HTTP会话,如果为true,那么产生的servlet将包含创建一个HTTP会话(或访问一个HTTP会话)的代码,缺省为true。例如:某些网页有会员用户的,会员登录后会记忆该用户在推出前处于登录状态。
buffer="none|size in kb"指定输出流缓存的大小。有效值是nkb或没有。缺省为8kb。
authflush="true|false: 决定输出流的缓冲区是否要自动清除。当值为true时缓存满时将被自动刷新,当值为false时,缓冲区满会抛出溢出异常。缺省值为true。isThreadSafe="true"此JSP页面能处理来自多个线程的同步请求,此值为true,否则为false,生成的servlet表明它实现了SingleThreadMode接口。SingleThreadMode已经声明不赞成使用(deprecate)
info="text"表示此JSP页面的相关信息,由getServletInfo()方法返回的。isErrorPage="true|false"设置该页面是否作为其他页面的错误处理,即如果此
页面被用作处理异常错误的页面,则为true。在这种情况下,页面可被指定为另一页面page指令元素中errorPage属性的取值。指定此属性为true将使exception 隐含变量对此页面可用。缺省值为false。
errorPage="error_url"表示如果发生异常错误,网页会被重新指向一个URL
页面。错误页面必须在其page指令元素中指定isErrorPage="true" contentType="ctinfo"表示将在生成servlet中使用的MIME类型和可选字符解码。
pageEncoding="ctinfo"表示JSP页面的编码方式。
isELIgnored="true|false"表示是否在此JSP网页中执行或忽略EL表达式。如果为true时JSP Container将忽略EL表达式。
二、include指令
功能:在JSP编译时插入包含一个文件。包含的过程是静态的,包含的文件可以是JSP、HTML、文本或是Java程序。在jsp页面中使用该指令可引用外部文件语法:< %@ include file="relativeURLspec" %>
标签元素:< jsp:directive.include file="relativeURLspec" />
注意:include指令元素和行为元素主要有两个方面的不同点。
1.include指令是静态包含,执行时间是在编译阶段执行,引入的内容为静态文要,在编译成servlet时就和包含者融合到一起。所以file不能是一个变量,也不能在file后接任何参数。
2.include行为是动态包含,执行时间是在请求阶段执行,引入的内容在执行页面时被请求时动态生成再包含到页面中。
三、taglib指令
功能:使用标签库定义新的自定义标签,在JSP页面中启用定制行为。用于声明用户自定义的新标签
语法:< %@ taglib uri="tabLibraryURI" prefix"tagPrefix" %>
标签元素:< jsp:directive.taglib uri="tabLibraryURI" prefix"tagPrefix" />
page指令元素的属性
uri="tagLibraryURI" 标签库描述器的URI,主要是说是tagLibrary的存放位置。prefix="tagPrefix" 用于标识在页面后面部分使用定制标签的唯一前缀。
填空题 1.W3C是指___万维网联盟_______。 2.Internet采用的通信协议是___TCP/IP___。 3.当今比较流行的技术研发模式是__C/S__和__B/S__的体系结构来实现的。 4.Web应用中的每一次信息交换都要涉及到__服务器_和_客户端__两个层面。 5.HTML文档的开头和结束元素为_______。 6.表格定义中使用的子标记
伪指令的使用与心得 1 伪指令的定义 所谓指令(instruction),针对汇编程序而言,就是将CPU直接识别的指令——二进制指令通过查表的方式转换为asmmebly指令而方便程序人员来编制程序,二进制指令就是我们所常说的机器指令。这个转换过程是编译器的工作,不用程序员来干涉。汇编语言指令的形式是以助记符的形式出现的, 所以比较容易理解和记忆。用汇编指令编制的汇编语言源程序, 可长可短, 这是由程序员根据系统的要求, 或是根据程序的难易程序决定的。 单片机与其它计算机一样, 在汇编源程序时需要向汇编程序提供某些必要的信息, 诸如源程序的目的程序从存储器的哪一个单元开始装人? 源程序是否结束? 程序中所用的数据存放在什么地址? 某一个标号的地址是哪里? 某一个可位寻址的代名字是什么? 等等。这些信息要和源程序一起出现, 成为源程序的一部分, 这一类信息也可以指令的形式出现, 汇编语言把它们称为伪指令。所以伪指令是一些特殊的符号集合, 它们不是一个单片机系统指令集中的指令(在指令集中找不到)。 我们可以通过以上的过程描述发现,通过以上从二进制到汇编指令的转换过程发现,这方便了程序人员进行程序的编制。但是,用汇编程序代码和高级语言的代码进行比较,汇编程序还是很复杂。比如说,一个简单比较过程,需要使用CMP、JMP、JNZ、JZ等一系列的指令来实现,不仅复杂而且容易出错,很大的影响了效率。正是因为这个方面的原因,MASM 就出现了.if.endif.elseif等伪指令,这些伪指令为我们在汇编程序中使用和高级语言十分接近的的控制方式来进行比较、循环等结构控制。至于,这些伪指令到真正的指令之间的转换工作,交给汇编器来完成就好了。总结起来,伪指令最终面对的是CPU指令的指令。 伪指令又称汇编程序控制译码指令。“伪”字体现在汇编时伪指令不产生机器指令代码,不影响程序的执行, 仅产生供汇编用的某些命令, 在汇编时执行某些特殊操作。但伪指令使用的错误将直接使源程序无法汇编和产生语法错误及目的地址找不到等问题。所以正确理解单片机中的伪指令对于学习好、应用好单片机是十分重要的。表1列出了指令与伪指令的区别。 表1 指令与伪指令的区别
第二章——JSP脚本元素和标记 一、教学内容 1.JSP页面的基本结构 2.变量和方法的声明 3.Java程序片 4.表达式 5.JSP中的注释 6.JSP指令标记 7.JSP动作标记 二、教学目标 1.理解JSP页面的基本结构; 2.掌握JSP变量和方法的声明方法;理解Java程序片及其编写;会用Java表达式与JSP注释; 3.熟悉JSP指令标记与JSP动作标记; 4.初步掌握JSP编程方法。 三、教学重点及难点 1.重点:JSP页面构成;变量与方法声明;Java程序片;Java表达式。 2.难点:JSP指令与动作标记。 四、教学方式与方法 演示讲解法,任务驱动法,案例教学法,问题探究法,与多媒体教学演示相结合 五、实施教学 第一部分:新授课 一JSP页面的基本结构 1.构成JSP页面的五种元素:普通的HTML标记,JSP标记,变量和方法的声明,Java程序片,Java表达式 ?JSP页面程序是在传统的静态页面程序中加入用Java描写的动态页面处理部分。 例1:制作JSP页面example2_1.jsp,显示内容如图1所示。 分析: (1)创建JSP页面:记事本、DREAMWEAVER (2)编辑JSP页面:Date对象的创建和当前日期的获取;和的计算; (3)保存JSP页面:文件类型、文件名(不区分大小写) (4)运行JSP页面:WEB服务器 二JSP脚本元素 1.什么是JSP的脚本元素? 用来在JSP中包含脚本代码,以<%开始并以%>结束,通常是Java代码,它允许声明变量和方法,包含任意脚本代码和对表达式的求值。 2.JSP中的脚本元素有哪些? 注释、声明、表达式和程序代码段。 3.变量和方法的声明:声明是用来声明在JSP网页程序中将会用到的变量和方法。在JSP中使用这些变量和方法前,必须事先声明。声明语句必须符合指定脚本语言(Java)的语法规范。 语法格式如下: <%!Java的变量声明语句
单片机习题参考答案 第1章概述习题参考答案 1.嵌入式系统的基本含义是什么?为什么说单片机是典型的嵌入式系统? 答:即MCU的含义是:在一块芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM 等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。大部分嵌入式系统以MCU为核心进行设计。MCU从体系结构到指令系统都是按照嵌入式系统的应用特点专门设计的,它能很好地满足应用系统的嵌入、面向测控对象、现场可靠运行等方面的要求。因此以MCU为核心的系统是应用最广的嵌入式系统。 简述嵌入式系统的特点以及应用领域。 答:嵌入式系统属于计算机系统,但不单独以通用计算机的面目出现;嵌入式系统开发需要专用工具和特殊方法;使用MCU设计嵌入式系统,数据与程序空间采用不同存储介质;开发嵌入式系统涉及软件、硬件及应用领域的知识;嵌入式系统的其他特点,比如紧张的资源,较高稳定性要求,低功耗,低成本等。一般用于工业控制,智能家电,日常电子等领域。 3.比较MCU与CPU的区别与联系。 答:CPU是一个单独的PC处理器。而MCU,则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。所以可以这么说,MCU 是一个包含微处理器的嵌入式系统,而CPU紧紧是一个处理器而已。 4.举例说明嵌入式系统在日常生活中的应用。 答:日常数码产品:手机,MP3,U盘,相机等。 日常工业类:冰箱,空调,微波炉,汽车等。 5.C语言的那些特性使得它成为嵌入式系统中使用频率最高的高级语言。 答:相比底端汇编,更简单易学;与高级语言如(C++,C#,java等)相比,执行效率高,编译后的编码体积小,而且支持好的编译器还支持嵌入汇编代码;对位的操纵能力很强。6.阅读光盘中【第01章(概述)阅读资料】中的“嵌入式C语言工程简明规范”,用一页纸给出嵌入式C语言工程简明规范的要点。 答:此规范主要针对单片机编程语言和08编译器而言,包括命名、注释、编码规范性等内容。建议在一个工程或者一个项目中尽量遵循相同的代码规范,而不是说你只能拥有一个代码规范。 (1)命名规则:命名清晰明了,有明确含义,使用完整单词或约定俗成的缩写。通常,较短的单词可通过去掉元音字母形成缩写;较长的单词可取单词的头几个字母形成缩写。即"见名知意";命名风格要自始至终保持一致;命名中若使用特殊约定或缩写,要有注释说明;为了代码复用,命名中应避免适用与具体项目相关的前缀;应使用英语命名。 (2)注释:注释基本原则就是有助于对程序的阅读理解,说明程序在"做什么",解释代码的目的、功能和采用的方法。一般情况源程序有效注释量在30%左右。注释语言必须准确、易懂、简洁。边写代码边注释,修改代码同时修改相应的注释,不再有用的注释要删除。汇编和C中都用"//",取消";" 不使用段注释" /* */ "(调试时可用)。 使用文件注释必须说明文件名、项目名称、函数功能、创建人、创建日期、版本信息等相关信息。修改文件代码时,应在文件注释中记录修改日期、修改人员,并简要说明此次修改的目的。所有修改记录必须保持完整。文件注释放在文件顶端,用"/*……*/"格式包含。
裸机开发学习心得 首先说明,我没啥经验。只是说一下我的体会。也没有朝谁开火的意思。如果无意伤了谁,还望海涵;如果所言有误,还请高手多多指教。 好了,开始忽悠~~~~~~~~~~~~~~~~ 在论坛里见到好多朋友学习裸机的时候都有一个习惯——做裸机开发时,过度依赖天嵌的裸机测试程序。怎么说呢,我觉得这样不是很好。尤其是对于一个新手。 也许是学习单片机出身的原因,我有一个毛病,就是对别人的代码不放心、凡事非得扣到底层。 一开始我看天嵌的裸奔三部曲,有一个体会——越看越迷茫。尤其是简单地修改了天嵌的程序,实现了显示几个自定义图片的时候。这里也算是给天嵌提一个建议吧。一般来讲,新手看到这里的感觉就是特迷茫:难道这就是学裸机程序吗?修改几行C代码?天嵌手册里说这样会迅速建立成就感,可是我丝毫没有。反而感到的是强烈的不安。毕竟天嵌的裸机程序对于一个新手来说太庞大,甚至会搞不清文件之间的关系。我们现在做的就是简单地修改几行现成的代码,然后看看效果。我就在想,此时我只会修改几行代码。底层硬件、ARM是如何启动的、启动代码2440init.s是如何支持ARM启动并跳转到C函数里的?这些东西都被天嵌的裸奔三部曲教
程透明掉了,这些我都不会,我们只是做了做应用层的修改。而那些被透明掉的知识,现在完全都是依赖于天嵌的测试程序的。试想,一旦一天老板让我做一个新的东西,新的硬件配置,没有了天嵌裸机程序里的底层知识,我们将如之奈何?基本就废了吧。 也许是由于原先是搞单片机的缘故,所以总喜欢扣底层,做Linux或者WinCE上层应用的朋友也许会觉得我在这里瞎折腾,做无用功。但是,对于从单片机转过来的人来说,我说的这些是最重要的——他们要搞清楚ARM是如何工作的,如何用程序去控制硬件,如何靠自己的力气搭建出来一个裸机程序。和做上层的人不一样,做底层的人就喜欢扣这些东西,因为这些东西如果搞不懂,那搞其上层来就会觉得发飘,或者说总是不知道地下发生了什么导致心里没底。最要命的是以后做Linux设备驱动的时候。由于对底层的认识不够,必将导致非常吃力! 这些天狂啃了一顿启动代码2440init.s。忽然意识到,裸机应该换一个方法学。 第一步、狂啃启动代码。 啃过之后你就会发现,原来大家在三星原版基础上改的,然后互相抄,有的甚至都抄错了。这可能是个痛苦的过程,你要找各种版本的2440init.s,但却是必经的。一旦走过,你会发现你对ARM底层就有了和以前不是一个深度的理解。以后做起开发来底气也就足了。这个过程里,你会遇到很多汇编
第三章JSP语法基础习题 一、选择题 1.JSP的编译指令标记通常是指:() A)Page指令、Include指令和Taglib指令 B)Page指令、Include指令和Plugin指令 C)Forward指令、Include指令和Taglib指令 D)Page指令、Param指令和Taglib指令 2.可以在以下哪个()标记之间插入Java程序片?() A)<% 和%> B)<% 和/> C) 和%> D)<% 和!> 3.下列哪一项不属于JSP动作指令标记?() A)
1、AREA 语法格式: AREA 段名属性1,属性2,…… AREA伪指令用于定义一个代码段或数据段。其中,段名若以数字开头,则该段名需用―|‖括起来,如|1_test|。 属性字段表示该代码段(或数据段)的相关属性,多个属性用逗号分隔。常用的属性如下:— CODE属性:用于定义代码段,默认为READONL Y。 — DATA属性:用于定义数据段,默认为READWRITE。 — READONL Y属性:指定本段为只读,代码段默认为READONL Y。 — READWRITE属性:指定本段为可读可写,数据段的默认属性为READWRITE。—ALIGN属性:使用方式为ALIGN 表达式。在默认时,ELF(可执行连接文件)的代码段和数据段是按字对齐的,表达式的取值范围为0~31,相应的对齐方式为2表达式次方。—COMMON属性:该属性定义一个通用的段,不包含任何的用户代码和数据。各源文件中同名的COMMON段共享同一段存储单元。 一个汇编语言程序至少要包含一个段,当程序太长时,也可以将程序分为多个代码段和数据段。 使用示例: AREA Init,CODE,READONL Y 指令序列 ;该伪指令定义了一个代码段,段名为Init,属性为只读 2、ALIGN 语法格式: ALIGN {表达式{,偏移量}} ALIGN伪指令可通过添加填充字节的方式,使当前位置满足一定的对其方式|。其中,表达式的值用于指定对齐方式,可能的取值为2的幂,如1、2、4、8、16等。若未指定表达式,则将当前位置对齐到下一个字的位置。偏移量也为一个数字表达式,若使用该字段,则当前位置的对齐方式为:2的表达式次幂+偏移量。 使用示例: AREA Init,CODE,READONL Y,ALIEN=3 ;指定后面的指令为8字节对齐。 指令序列 END 3、CODE16、CODE32 语法格式: CODE16(或CODE32) CODE16伪指令通知编译器,其后的指令序列为16位的Thumb指令。 CODE32伪指令通知编译器,其后的指令序列为32位的ARM指令。 若在汇编源程序中同时包含ARM指令和Thumb指令时,可用CODE16伪指令通知编译器其后的指令序列为16位的Thumb指令,CODE32 伪指令通知编译器其后的指令序列为32位的ARM指令。因此,在使用ARM指令和Thumb指令混合编程的代码里,可用这两条伪指令进行切换,但注意他们只通知编译器其后指令的类型,并不能对处理器进行状态的切换。使用示例: AREA Init,CODE,READONL Y …… CODE32 ;通知编译器其后的指令为32位的ARM指令
计算机组成原理与汇编实验报告 学院:信息科学与工程学院 专业班级:物联网工程1202班 指导老师:贺建飚 学号:0909123006 姓名:胡松
实验一:二进制转十六进制 一、实验原理: 在源程序中设置数据段、堆栈段及代码段,在数据段中定义八个字节数据,把这些数据转换成16 进制数的ASCll 码存 在上述数据之后,然后在屏幕上显示这些数据。 二、实验目的 1. 掌握86 系列汇编语言及指令的格式和寻址方式 2. 掌握86 系列汇编语言各类指令的用法。 3. 掌握简单程序、分支程序、循环程序、子程序等的设计方法。 三、实验内容 流程图:
NAME EX1 ; 程序命名伪指令,程序名为EX1 PAGE 50,70 ; 表示占了50行,70列 DAT SEGMENT PARA'DAT' ;数据段定义伪指令
A1 DB 12H,34H,56H,78H,9AH DB 0BCH,0DEH,0F0H B1=$-A1 ;赋值伪指令,求A1(符号地址)到当前汇编地址($)的字节数 B2=B1*2 ;求2倍的B1 A2 DB B2 DUP(?) ;数据重复定义伪指令,定义ASCII码字符区DAT ENDS STAC SEGMENT PARA STACK 'STA' ;定义堆栈段 STA1 DW 100 DUP(?) STAC ENDS CODE SEGMENT PARA 'CODE' ASSUME CS:CODE,DS:DAT,SS:STAC,ES:DAT STAR PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DAT MOV DS,AX MOV ES,AX LEA SI,A1 ;把A1首地址赋给SI LEA DI,A2 ;转化后用来放结果 MOV CX,B1 G1: MOV BL,2 MOV AL,[SI] ;把八位的数据赋给AL,准备转化 MOV BH,AL ;把AL中的数据暂存于BH中 PUSH CX ;保护CX中的数据 MOV CL,4 ;指出移位的位数为4 ROR AL,CL ;循环右移四位 POP CX ;把CX弹出堆栈 G2: AND AL,0FH ;把AL中的数据和0FH“与”,得到高四位 DAA ;对AL两位十进制数做(BCD)调整 ADD AL,0F0H ADC AL,40H MOV [DI],AL ;存ASCII码 INC DI ;修改地址加一 MOV AL,BH DEC BL
一、选择题 1,修改服务端口时,需要修改的文件是________。 A. web.xml B. Server.xml C. config.xml D. bin.xml 2,下列哪种开发语言是弱类型语言_______。 A. C/C++ B.JSP C. Java D. JavaScript 3,在JSP中,要定义一个方法,需要用到以下________元素。 A. <%= %> B. <% %> C. <%! %> D. <%@ %> 4,JSP页面经过编译之后,将创建一个________。 A. applet B. servlet C. application D. exe文件 5,在Java EE中的MVC设计模式中,________ 负责接受客户端的请求数据 A.JavaBean B.JSP C.Servlet D.HTML 6,URL是Internet中资源的命名机制,URL由三部分构成________。 A)协议、主机DNS名或IP地址和文件名 B)主机、DNS名或IP地址和文件名、协议 C)协议、文件名、主机名 D)协议、文件名、IP地址 7,下列设置颜色的方法中不正确的是________ A)
B) C) D) 8,标记中,align属性为段落文字的对齐方式,不能取的值为________。 A)Left B)Right C)Center D)width 10,表示粗体加斜体的标记是________。 A)字体 B)字体 C)字体D)字体 11,用来在网页中显示图形的标记为________ A)