本帖最后由 小石姐姐 于 2018-2-8 15:05 编辑
Web阶段总结 EL表达式 EL表达式: EL的概述:表达式语言 简化JSP代码的写法,而且减少<% %> 使用EL的表达式 语法:${ EL表达式 } EL的功能: 获取数据(JSP的) 执行运算 操作WEB开发的常用对象 调用Java中的方法-----很少用 获取数据 ${ name }----------类似于findAttribute("name")
.和[]的区别: []用于有下表的数据,如数组和list集合,用于有属性的数据(map,对象) 如果属性中有
执行运算 可以执行算数运算 逻辑运算:既可以用运算符也可以用缩写
${ n1 + n2 + n3 } <h3>EL执行逻辑运算</h3> ${ n1 < n2 } - ${ n1 lt n2 } <!-- less than --><br/> ${ n1 > n2 } - ${ n1 gt n2 } <!-- great than --><br/> ${ n1 <= n2 } - ${ n1 le n2 } <!-- less equal --><br/> ${ n1 >= n2 } - ${ n1 ge n2 } <!-- great equal --><br/> ${ n1 == n2 } - ${ n1 eq n2 } <!-- equal --><br/>
<h3>EL执行关系运算</h3> ${ n1<n2 && n3 < n4 } - ${ n1<n2 and n3 < n4 }<br/> ${ n1<n2 || n3 < n4 } - ${ n1<n2 or n3 < n4 }<br/> ${ !(n1 < n2) } - ${ not(n1<n2) } <h3>EL执行三元运算</h3> ${ n1 < n2 ? "正确":"错误" } 操作WEB开发常用的对象: pageScope requestScope 获取JSP中域中的数据 sessionScope applicationScope param,paramValues 接收参数. header,headerValues 获取请求头信息 initParam 获取全局初始化参数 cookie WEB开发中cookie pageContext WEB开发中的pageContext. JSTL---JSP标砖的标签库 JSTL1.0 不支持EL表达式 JSTL1.1和1.2类 支持EL表达式 core(核心标签),fmt(国际化标签),xml(XML标签),sql(SQL标签),fn(JSTL提供EL函数库) 使用JSTL: * 引入JSTL的相关的jar包. * 在页面中引入标签库.<%@ taglib uri=”” prefix=””%> JSTL提供的EL函数库:fn MVC设计模式完成转账的功能 设计页面输入三个值:付款人,收款人,转账金额------不能出现付款人的钱被扣但收款人的钱还 没收到 动态开发模式: JSP的开发模式: Servlet缺点:显示HTML页面元素时候麻烦 JSP优点数据显示方便,缺点:在封装数据和处理数据上麻烦 模式一 JSP+JavaBean的优点:显示数据和封装都很方便,缺点:维护很麻烦 模式二 JSP+Servlet+JavaBean优点:JSP用于显示数据JavaBean用于封装处理数据Servlet控制数据 MVC M:模型层Model JavaBean V:视图层View JSP C:控制层Controller Servlet Session部分 Cookie保存300个,有大小限制,Cookie的数据保存在服务器端 Session执行的原理 Session是域对象:有get方法 Session是何时创建和何时销毁? 创建:服务器端第一次调用创建Session 销毁:Session关闭浏览器不销毁,关闭是保存,只是id找不到了 1.session过期默认时间是30分钟,把web.xml的配制文件session设置为0就可以永久保存 2.非正常关闭,正常关闭是序列化到了硬盘 3.手动调用session.invalidate(); 作用范围:多次请求(一次会话) JSP是第二个动态页面: Java Server Pages Java服务器端的页面 学习JSP JSP=HTML+JAVA代码+JSP自身的东西 JSP的脚本 <%! %> :翻译成了Servlet中的成员变量,定义变量,方法,类---不建议 <% %> :翻译成了Servlet中service方法中的内部内容,定义类,变量 <%= %> :翻译成了Servlet中service方法中的out.print(); JSP的自身的东西: 注释 <!--注释 --> //单行 ---------存在JSP源代码中,执行完JSP中 /*多行*/ /**文档*/ <%--JSP自己的注释--%>-------只会存在于JSP的源代码中,翻译成Servlet后, 指令 指令的语法:三个,配制指令,include指令,taglib指令 <%@ 指令名称 属性名称=" 属性值" %> page指令 <%@ page %> 设置JSP的 language:JSP脚本中使用的语言,现在只能写Java contentType:浏览器打开JSP的默认的字符集的编码 pageEncoding: import:在JSP中引入jar包,可以出现多次 extends:设置JSP后默认的类 autoFlush;设置JSP缓存自动刷出 session:设置JSP是否可以直接使用session的 设置全局的错误友好页面的提示 在web.xml中设置error-page在里面设置error-code和location JSP中的include指令:指示JSP包含其他的页面. <%@ include file="logo.jsp" %> <%@ include file="menu.jsp" %> <h1>BODY部分</h1> <%@ include file="footer.jsp" %> JSP中的taglib指令:指示JSP引入标签库. <%@ taglib uri="标签的URI的路径" prefix="标签的别名" %> 内置对象(面试常考) 9大内置对象: request response session application page pageContext out exception page内置对象: 真实对象是Object就是翻译成Servlet后类的引用,是单例的 out内置对象: out和getWriter是不是同一个?区别是什么? 不是out真实对象JspWriter ,response获得Writer是PrintWriter. pagecontext内置对象: 获得其他8个内置对象: 主要在编写编写框架或者通用性很强的代码中 向JSP的4个域中存取数据: jsp的4个域范围: PageScope 当前页面有效 RequestScope 一次请求范围 SessionScope 一次会话范围 ApplicationScope 应用范围 动作标签:列举出6个(面试题) <jsp:forward /> 用于页面转发的 <jsp:include /> 用于页面的包含(动态包含) *****静态包含和动态包含的区别?(<%@ include%>和<jsp:include>) 静态包含:相当于复制源码(相当同一个类) 动态包含:只要运行结果 <jsp:param /> :用于带有路径的标签下,传递参数. <jsp:useBean /> :用于在JSP中使用JavaBean. <jsp:setProperty /> :用于在JSP中向JavaBean设置属性的. <jsp:getProperty /> :用于在JSP中获得JavaBean的属性.
|