Java基础与实践-jsp.ppt

上传人:小飞机 文档编号:6509714 上传时间:2023-11-07 格式:PPT 页数:55 大小:450.50KB
返回 下载 相关 举报
Java基础与实践-jsp.ppt_第1页
第1页 / 共55页
Java基础与实践-jsp.ppt_第2页
第2页 / 共55页
Java基础与实践-jsp.ppt_第3页
第3页 / 共55页
Java基础与实践-jsp.ppt_第4页
第4页 / 共55页
Java基础与实践-jsp.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《Java基础与实践-jsp.ppt》由会员分享,可在线阅读,更多相关《Java基础与实践-jsp.ppt(55页珍藏版)》请在三一办公上搜索。

1、本演示文稿可能包含观众讨论和即席反应。使用 PowerPoint 可以跟踪演示时的即席反应,在幻灯片放映中,右键单击鼠标请选择“会议记录”选择“即席反应”选项卡必要时输入即席反应单击“确定”撤消此框此动作将自动在演示文稿末尾创建一张即席反应幻灯片,包括您的观点。,JSP,1.JSP高级编程,廖若雪,机械工业出版社,2001,参考书目,2.,内容提要,JSP绪论,JSP的语法和语义,JSP页面的生命周期,JSP扩展自定义标签,JSP绪论,JSP页面中包含两类文本:HTML、WML或XML形式的静态模板数据用于构造动态内容的JSP元素,JSP页面示例(1 of 2),JSP页面示例(2 of 2)

2、,JSP语法和语义,3.1.1 指令一般形式为:,Page指令,Page 指令用于描述JSP页面的特性 Page_directive_attr_list:=language=“java”extends=“package.class”import=“import_list”session=“true|false”buffer=“none|size”autoFlash=“true|false”isThreadSafe=“true|false”info=“text”errorPage=“error_url”isErrorPage=“true|false”contentType=“mine_type”

3、,Page指令,JSP缺省地import:java.lang.*javax.servlet.*.*.*,错误处理页面示例,Include指令,表示编译时包含(静态包含)JSP编译器将对被包含页面进行语法分析,taglib指令,taglib 指示当前JSP页面所使用的标签库,脚本,脚本包含:声明:变量和方法的Java说明语句表达式:Java表达式脚本代码(Scriptlet):Java程序片断,声明,声明的变量和方法将成为Servlet类的属性和方法例如:,表达式,例如:表达式的计算结果将作为字符串加入至JSP的输出流,脚本代码,注意:不能在脚本代码中声明方法,3.1.3 内置对象,在JSP页面

4、中,勿需声明即可在表达式和Scriplet中使用以下内置对象:request:作用域为用户请求期response:作用域为页面请求期out:作用域为页面请求期session:application:作用域为整个WEB应用的执行过程,out内置对象,print和println可以直接输出的类型有:boolean,char,chair,double,float,int,string和Object,application示例(1 of 4),application示例(2 of 4),application示例(3 of 4),application示例(4 of 4),3.1.4 动作,JSP动作

5、可以建立、编辑、使用对象,可以影响输出流JSP已定义一系列标准动作,也可以添加客户自定义的动作每个JSP动作都有id和Scoper属性。id表示动作的名称,Scope表示动作的作用域。作用域取值为:PageRequestSessionApplication,JSP可以动态使用JavaBeans来扩充JSP的功能例如:,该动作用来设置Java Beans的属性,3.1.4.2,从JavaBeans中获取属性,并转换为String,将静态或动态页面动态引入到当前JSP页面中*例如:,静态包含与动态包含的差异,定义名-值对应关系在,和中实现参数传递功能,将客户请求引导至另一页面或另一servlet注

6、意:当该动作发生时,如果已经有文本写至输出流,且JSP页面未设置缓冲,系统将产生IllegalStateException.*”/,在JSP页面中嵌入在客户端运行的Applet和 JavaBeans,注解,JSP注解:脚本代码中的Java注释:HTML注释:,JSP页面的生命周期,用户请求到达Web server后:系统检查JSP页面的Servlet是否已过时如果已过时,则将JSP页面翻译为Servlet并编译成Java字节码:静态模板数据翻译为输出流的打印语句JSP指令作为翻译器的指令脚本中的声明翻译为Servlet中类的变量和方法说明脚本中的表达式翻译为Servlet中的面向输出流的打印语

7、句脚本中的Scriptlet翻译为Servlet中的程序片断JSP动作翻译为JavaBeans构件的方法调用 或java Servlet API调用,JSP页面的生命周期,此后,JSP页面的生命周期与Servlet的生命周期相同如果JSP页面的Servlet 不存在,Container装载并实例化该Servlet,调用jspInit方法以request和response对象为参数,Call _jspService方法在Container认为必要时,Call jspDestroy方法,自定义JSP Tags,what将开发者自定义的java代码封装成为供JSP页面使用的JSP Tags,从而进一

8、步分离表示层和业务层当页面翻译为Servlet 时,自定义Tags被转换为Tags Handler对象上的操作,自定义Tags的开发与使用,自定义标签的分类简单型标签例如包含body定义的标签包含Scripting变元的自定义标签自定义标签之间的合作,简单的自定义Tag,仅在标签的开始和结束处激发Java动作,标签内部无内容,或内容勿需处理Step 1:开发Java TagHandler类(实现Tag接口或继承TagSupport类)Step 2:在TLD文件中定义相应的描述子,简单的自定义Tag,3.3.2.1 简单的自定义Tag,使用自定义Tag,方法1:直接在JSP文件中定位TLD文件方

9、法2:在Web应用的配置文件中定位TLD文件,带属性定义的简单Tag(1 of 2),带属性定义的简单Tag(2 of 2),包含body的自定义标签,如果Tag Handler不读写bodyTag Handler实现Tag接口或继承TagSupport类,在doStartTag函数中return EVAL_BODY_INCLUDE或SKIP_BODY如果Tag Handler希望循环处理body,则应实现IterationTag接口或继承TagSupport类,在doStartTag,doAfterBody中return EVAL_BODY_AGAIN或EVAL_BODY_INCLUDE或S

10、KIP_BODY,包含body的自定义标签,否则:Tag Handler实现BodyTag接口或继承BodyTagSupport类,在doInitTag和doAfterbody方法中读取body content,向输出流写信息 DoInitBody用于依赖于body content的初始化工作如果希望循环处理body,该tag handler还应实现IterationTag接口,doAfterBody应return EVAL_BODY_TAG或SKIP_BODY,包含body的自定义标签,包含scripting变元的自定义标签,包含scripting变元的自定义标签,Tag handler对此

11、类自定义标签的处理:利用Tag handler类的属性get操作获得scripting变元的名称使用pageContext.setAttribute(name,value)创建或设置scripting变元的值JSP页面对该scripting变元的引用将通过pageContext.getAttribute(name)来实现,包含scripting变元的自定义标签,在TLD文件中对scripting变元必须说明:通过variable tag通过TagExtraInfo的子类,包含scripting变元的自定义标签,自定义标签之间的合作,自定义标签可通过共享对象而合作形式之一:自定义标签中,创建的对象在另一自定义标签中引用形式之二:嵌套的自定义标签。父tag handler中创建的所有对象均可被内层的tag handler引用,自定义标签之间的合作,自定义标签之间的合作,自定义标签之间的合作,Tag Handler中函数的调用顺序,Tag Handler中函数的调用顺序,内容提要,JSP绪论JSP的语法和语义JSP页面的生命周期JSP扩展自定义标签,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号