2015/1/21
## 回顾昨天案例 ## # 模拟购物车; >> 基本步骤;
|-- 显示所有的书籍;
|-- 制作书记列表/模仿数据库;
|-- 参见昨天示例;
|-- 制作查看详情链接;
|-- 参见昨天示例; |-- 显示购物车中的所有商品;
|-- request.getSession(); --- 得到session对象;
|-- 假定购物车的名字 "cart";
|-- 用集合制作购物车;
|-- 可以用泛型限定购买的商品类型;
|-- 遍历;
|-- 先判断!null;
|-- 输出购物车中商品的名字; |-- 制作购买链接;
|-- request.getSession(); --- 得到session对象;
|-- 获取购物车;
|-- 判断,如果是第一次进入,将购物车绑定到session上;
|-- 将商品添加到购物车;
|-- 提供返回链接; # Cookie和Session的关系; >> 当本地Cookie被禁用之后,Session将失效;
|-- 解决方案
|-- 重写URL;
|-- response.encodeURL(String str);
|-- 注意,该方法需要重写所有URL;
|-- 原理:将jsessionID带到超链接里; # Session的生命周期; >> 新建;
|-- 第一次创建; >> 运行;
|-- > 钝化 --- 序列化到磁盘上;
活化 < --- 从磁盘上反序列化到内存中; >> 销毁; ## JSP和EL表达式 ## # 基本概念; >> Java Server Page
|-- 一个可以嵌入java代码和HTML代码的界面;
>> 基本运行流程;
|-- 当客户端第一次访问jsp的时候,服务器会将其中的java抽出编译成为servlet;
|-- 然后分离出HTML代码,显示在浏览器上;
|-- 最后会将编译完成的class文件返回给客户端; # 基本语法; >> JSP表达式;
|-- <%= %> 声明一个表达式,其中不能有分号,因为是用于输出,
内部语句被out.println();包裹;
|-- <% %> 声明一个片段,其中主要存放Java代码;
|-- Java代码片段中支持Java注释; |-- <!-- --> 声明一个注释,会被发送给客户端,
其中如果嵌套<% %>表达式的话,内部的代码会被执行;
但执行完毕的结果依然会被作为HTML的注释发送到客户端; |-- <%-- --%> jsp注释;内部代码在编译时会被忽略;
|-- <%! %> 声明一个变量或方法;内部代码会被放到service方法外部; # JSP指令; >> taglib指令
|-- 导入一个外部的标签库; >> <%@include file="地址" %> --- 静态包含;
|-- 包含一个外部界面;
该指令将被包含的界面中的源码全部获取;
和发起包含的文件一起编译; |-- 动态包含;<jsp:include page="地址"></include>
|-- 包含的两个文件会分别编译; >> <%@ page language="java " import="java.util.*" pageEncoding="UTF-8"%>
|-- import --- 导入需要使用的包;
|-- pageEncoding --- 告知浏览器界面使用哪种编码进行显示;
|-- contentType --- 告知浏览器界面使用哪种编码进行显示;
|-- language --- 声明界面包含的语言,可以不写;
|-- errorPage --- 可以在源码中生成一个Exception对象; >> jsp标签
|-- <jsp:forward page="add"></jsp:forward> 实现转发;
|-- <jsp:param value="20" name="xxx" /> 转发中实现携带参数;
|-- 该标签无法解决中文参数传递的问题; # JSP九大内置对象; >> 基本概念;
|-- 由JSP本身定义好的一些对象,这些对象不需要声明可以直接使用; >> 九个内置对象;
|-- request
> 四大作用域中的一个;
> 作用于每次请求;
|-- response
|-- pageContext
> 四大作用域中的一个;
> 作用于当前页面;
> 可以通过它操作其他三个域对象;
> 可以通过它获取其他八个内置对象;
> 可以依次从四个域范围中找值;
> 实现转发和包含功能; |-- session
> 四大作用域中的一个;
> 作用于每次会话;
|-- exception
|-- application
|-- ServletContext
> 四大作用域中的一个;
> 作用于整个servlet;
|-- config
|-- out
> 在输出是默认输出到页面缓冲区中(默认8KB);
> 可以将buffer关闭,让数据直接输出到界面;
> 也可以写出后直接采用flush();将数据刷到response缓存中;
|-- page # JavaBean
>> 基本概念;
|-- 简单java类
|-- 有一定的规范
|-- 用于封装数据; >> 开发模型;
|-- JSP+JavaBean;
|-- MVC
M: javabean;
V: jsp+html
C: servlet; ## EL表达式 ## # 基本概念;
>> 替代Java代码;
>> 进行算术计算;
>> 从域中搜索值; # 基本格式;
>> ${放在域范围中的变量}
|-- 内部实现原理;
|-- pageContext.findAttribute("值");
>> 只能写在JSP界面上面; >> 在指定的域中搜索;
|-- ${requestScope.name}
|-- ${sessionScope.name}
|-- ${applicationScope.name}
|-- ${pageScope.name} (默认范围,可以不写) >> 两种运算符;
|-- 【.】
> .后跟取值名称;
> 注意 --- EL不支持.调用方法;
|-- 【[]】
> 取值需要加上""/'' ;
> 当对数组进行取值时,可以加也可以不加;
> 对于数组只能使用[]操作; >> 获取集合;
|-- 使用[]获取对应角标元素;
|-- 获取Map集合;
|-- map集合可以用. 后跟字符串获取元素;
|-- 可以用[]跟上""/''获取元素; >> EL的三元运算符;
|-- ${表达式?值1:值2}
|-- ${seesionScope.loginedUser==null ?"未登录":"欢迎"}
|-- EL表达式不支持字符串相关运算,即连接符等用法; # EL的11个内置隐式对象; >> 总结如下;
1.requestScope
2.sessionScope
3.applicationScope
4.pageScope
//--------------通过以上4个内置对象可以对4大域进行访问
//--------------下面的内置对象用处不大,
5.param
6.paramValues 这两个对象封装了表单参数
7.header
8.headerValues 这两个对象封装了HTTP请求头
9.initParam 封装了web.xml中 配置
10.pageContex 封装了 9大内置对象中的 pageContext
11.cookie 封装了cookie信息
# EL函数 >> 基本概念;
|-- 简化页面中静态方法的调用,使用EL函数代替JAVA代码. >> 使用步骤;
|-- 在外部定义Java工具类;
|-- 配置tld文件;
|-- 从tomcat的配置中寻找然后替换相关标签内容;
|-- <uri>
|-- <function>
|-- 在JSP中引入tld文件;
|-- 然后就可以在JSP中调用EL自定义函数; >> 实际使用;
|-- SUN已经定义了足够的函数;
|-- 基本不需要自己定义新的函数;

session和el表达式的更多相关文章

  1. JavaWeb学习之什么JSP、JSP是如何工作的、JSP语言(各种指令和九大内置对象)、EL表达式简单使用(5)

    1.什么JSP * servlet:java编写的处理动态web的技术 * 特点:Java代码中嵌套html代码 * jsp * 特点:HTMl代码中嵌套java代码 * %tomcat%/conf/ ...

  2. JSP简明教程(四):EL表达式语言、JavaBean、Cookie、Session

    EL表达式语言 EL这是Expression Language.的目的是为了简化JSP句法.来看几个例子来清除. ${test} 它会被翻译成<%=test%> ${test.name} ...

  3. 转:el表达式获取map对象的内容 & js中使用el表达式 & js 中使用jstl 实现 session.removeattribute

    原文链接: ①EL表达式取Map,List值的总结 ②在jsp中使用el表达式通过键获得后台的一个map<Long,String>的值 ③在javascript中使用el表达式(有图有真相 ...

  4. JAVAWEB开发之Session的追踪创建和销毁、JSP具体解释(指令,标签,内置对象,动作即转发和包括)、JavaBean及内省技术以及EL表达式获取内容的使用

    Session的追踪技术 已知Session是利用cookie机制的server端技术.当client第一次訪问资源时 假设调用request.getSession() 就会在server端创建一个由 ...

  5. jsp页面获取参数的方法(url解析、el表达式赋值、session取值)【原创】

    最近使用myEclispse做网站,使用jsp+js+css做页面,网站中常用到从列表进入详情页面的跳转,下面对详情页面的值填充方式做一个简单总结: 1.url中使用request获取参数 jsp上方 ...

  6. JSP中,EL表达式向session中取出一个attribute和JSP脚本访问session取出一个attribute,写法有何不同?(转自百度知道)

    EL表达式使用起来会更简洁,假如session中有一个属性A(attrA),那么EL和jsp脚本取值的方式如下: EL表达式:${ sessionScope.attrA } JSP脚本:<%=s ...

  7. java web学习总结(三十一) -------------------EL表达式

    一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...

  8. JavaWeb:EL表达式

    JavaWeb:EL表达式 说明 1.Expression Language语言,一种用于JSP文件中的数据访问的语言. 2.能够简化JSP文件中该数据访问的代码,可用来替代传统的基于<%= % ...

  9. Javaweb学习笔记——EL表达式

    一.前言 EL表达式是什么? 简而言之,可以这样理解,EL表达式全名为:Exprexxsion Language,原先是JSTL 1.0为了方便存取数据而定义的语言,到了JSTL 2.0便正式成为标准 ...

随机推荐

  1. vue项目post、put、delete、get向java后端传数组

    通常我们向后端发送数据有两种方式 get.post,后又restful风格出现,又有put.delete等传参方式.但是对于我们来说他们的传参本质还是只有get和post的两种,即 get.delet ...

  2. 吴裕雄--天生自然C语言开发:强制类型转换

    #include <stdio.h> int main() { , count = ; double mean; mean = (double) sum / count; printf(& ...

  3. Redhat6更改yum源 (转)

    最近虚拟机中安装了redhat6.3企业版,自带的yum用不起来,软件都找不到. 网上搜了一下说是没付钱...,需要改下yum源.操作步骤如下: 1.切换到yum源存放目录[root@rhel6 ~] ...

  4. Python与用户相交互

    今日所得 Python中注释的重要性 Python与用户相交互: 1.输入 2.输出 3.格式化输出 Python的基本数据类型:int,float,str,list,dict,bool 运算符 1. ...

  5. 4)date中的Ymd格式问题

    以下是详细的参数: format 字符 说明 返回值例子日 --- ---d 月份中的第几天,有前导零的 2 位数字 01 到 31D 星期中的第几天,文本表示,3 个字母 Mon 到 Sunj 月份 ...

  6. Python基本了解

    1. 计算机基础知识 CPU : 人类的大脑,运算处理问题 内存 : 临时储存数据,断点数据就会消失,存储数据快 硬盘 : 永久存储各种数据,相对于内存存储速度慢 操作系统 : 本质上是一个软件,用于 ...

  7. 3dmax2014卸载/安装失败/如何彻底卸载清除干净3dmax2014注册表和文件的方法

    3dmax2014提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装3dmax2014失败提示3dmax2014安装未完成,某些产品无法安装,也有时候想重新安装3 ...

  8. MAYA 卸载工具,完美彻底卸载清除干净maya各种残留注册表和文件

    是不是遇到MAYA/CAD/3DSMAX/INVENTOR安装失败?AUTODESK系列软件着实令人头疼,MAYA/CAD/3DSMAX/INVENTOR安装失败之后不能完全卸载!!!(比如maya, ...

  9. 小码哥哥 FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具

    转载地址:http://www.oschina.net/code/snippet_228315_35122?_t_t_t=0.4667952097048127 class User{ private ...

  10. [LC] 104. Maximum Depth of Binary Tree

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...