




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JSP开发本次要点什么是JSP三个指令七个动作九个内置对象EL表达式JSTL标签库什么是JSPJSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP最大的特点在于,可以在html当中嵌入Java代码,为用户提供动态数据。 JSP是Servlet的简化设计,逻辑与界面设计分开,开发更方便;JSP与ServletJSP和Servlet,都可以用于开发动态web资源。但由于这2门技术各自的特点,开发人员经常用servlet作为web应用中的控制器组件或者说是接入层来使用,而把JSP技术作为数据显示模板来使用。Servle
2、t只负责响应请求并处理请求产生数据,数据的显示由JSP负责。JSP语法JSP原始代码中包含了JSP元素和Template(模板) data两类 Template data指的是JSP引擎不处理的部分,即标记以外的部分,例如代码中的HTML的内容等 ,这些数据会直接传送到客户端的浏览器, JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观。JSP元素则是指将由JSP引擎直接处理的部分,这一部分必须符合JSP语法,否则会导致编译错误。声明JSP页面中编写的所有代码,默认会翻译到servlet的service方法中, 而Jsp声明中的java代码被翻译到_jspService方法的外面,即
3、实例变量。语法:所以,JSP声明可用于定义JSP页面转换成的Servlet程序的静态代码块、成员变量和方法 。 多个静态代码块、变量和函数可以定义在一个JSP声明中,也可以分别单独定义在多个JSP声明中。脚本JSP脚本用于在JSP页面中编写多行Java代码。语法: 注意:JSP脚本中只能出现java代码,不能出现其它模板元素, JSP引擎在翻译JSP页面中,会将JSP脚本片断中的Java代码将被原封不动地放到Servlet的_jspService方法中。 JSP脚本中的Java代码必须严格遵循Java语法,例如,每执行语句后面必须用分号(;)结束。脚本在一个JSP页面中可以有多个脚本,在两个或
4、多个脚本之间可以嵌入文本、HTML标记和其他JSP元素。举例:这是JSP页面文本多个脚本中的代码可以相互访问,犹如将所有的代码放在一对之中的情况。脚本单个脚本片断中的Java语句可以是不完整的,但是,多个脚本片断组合后的结果必须是完整的Java语句,例如:%for (int i=1; ihello 表达式JSP表达式(expression)用于将程序数据输出到客户端。语法:举例:当前时间: JSP引擎在翻译脚本表达式时,会将程序数据转成字符串,然后在相应位置用out.write() 将数据输给客户端。JSP脚本表达式中的变量或表达式后面不能有分号(;)。注释JSP的注释 JSP引擎在将JSP页
5、面翻译成Servlet程序时,会忽略JSP页面中被注释的内容声明、脚本、表达式区分 为什么不能在 里面声明一个方法apache-tomcat-5.5.16workCatalinalocalhosttestorgapachejsp查看源码,与servlet进行比较JSP与Servlet的不同之处 jsp 对比,比较Servlet 与 jsp 的 不同点Jsp文件后缀名.jsp Servlet .java配置文件中不需要对jsp进行描述,当然也可以进行描述Jsp文件的组成html+jsp脚本元素JSP运行原理每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)
6、去处理。JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet) ,然后按照servlet的调用方式进行调用。由于JSP第一次访问时会翻译成servlet,所以第一次访问通常会比较慢,但第二次访问,JSP引擎如果发现JSP没有变化,就不再翻译,而是直接调用,所以程序的执行效率不会受到影响。JSP生命周期方法jspInit()_jspService()jspDestroy()Init eventRequest/Response Destroy eventJSP指令JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处
7、理JSP页面中的其余部分。在JSP 2.0规范中共定义了三个指令:JSP指令的基本语法格式:举例:page指令page指令用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面,为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置。可以在一个页面中用上多个“”指令,但是其中的属性只能用一次,不过也有例外,那就是import属性。因为import属性和Java中的import语句类似(参照Java Language,import语句引入的是Java语言中的类),所以此属性就能多用几次。page指令1.langua
8、ge 目前只支持java 2.contentType: 影响 response.setContentType(text/html;charset=GB2312); 3.pageEncoding: 用于JSP页面的编码。常规页面默认为ISO-8859-1。 4.import : 注意它为唯一可以出现多次的属性,默认下只导入 :import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.jsp.*;import java.lang.*;5.extends: 定义此JSP页面产生的Servlet是继承自哪个父类建议不
9、使用.page指令6.session: 是否在页面启用用户会话 ,默认true7.buffer: 设置缓冲区的大小,默认8KB,这里的设置改变也看不出效果,要结合 autoFlush 来进行设置,假如autoFlush 设置为false代表缓冲区满的时候不进行刷新,而是抛出异常. 8.autoFlush true 是否自动刷新输出,如果为false,缓冲区满时抛出异常9.isThreadSafe: 是否单线程模式.默认为false.不建议去修改. 10.info 页面描述信息. 11.isErrorPage: 指定当前页面是否是另外一个页面的异常处理页面。12.isELIgnored=“tru
10、e”:是否忽略EL表达式 。include指令include指令用于引入其它JSP页面,如果使用include指令引入了其它JSP页面,那么JSP引擎将把这两个JSP翻译成一个servlet。所以include指令引入通常也称之为静态引入。语法:其中的file属性用于指定被引入文件的相对路径。 file属性的设置值必须使用相对路径,如果以“/”开头,表示相对于当前WEB应用程序的根目录(注意不是站点根目录),否则,表示相对于当前文件。细节:被引入的文件必须遵循JSP语法。被引入的文件可以使用任意的扩展名,即使其扩展名是html,JSP引擎也会按照处理jsp页面的方式处理它里面的内容。 由于使用
11、include指令将会涉及到2个JSP页面,并会把2个JSP翻译成一个servlet,所以这2个JSP页面的指令不能冲突(除了pageEncoding和导包除外)。taglib指令Taglib指令用于在JSP页面中导入标签库。JSP动作标签(Tag): 标签,通常也称为动作,是一组按照XML语法格式编写的代码片段,在JSP中,用来封装在页面中可重复利用的逻辑,通过标签可以使JSP网页变得简洁并且易于维护。由于标签是XML元素,所以它的名称和属性都是大小写敏感的 JSP动作常用JSP动作包括。动作动作用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式
12、称之为动态引入。语法:jsp:include page=relativeURL | flush=true|false /page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端,默认为false。动作和include指令的区别标签是动态引入,常用来引入包含Java代码的页面, 标签涉及到的2个JSP页面会被翻译成2个servlet,这2个servlet的内容在执行时进行合并。 而include指令是静态引入,常用来引入没有包含Java代码的页面,如公司logo,涉及到的2个JSP页
13、面会被翻译成一个servlet,其内容是在源文件级别进行合并。不管是标签,还是include指令,它们都会把两个JSP页面内容合并输出,所以这两个页面不要出现重复的HTML全局架构标签,否则输出给客户端的内容将会是一个格式混乱的HTML文档。JSP内置对象JSP引擎在调用JSP对应的_jspService时,会传递或创建9个与web开发相关的对象供_jspService使用。JSP技术的设计者为便于开发人员在编写JSP页面时获得这些web对象的引用,特意定义了9个相应的变量,开发人员在JSP页面中通过这些变量就可以快速获得这9大对象的引用。8+1JSP内置对象request,请求对象respo
14、nse,响应对象pageContext,页面上下文对象session,会话对象application,应用程序对象out,输出对象config,配置对象page,页面对象exception,例外对象28Request和response“request” 对象代表的是来自客户端的请求,例如我们在FORM表单中填写的信息等,是最常用的对象。关于它的方法使用较多的是getParameter、getParameterNames和getParameterValues,通过调用这几个方法来获取请求对象中所包含的参数的值“response” 对象代表的是对客户端的响应,也就是说可以通过“response”对
15、象来组织发送到客户端的数据。但是由于组织方式比较底层,所以不建议普通读者使用,需要向客户端发送文字时直接使用“out” 对象即可。pageContext“pageContext” 对象直译时可以称作“页面上下文”对象,代表的是当前页面运行的一些属性,常用的方法包括findAttribute、getAttribute、getAttributesScope和getAttributeNamesInScope,一般情况下“pageContext” 对象用到得也不是很多,只有在项目所面临的情况比较复杂的情况下,才会利用到页面属性来辅助处理。Session和application“session” 对象代
16、表服务器与客户端所建立的会话,当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购物、客户轨迹跟踪等。“session” 对象建立在cookie的基础上,所以使用时应注意判断一下客户端是否打开了cookie。常用的方法包括getId、 getValue、 getValueNames和putValue等。“application” 对象负责提供应用程序在服务器中运行时的一些全局信息.out“out” 对象代表了向客户端发送数据的对象,与“response” 对象不同,通过“out” 对象发送的内容将是浏览器需要显示的内容,是文本一级的,可以通过“out” 对象直接向客户端写一个由程序动态生成HTML文件。常用的方法除了pirnt和println之外,还包括clear、clearBuffer、flush、getBufferSize和getRemaining,这是因为“out” 对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法。Config、page和exception“config” 对象提供一些配置信息,常用的方法有getInitParameter和getIn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年惠州城市职业学院高职单招(数学)历年真题考点含答案解析
- 幼儿科学教育案例分析
- 11多姿多彩的民间艺术 第一课时(教学设计)-部编版道德与法治四年级下册
- 2025年计算机二级考试思路拓展试题及答案
- 2025年上海普陀区高三二模高考数学模拟试卷(含答案详解)
- 2025年健康管理师考试应用行为科学的研究探讨试题及答案
- 临床医学考生备战试题及答案
- 2024年心理咨询师对心理学理论的深刻理解与应用试题及答案
- 医药行业竞品数据分析与策略优化
- 2025年金山职业技术学院高职单招(数学)历年真题考点含答案解析
- 内镜中心护士长如何管理
- 养老保险9大知识讲座
- 太原市2024年高三一模(高三年级模拟考试一)英语试卷(含答案)
- 社区获得性肺炎临床路径全套
- 小学英语学科项目化学习案例-
- 微观经济学复习题
- 老年带状疱疹诊疗专家共识
- 现代汉语词汇学课件
- 大学课件-机电传动控制(完整)
- 行政岗位任职资格标准
- 领导干部个人报告事项漏报情况说明范文(6篇)
评论
0/150
提交评论