JavaWeb14

上传人:da****ge 文档编号:243098042 上传时间:2024-09-15 格式:PPTX 页数:174 大小:650.04KB
返回 下载 相关 举报
JavaWeb14_第1页
第1页 / 共174页
JavaWeb14_第2页
第2页 / 共174页
JavaWeb14_第3页
第3页 / 共174页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2011-08-05,#,第,10,章:表达式语言,表达式语言简介,本章目标,掌握表达式的基本概念及主要作用;,掌握表达式的基本操作格式;,表达式语言,表达式语言(,Expression Language,,简称,EL,)是,JSP 2.0,中增加的新功能。使用表达式语言,可以方便的访问标志位(在,JSP,中一共提供了四种标志位:,page,(,pageContext,)、,request,、,session,、,application,)中的属性内容,这样就可以避免掉许多的,scriptlet,代码,访问的简便语法如下:,$,属性名称,不使用表达式语言,输出属性内容,JAVA,使用表达式语言,输出属性内容,JAVA,$info,小结,通过表达式语言可以方便的进行属性的输出,如果属性不存在,则通过表达式语言自动将,null,设置为,。,下一章内容,表达式语言的内置对象,本章目标,掌握表达式语言中的各主要内置对象的使用;,可以使用表达式输出指定范围的属性或者是参数。,表达式语言的内置对象定义,No.,表达式内置对象,说明,1,pageContext,表示,javax.servlet.jsp.PageContext,对象,2,pageScope,表示从,page,属性范围查找输出属性,3,requestScope,表示从,request,属性范围查找输出属性,4,sessionScope,表示从,session,属性范围查找输出属性,5,applicationScope,表示从,application,属性范围查找输出属性,6,param,接收传递到本页面的参数,7,paramValues,接收传递到本页面的一组参数,8,header,取得一个头信息数据,9,headerValues,取出一组头信息数据,10,cookie,取出,cookie,中的数据,11,initParam,取得配置的初始化参数,属性范围,No.,属性范围,范例,说明,1,pageScope,$pageScope.,属性,取出,page,范围的属性内容,2,requestScope,$requestScope.,属性,取出,request,范围的属性内容,3,sessionScope,$sessionScope.,属性,取出,session,范围的属性内容,4,applicationScope,$applicationScope.,属性,取出,application,范围的属性内容,指定取出范围的属性,JAVA,PAGE,属性内容:,$pageScope.info,REQUEST,属性内容:,$requestScope.info,SESSION,属性内容:,$sessionScope.info,APPLICATION,属性内容:,$applicationScope.info,调用,JSP,内置对象的方法,JAVA,IP,地址:,$pageContext.request.remoteAddr,SESSION ID,:,$pageContext.session.id,是否是新,session,:,$pageContext.session.new,接收请求参数,JAVA,通过内置对象接收输入参数:,通过表达式语言接收输入参数:,$,param,.ref,使用表达式接收一组参数,JAVA,第一个参数:,$paramValues.inst0,第二个参数:,$paramValues.inst1,第三个参数:,$paramValues.inst2,小结,默认情况下表达式是采用顺序的方式输出属性的;,顺序:,page, request session application,通过,param,可以进行参数的接收;,下一章内容,集合操作,本章目标,可以使用表达式语言进行集合的输出,集合操作,集合操作在开发中被广泛的采用,在表达式语言中也已经很好的支持了集合的操作,可以方便的使用表达式语言输出,Collection,(子接口:,List,、,Set,)、,Map,集合中的内容。,输出,Collection,接口集合,JAVA,第一个元素:,$allinfo0,第二个元素:,$allinfo1,第三个元素:,$allinfo2,输出,Map,集合,JAVA,KEY,为,KK,的内容:,$infoKK,KEY,为,JAVA,的内容:,$info.JAVA,KEY,为,email,的内容:,$infoemail,小结,输出集合时可以直接通过下标完成;,Map,集合输出时依然要通过,KEY,找到,VALUE,。,下一章内容,在,MVC,中应用表达式语言,本章目标,掌握表达式输出对象的操作;,掌握表达式语言的实际作用,并结合,MVC,设计模式应用表达式语言;,定义一个,VO,类, Dept.java,package,org.KK.eldemo.vo;,public,class,Dept ,private,int,deptno,;,private,String,dname,;,private,String,loc,;,public,int,getDeptno() ,return,deptno,;,public,void,setDeptno(,int,deptno) ,this,.,deptno,= deptno;,public,String getDname() ,return,dname,;,public,void,setDname(String dname) ,this,.,dname,= dname;,public,String getLoc() ,return,loc,;,public,void,setLoc(String loc) ,this,.,loc,= loc;,将此对象保存在属性范围中,通过表达式语言输出,JAVA,部门编号:,$deptinfo.deptno,部门名称:,$deptinfo.dname,部门位置:,$deptinfo.loc,使用,MVC,传递集合,一个,JSP,程序中应该只包含三类代码:接收属性、判断、输出,而且在,JSP,中最好只导入一个,java.util,包,所以此时要输出一个集合的话,那么还是要依靠,Iterator,完成,通过,Iterator,找出集合中的每一个元素,但表达式语言只能操作四种属性范围中的内容,所以就可以将每一个取出的对象(,Object,)存放在,page,范围中(因为每一个要输出的内容只在本页有效),之后再通过表达式输出即可,定义,Servlet,传递集合,public,class,ELListServlet,extends,HttpServlet ,public,void,doGet(HttpServletRequest request, HttpServletResponse response),throws,ServletException, IOException ,List all =,new,ArrayList() ;,/,实例化,List,接口,Dept dept =,null,;,/,定义,Dept,对象,dept =,new,Dept() ;,/,实例化,VO,对象,dept.setDeptno(10) ;,/,设置,deptno,属性,dept.setDname(,JAVA,教学部,) ;,/,设置,dname,属性,dept.setLoc(,北京市西城区,) ;,/,设置,loc,属性,all.add(dept) ;,/,向集合中增加,dept,属性,dept =,new,Dept() ;,/,重新实例化,VO,对象,dept.setDeptno(20) ;,/,设置,deptno,属性,dept.setDname(,JAVA,研发部,) ;,/,设置,dname,属性,dept.setLoc(,北京市东城区,) ;,/,设置,loc,属性,all.add(dept) ;,/,向集合中增加,dept,属性,request.setAttribute(,alldept,all) ;,/,设置,request,属性,request.getRequestDispatcher(,dept_list.jsp,),.forward(request, response);,/,通过服务器跳转传递,request,属性,public,void,doPost(HttpServletRequest request, HttpServletResponse response),throws,ServletException, IOException ,this,.doGet(request, response);,/,调用,doGet(),操作,使用表达式输出集合,JAVA,部门编号,部门名称,部门位置,$dept.deptno,$dept.dname,$dept.loc,小结,表达式语言可以方便的进行对象属性的输出;,通过表达式语言输出集合时,需要使用,page,属性范围完成;,表达式结合,MVC,设计模式将发挥更大的作用。,下一章内容,运算符,本章目标,掌握表达式中各种运算符的使用。,运算符,在表达式语言中为了方便用户的显示操作定义了许多数学运算符、关系运算符、逻辑运算符等,使用这些运算符将使得,JSP,页面更加简洁,但是对于太复杂的操作还是应该在,Servlet,或,JavaBean,中完成,在使用这些运算符的时候,所有的操作内容也可以直接使用设置的属性,而不用考虑转型的问题。,数学运算符,No.,算术运算符,描述,范例,结果,1,+,加法操作,$20 + 30,50,2,-,减法操作,$20 - 30,-10,3,*,乘法操作,$20 * 30,600,4,/,或,div,除法操作,$20 / 30,或,$20 div 30,0.666,5,%,或,mod,取模(余数),$20 % 30,或,$20 mod 30,20,数学运算操作,JAVA,加法操作:,$num1 + num2,减法操作:,$num1 - num2,乘法操作:,$num1 * num2,除法操作:,$num1 / num2,和,$num1,div,num2,取模操作:,$num1 % num2,和,$num1,mod,num2,关系运算符,No.,关系运算符,描述,范例,结果,1,=,或,eq,等于,$20 = 30,或,$20 eq 30,false,2,!=,或,ne,不等于,$20 != 30,或,$20 ne 30,true,3,或,lt,小于,$20 ,或,gt,大于,$20 30,或,$20 gt 30,false,5,=,或,le,小于等于,$20 =,或,ge,大于等于,$20 = 30,或,$20 ge 30,false,验证关系运算符,JAVA,相等判断:,$num1 = num2,和,$num1,eq,num2,不等判断:,$num1 != num2,和,$num1,ne,num2,小于判断:,$num1 num2,和,$num1,lt,num2,大于判断:,$num1 num2,和,$num1,gt,num2,小于等于判断:,$num1 = num2,和,$num1,le,num2,大于等于判断:,$num1 = num2,和,$num1,ge,num2,逻辑运算符,No.,逻辑运算符,描述,范例,结果,1,&,或,and,与操作,$true & false,或,$true and false,false,2,|,或,or,或操作,$true | false,或,$true or false,true,3,!,或,not,非操作(取反),$!true,或,$not true,false,验证逻辑运算符,JAVA,与操作:,$flagA & flagB,和,$flagA,and,flagB,或操作:,$flagA | flagB,和,$flagA,or,flagB,非操作:,$!flagA,和,$,not,flagA,其他运算符,No.,其他运算符,描述,范例,结果,1,empty,判断是否为,null,$empty info,true,2,? :,三目运符,$1020 ? ,大于, : ,小于,小于,3,(),括号运算符,$10 * (20 + 30),500,验证其他操作符,JAVA,empty,操作:,$,empty,info,三目操作:,$num1num2 ? ,大于, : ,小于,括号操作:,$num1 * (num2 + num3),小结,使用表达式中的运算符可以方便的完成各种运算操作,从而避免使用转型所代码的麻烦。,第,13,章:标准标签库(,JSTL,), JSTL,简介及安装,本章目标,了解,JSTL,的主要作用;,在项目中安装并配置,JSTL,。,JSTL,简介,JSTL,(,JSP Standard Tag Library,,,JSP,标准标签库)是一个开放源代码的标签组件,由,Apache,的,Jakarta,小组开发,可以直接从,http:/tomcat.apache.org/taglibs/,下载,JSTL,主要的标签分类,No.,JSTL,标记名称,标签配置文件,描述,1,核心标签库,c,c.tld,定义了属性管理、迭代、判断、输出,2,SQL,标签库,sql,sql.tld,定义了查询数据库操作,3,XML,标签库,xml,x.tld,用于操作,XML,数据,4,函数标签库,fn,fn.tld,提供了一些常用的操作函数,例如:字符串函数,5,I18N,格式标签库,fmt,fmt.tld,格式化数据,安装,JSTL 1.2,下载来的,JSTL.,是以,jar,包的形式存在的,直接将此,Jar,包保存在,WEB-INF/lib,目录之中,之后可以直接通过,WINRAR,工具打开此,JAR,包,并且将里面的,META-INF,文件夹中的几个主要标签配置文件:,c.tld,、,fmt.tld,、,fn.tld,、,sql.tld,、,x.tld,保存在,WEB-INF,文件夹之中,简单的,JSTL,程序,JAVA,配置,web.xml,http:/www.JAVA.cn/jstl/core,/WEB-INF/c.tld,http:/www.JAVA.cn/jstl/fmt,/WEB-INF/fmt.tld,http:/www.JAVA.cn/jstl/fn,/WEB-INF/fn.tld,http:/www.JAVA.cn/jstl/sql,/WEB-INF/sql.tld,http:/www.JAVA.cn/jstl/x,/WEB-INF/x.tld,配置引用,小结,JSTL,是一个第三方的开源标签库;,JSTL,操作时需要自己手工配置,如果通过,MyEclipse,开发,则可以直接使用。,下一章内容,核心标签库,本章目标,掌握核心标签库提供的主要标签;,可以完成输出、判断、迭代等常见操作;,核心标签库,核心标签库是,JSTL,中最重要的部分,也是在开发中最常使用到的部分,在核心标签库里主要完成的就是流程控制、迭代输出等操作,No.,功能分类,标签名称,描述,1,基本标签,输出属性内容,2,设置属性内容,3,删除指定属性,4,异常处理,5,流程控制标签,条件判断,6,多条件判断,可以设置,和,标签,7,迭代标签,输出数组、集合,8,字符串拆分及输出操作,9,包含标签,将一个指定的路径包含到当前页进行显示,10,生成,URL,标签,根据路径和参数生成一个新的,URL,11,客户端跳转,客户端跳转,标签,标签主要用于输出内容,这一点与表达式语言或表达式输出的,scriptlet,是一样的,此标签的语法如下:,默认值,标签的属性,No.,属性名称,EL,支持,描述,1,value,设置要显示的内容,2,default,如果要显示的,value,内容为,null,,则显示,default,定义的内容,3,escapeXml,是否转换字符串,例如将“,”,转换成,,默认设置为,true,使用, out_demo.jsp,JAVA,属性存在:,属性不存在:,属性不存在:,没有此内容!,标签,标签主要用来将属性保存在四种属性范围之中,语法如下:,设置属性,属性内容,设置对象,属性内容,标签的属性,No.,属性名称,EL,支持,描述,1,value,设置属性的内容,如果为,null,则表示删除属性,2,var,设置属性名称,3,scope,设置属性的保存范围,默认保存在,page,范围之中,4,target,存储的目标属性,5,property,指定的,target,属性,通过,设置属性, set_demo.jsp,JAVA,属性内容:,$info,定义,JavaBean SimpleInfo.java,package,org.KK.jstldemo.vo;,public,class,SimpleInfo ,private,String,content,;,public,String getContent() ,return,content,;,public,void,setContent(String content) ,this,.,content,= content;,设置属性, set_bean.jsp,JAVA,属性内容:,$simple.content,标签,标签在程序中的主要作用是用来删除指定范围中的属性,功能与,removeAttribute(),方法类似,语法如下:,标签的属性,No.,属性名称,EL,支持,描述,1,var,要删除属性的名称,必须指定此名称,2,scope,删除属性的保存范围,默认保存在,page,范围之中,删除属性, remove.jsp,JAVA,属性内容:,$info,标签,标签主要用来处理程序中产生的异常,并进行相关的异常处理,语法如下:,有可能发生异常的语句,标签的属性,No.,属性名称,EL,支持,描述,1,var,用来保存异常信息的属性名称,使用,JSTL,进行异常处理, catch.jsp,JAVA,异常信息:,$errmsg,标签,标签主要是进行判断语句的使用,功能与在程序中使用的,if,语法是一样的,语法如下:,满足条件时执行的语句,标签的属性,No.,属性名称,EL,支持,描述,1,test,用于判断条件,如果条件为,true,,则执行标签体的内容,2,var,保存判断的结果,3,scope,指定判断结果的保存范围,默认是,page,范围,判断操作, if_demo.jsp,JAVA,欢迎,$param.ref,光临!,c:if,test,=,$10,10,比,30,小!,、,、,标签,标签可以提供的功能只是针对于一个条件的判断,如果现在要同时判断多个条件,可以使用:,,但是,标签只能作为,和,的父标签出现。,条件选择,标签体内容(,、,),条件判断,满足条件时执行的语句,当所有,不满足时,执行本标签体内容,多条件判断, choose.jsp,JAVA,num1,属性的内容是,10,!,num1,属性的内容是,20,!,没有一个条件满足!,标签,标签的主要功能为循环控制,可以将集合中的成员进行迭代输出,功能与,Iterator,接口类似,语法如下:,具体的操作代码,标签的属性,No.,属性名称,EL,支持,描述,1,var,用来存放集合中的每一个对象,2,items,保存所有的集合,主要是数组、,Collection,(,List,、,Set,)及,Map,3,varStatus,用于存放当前对象的成员信息,4,begin,集合的开始位置,默认从,0,开始,5,end,集合的结束位置,默认为集合的最后一个元素,6,step,每次迭代的间隔数,默认是,1,输出数组, print_arrays.jsp,JAVA,输出全部:,$mem,、,输出全部(间隔为,2,):,$mem,、,输出前两个:,$mem,、,输出集合, print_list.jsp,JAVA,输出全部:,$mem,、,输出,Map,集合, print_map.jsp,JAVA,c:for
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!