已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
移动商务应用软件开发JavaEE,课程目标,掌握JavaEE概念及开发环境的设置熟练使用Jsp和Servlet完成简单的网站建设掌握Struts和Struts2的原理及应用熟练使用Hibernate完成数据持久化理解并掌握JPA的产生和作用掌握Spring框架的使用,熟练完成SSH框架的整合掌握EJB概念及使用,第3章Jsp在JavaEE中的高级应用,本章目标,掌握EL表达式应用,理解并熟练使用JSTL负责数据展示,理解并熟练使用Filter/Listenter,能够使用Jsp/Servlet完成简单的网站开发,理解并掌握AJAX技术的使用,使用脚本元素带来的问题,普通的Jsp表达式和脚本语言的缺点用以产生不可移植的Jsp代码常常因为代码的逻辑复杂或混乱而难于维护功能的过分强大影响系统的分层和人员的分工,EL/JSTL表达式的优点,EL/JSTL使用的优点可以削弱表达式或脚本语言过分强大的功能将Java程序式代码替换为标签式的注释式代码,使得逻辑表述更加清晰,页面显示更加清爽,更利于代码的维护,EL表达式,EL即ExpressionLanguage使用EL表达式语言可以不用担心类型转化的问题EL原是JSTL为方便使用而自定义的表达式语言,也可单独使用仅能够用于支持JSP2.0(servlet2.4)的容器中,如Tomcat5.0及以上版本EL使用的基本语法;$所要调用的变量;EL元素可以出现常规的JSP表达式可以出现的位置上,EL表达式,EL使用的支持;Jsp2.0的启用需要在web.xml进行如下的设置,EL表达式的限制性,EL没有声明变量的机制如果希望在页面中声明变量而不使用小脚本元素的话,需要JSTL或者标准JavaBean动作声明变量在MVC模式下,一般主要变量都通过控制器来声名,而不用在页面中声名,表达式语言的优势,能够简洁地访问请求参数、cookie和其他请求数据如果要访问标准类型的请求数据,可以使用几个预定义的隐式对象一套小但有用的简单运算符在EL语言中操作对象时,可以任意地使用所提供的算术、关系、逻辑或空值测试运算符,表达式语言的优势,条件化输出如果需要在不同的输出间做出选择,不必再采用Java脚本元素,取而代之,可以使用$test?option1:option2自动类型转换表达式语言排除了大部分类型转换的需要,同时也消除了很多将字符串解析成数字的代码空值替代错误消息大多数情况下,缺失的值或NullPointerExceptions会导致空串,而非抛出异常,EL内置对象,EL提供11个对象,分为5类作用域对象pageScope、requestScoptsessionScopt、applicationScope页面对象pageContext参数访问对象ParamparamValuesHTTP请求头部信息对象Header、headerValuescookie初始化参数对象initParam,EL内置对象,作用域对象pageScope、requestScoptsessionScopt、applicationScope示例$pageScope.pageValue/简化写法$pageValue,EL内置对象,页面对象pageContext示例IP地址:$pageContext.request.remoteAddrsession状态:$pageContext.session.newsession编号:$pageContext.session.id绝对路径:$pageContext.request.requestURLHTTP版本:$pageCtocol,EL运算符,运算符基本和Java语法中的运算符类似比如,使用EL的条件运算符:/JSP脚本性别:/EL条件运算符$(user.male)?男:女另外:empty运算符是java中没有的,用来对一个空变量值进行判断:例如:null,一个空的String,空数组,空Map,没有条目的Collection集合,EL类型转换,EL是弱类型的语言,EL不必考虑对变量声明,EL需要自动的类型转换机制首先,EL具备和JAVA5类似的自动装箱,自动将基本型转换为对象类型,比如int转换为Integer。这种转换,主要用于EL自身的复杂表达式其次,EL为页面显示,会自动将变量转换为字符串,如果变量是基本型,就转换为该基本型的值的字符串,如果是对象,使用对象的toString方法,如果值为null,返回“另外,EL可将字符串根据上下文自动转换为合适的基本型对应的对象,EL访问对象属性,通过EL可访问作用域变量的属性,使用.操作符邮箱:$user.email如果以上属性还包含属性,可以嵌套使用.操作符邮箱:$user.address.email取得属性还可以通过操作符姓名:$username,EL访问集合,如果作用域中保存的对象是集合,比如Map,那么可以使用“.”和“”操作符通过键来访问对应的值姓名:$userMapname邮箱:$userMap.email如果是List,或者数组,只能使用操作符通过下标访问姓名:$userList0邮箱:$userList1,JSTL,JSTL(JSPStandardTagLibrary)既JSP标准标签库是一个不断完善的开放源代码的JSP标签库JSTL所需要的jar包jstl.jarstandard.jar获取途径下载网址是:,JSTL,JSTL标签库由以下标记库组成:核心标记库:比如循环,表达式赋值等国际化标记库:用来格式化数据的数据库标签库:可以访问数据库XML标签库:访问XML文件函数标签库:用来读取已经定义的某个函数JSTL的使用将jar文件放在WEB-INF/lib目录下在引用页添加要使用的标签库的引用字符串,JSTL标签库,JSTL的标签库:CoreXMLDatebaseFunctionsInternationalization(i18n),JSTL的Core标签库,通用标签;条件判断标签;循环标签;URL处理标签;,标签,标签是一个输出的标签,负责把计算出的结果输出到jspwriter,就向调用了out.println()语法格式没有body的情况有body的情况这里是BODY,可以是任何合法的jsp或者是html代码,标签,标签用于在某个范围(page,request,session,application)里面设置特定的值(默认为page),或者设置某个已经存在的javabean的属性标签所包含属性设定一个特定范围的内变量,变量名为:varName值为value使用value属性设置一个特定范围里面的属性,带有BODYBodycontent,标签,标签用于判断单一条件的情况,类似与java脚本中的其语法格式如下无嵌套内容的情况有嵌套内容的情况嵌套内容,标签,标签用于条件选择,和,一起使用,它的条件选择是排斥性的的格式为:Body内容(,),与,标签是的一个分支,它必须嵌入在标签中,并且出现在前面,其形式与相似Body(body可以是任何hmtl、jsp、jstl标签或文本)代表的最后选择,语法格式如下,标签,语法第一种:迭代显示集合(collection)中的数据:Body内容第二种:迭代固定的次数Body内容,数字格式化,标签实际是对应java.util.NumberFormat类,它可以根据locale或自定义的方式,将一个数值的格式设置为数字、金额或百分比。其语法如,日期格式化,标签用于解析一个日期,并将结果作为java.lang.String类型的实例返回。其语法如下fmt:formatDatevalue=”date”要设定格式的日期/时间type=”time|date|both”指定要设置格式的部分位时间/日期或两种dateStyle=”default|short|medium|long|full”预定的日期格式timeStyle=”defaule|short|medium|long|full”预定的时间格式pattern=”customPattern”自定义的日期和时间格式timeZone=”timeZone”格式化的时间所在的地区var=”varName”存储结果的变量,Filter过滤器,Filter技术是servlet2.3新增加的功能,通过实现javax.servlet.Filter接口实现功能过滤器中的方法Init()方法,在过滤器启动前被调用doFilter()方法,该类主方法,一般要实现的功能逻辑在此执行,最后通过chain.doFilter()方法传递请求和响应。Destroy()方法,过滤器关闭时被调用,Filter过滤器,过滤器的使用前要在web.xml中进行注册Encodecom.IMTI.filter.EncodeFilterencodingutf-8Encode/*Filter配置的方式和Servlet十分相似,Listener监听器,Listener也是通过实现特定的接口和在web.xml进行配置来实现的。过滤器类的类路径Listener能够监听session,application的创建和销毁以及其中一些属性的修改,但上述内容有变化时,监听器类中相应的方法就会被执行。,Listener监听器,常用的Listener接口有四个ServletContextAttributeListener接口监听对ServletContext属性的操作ServletContextListener接口监听对ServletContext对象及属性的操作HttpSessionListener接口监听对HttpSession对象的操作HttpSessionAttributeListener接口监听HttpSession中属性变化的操作Listener的作用通过监听HttpSession对象的创建和销毁来统计当前网站的在线人数通过监听ServletContext对象的创建可以通过读取配置文件中的值进行初始化,AJAX简介,Ajax是AsynchronousJavaScriptandXML的缩写Ajax并不是一门新的语言或技术,它实际上是几项技术按一定的方式组合在一在同共的协作中发挥各自的作用,它包括使用XHTML和CSS标准化呈现使用DOM实现动态显示和交互使用XML和XSLT进行数据交换与处理使用XMLHttpRequest进行异步数据读取最后用JavaScript绑定和处理所有数据,AJAX的优势,Ajax相对于传统的web应用的优势是优化的性能;一些服务器端的工作可以转嫁到客户端,利用客房端闲置的处理能力来处理无需刷屏;AJAX用XMLHTTP发送请求得到服务端应答数据,无需重新加载页面其他信息基于标准化;AJAX不需要插件或下载小程序,利于日后维护和修改方便外部数据调用;在需要页面与数据分离的情况下,可以应用AJAX技术来获取数据,从而达到分离目的,XMLHttpRequest对象,XMLHttpRequest对象最初是作为IE5中的一个ActiveX控件出现的,随后Mozilla1.0、Netscape7、Safari1.2和Opera7.60都将它纳入自身XMLHttpRequest对象在IE浏览器和非IE浏览器中实现方法不同XMLHttpRequest对象的作用在于,允许用脚本程序通过HTTP连接到服务器,而不比通过HTTP请求响应模型与服务器通信。,创建XMLHttpRequest对象,在IE7、Firefox、safari和Opera中创建该对象的JavaScript代码为varxmlRequet=newXMLHttpRequest();在IE5/6中代码为varxmlRequest=newActiveXObject(“Microsoft.XMLHTTP”);JavaScript区分大小写,如果大小写不正确,什么东西都创建不出来使用XMLHttpRequest对象的方式有两种,同步和异步,XMLHttpRequest对象的属性,XMLHttpRequest对象的方法,XMLHttpRequest对象,/先判断浏览器是否是IEif(window.XMLHttpRequest)/非IE浏览器XMLHttpRequest的声明方式xhr=newXMLHttpRequest();else/IE浏览器的XMLHttpRequest声明方式xhr=newActiveXObject(Microsoft.XMLHTTP);,AJAX应用中的常见问题(1),同源问题XMLHttpRequest对象有些问题来自于同源问题。在较早版本的浏览器中,可以运行来自任何源的任何脚本,由此带来很严重的安全隐患。因此,处于安全的考量,“同源策略”被要求强制执行。即只有来自同一域、同一协议和同一端口的脚本才可以运行IE不检验它从XMLHttpRequest对象中取回的字段。其中的一个字段就是HTTPREFERER,它包含用户所浏览页面的URL/域名这意味着Referer完全可以在客户端进行伪造。IE这个的这个安全漏洞Referer值不可信。解决的办法之一是,我们可以在编写Cookie时,将域名/服务器添加到cookie中,以便验证发出的和接收的同源,AJAX应用中的常见问题(2),跨浏览器兼容问题在使用Ajax技术时,最困难的问题是让应用程序在不同的浏览器中都能够正常运行。实际上,这种想法非常不实际在XMLHttpRequest应用中,用户使用的是IE还是Mozilla浏览器已成为次要问题,主要问题是创建哪个版本浏览器的XMLHttpRequest对象。我们需要注意以下问题ActiveX控件不能使用在IE之外的浏览器中动态HTTPjihedocument.all只能在IE上工作在某些版本的Firefox上运行XMLHttpRequest会崩溃IE不区别大小写,而Mozilla却区别大小写不同的IE版本,必须调用不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年秦皇岛辅警招聘考试真题含答案详解(培优b卷)
- 2023年运城辅警招聘考试题库附答案详解(考试直接用)
- 2024年大兴安岭辅警协警招聘考试真题含答案详解(研优卷)
- 2023年酉阳土家族苗族自治县辅警协警招聘考试备考题库含答案详解(完整版)
- 2023年许昌辅警招聘考试真题附答案详解(培优b卷)
- 2023年赤峰辅警招聘考试题库附答案详解(b卷)
- 2024年吉安辅警招聘考试题库附答案详解(研优卷)
- 2024年北海辅警招聘考试题库及答案详解(历年真题)
- 2024年唐山辅警招聘考试题库及答案详解(基础+提升)
- 2024年吉安辅警招聘考试题库及参考答案详解一套
- 在线监测设备知识培训课件
- 疤痕病人护理查房
- 毒麻药品管理课件
- 农村公路养护实施方案
- 提高住院患者围手术期健康宣教知晓率品管圈活动报告
- 《Unit 5 Different toys,same fun》教案-2025-2026学年译林版(三起)(2024)小学英语四年级上册
- 码头安全培训课件
- 生态纺织园新建3000m³日污水治理环保建设项目报告表
- 柴油发电机组维修保养合同范本
- DZ/T 0078-1993固体矿产勘查原始地质编录规定
- 采购合同垫资协议书模板
评论
0/150
提交评论