07-10-18学习心得
来源:互联网 发布:知乎 巅峰科比 编辑:程序博客网 时间:2024/05/29 00:34
一. 今天首先对以前做过的购物车案例一个典型的问题进行了分析.
1.问题
是在查看购物车的页面,对已选购的商品进行删除操作时,出现了最后一个商品删除不了的情况
然后再点击一次删除按钮,就会出现NullPointException.
2.分析
用HttpWatch工具查看,发现问题的原因.原来删除至剩最后一个商品时,再点删除按钮,访问的是上
次还剩一个商品的缓存页面.但实际最后的一个商品已经在后台被删除了.在页面上却显示还有一个商品
删不掉.再点一次删除就会出现NullPointException.
3.解决
解决方法可以在查看购物车的页面设置禁止缓存,问题解决.
二. Session 标签
可以在JSP页面的头指令中写上Session,默认为true.(不写Session标签,那么默认为true)这样在JSP
页面中可以产生session隐含对象.可以直接调用session对象.
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" session="true"%>
如果把session标签的值改为false,那么在JSP页面中就不会产生session的隐含对象.要用
request.getSession();方法得到session对象.request.getSession(true);方法的默认值也为true.
(有时在一个比较大的项目中.为了节省内存开销.不要创建一些无价值的HttpSession对象.需要限定系
统只能从一个Servlet程序开始.如:只有登录成功后才能开启与客户端的会话.这样就可以限定只有一个
Servlet可以用request.getSession()来创建Session对象,其他程序只能用request.getSession(false)
来获得Session对象.)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" session="false"%>
注意:当在头指令当中使用session标签,session="false"后.那面在JSP页面中无论用
request.getSession()怎么设置.那么使用EL表达式都获取不到Session作用域中的值.
三. 用JavaBean+JSP写了一个猜数字游戏.
在调试这个程序中,我发现了我写的程序中出现了一个BUG.我在JSP页面中定义了一个全局变量
count.用来显示玩家一共猜了几次.每次猜错count计数自加1.<%! count=0; %>
这样做的结果是每次当服务器重启之后第一次运行该页面.可以正常进行游戏.而当结束这次会话.
重新开启一个浏览器时,count计数器的值是接着上次访问的次数再进行自加.而重启服务器,程序又能正
常运行.
经过分析后发现是当我结束这次会话时,由于服务器还没有停止.所以我设置的count的值还保存在
服务器端.所以再次开启一个新的会话时,count的值会接着上次访问的次数再进行自加.
解决方法是,把这个count属性写在JavaBean中,JSP页面就是用来显示数据.而且在JSP页面是定义这
样的用来计数的count全局变量是不安全的.
- 07-10-18学习心得
- 07-10-17学习心得
- 2015-12-18 学习心得
- 2014 4 10学习心得
- 10月C++学习心得
- MYSQL学习心得(10) -- 索引
- 2017.9.10 学习心得
- 2017/10/25学习心得
- 2017/10/26学习心得
- 2017/10/29学习心得
- 学习心得
- 学习心得
- 学习心得
- 学习心得
- 学习心得
- 学习心得
- 学习心得
- 学习心得
- jQuery - Traversing遍历器 - find查找
- c# 程序 打开 文件,.exe等
- ASP.NET程序中常用的三十三种代码
- 浅析Linux系统帐户的管理和审计
- 深度剖析E680G应用四.彻底解决LM带来的麻烦
- 07-10-18学习心得
- Asp.NET开发笔记--文本框的数据绑定与操作
- 深度剖析E680G应用五.Telnet与主题
- Asp.net页面之间传递参数的几种方法
- 粗谈Struts+Hibernate+Spring开发——从分层,对接,蔓延的开发过程来看Struts,Hibernate,Spring的整合开发
- 显示BMP位图文件模块
- 关于Linux物理内存管理的理解
- FreeBSD服务器的安装与优化(上)(1)
- 扩展GridView控件(索引) - 增加多个常用功能