zoukankan      html  css  js  c++  java
  • session和el表达式

    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已经定义了足够的函数;
    		|-- 基本不需要自己定义新的函数;
  • 相关阅读:
    C# Redis实战(四)
    C# Redis实战(三)
    C# Redis实战(二)
    C# Redis实战(一)
    C#连接内存数据库redis【1、Redis存读取数据】
    C#连接内存数据库redis【1、安装配置】
    c#根据配置文件反射
    内存数据库:Redis与Memcached的区别
    内存数据库:memcached与redis技术的对比试验
    【转】【涨姿势】支付宝怎么做风险控制?
  • 原文地址:https://www.cnblogs.com/bwcx1375/p/7091650.html
Copyright © 2011-2022 走看看