request 使用时遇到的问题
来源:互联网 发布:手机剪接视频软件 编辑:程序博客网 时间:2024/06/07 07:36
在公司中用的是一个UIFacade类来管理一些东西,我在使用的时候在UIFacade中设置了一个属性request。
代码如下:
public class UIFacade {
protected HttpServletRequest request;
protected HttpServletResponse response;
public String getJsessionId() {
return ";jsessionid=" + request.getSession().getId();
}
}
在使用getJsessionId() 这个方法的时候总是报错,报空指针异常,也就是request.getSession()这个为空,上网查了一些资料,
HttpRequest对象有两种形式的getSession方法调用:
一个是getSession(),
另一个是getSession(boolean isNew)
getSession()相当于getSession(false),
参数为true时,若存在会话则返回该会话,否则新建一个会话。
参数为false时,若存在会话则返回该会话,否则应该返回一个NULL
一个是getSession(),
另一个是getSession(boolean isNew)
getSession()相当于getSession(false),
参数为true时,若存在会话则返回该会话,否则新建一个会话。
参数为false时,若存在会话则返回该会话,否则应该返回一个NULL
我是在用户第一次访问的时候将request存起来的,之后再拿出来用。但这里是比较容易犯错误的,将request存起来的操作,实际上是将request指向request对象,而request对象是会随着每次访问而变化的。这样就会导致出现空指针异常。
解决的方法是,可以克隆一个request对象,然后将request指向那个克隆的request对象,这样这个request对象就不会变化了,但这样的效率不高。
在我遇到的问题中我只想得到session的ID,那我就直接将session的ID存储起来就好了,用户访问的时候session的ID是不会改变的。
修改的代码如下:
public class UIFacade {
protected HttpServletRequest request;
protected HttpServletResponse response;
protected String sessionId;
public String getJsessionId() {
return ";jsessionid=" + sessionId;
}
}
- request 使用时遇到的问题
- 使用python的request.post时遇到的问题
- 使用request.js时遇到的url编码问题
- 关于Request.Url使用遇到的一点问题
- flask表单提交时遇到的问题-bad request(400)
- 关于request遇到的一个问题
- Request.getInputStream()读取数据遇到的问题
- 使用SmartSvn遇到的一个小问题: E175002: OPTIONS request failed
- 使用表单在springMVC的后台上传文件时遇到500错误:The current request is not a multipart request
- 用request获得用户IP遇到的问题。
- Request.Form[""]学习过程中遇到的异常问题
- 微信小程序 豆瓣项目中wx.request遇到的问题
- 使用sourcesafe时遇到的问题
- 使用access时遇到的一个问题
- 使用Dom4j时遇到的两个问题
- 使用VC2005express,时,MFC遇到的问题
- 使用GDB时遇到的问题
- 使用qsort时遇到的问题
- 一些常用的脚本验证集合
- Eval 总结
- Zend Framework ------ PHP框架资料汇总
- 增加部署在Tomcat 6.0中的Java web的运行库
- 单实例设计模式的实现
- request 使用时遇到的问题
- LINUX命令
- Java 5.0 中增强的for循环
- 固定屏幕显示模式 ScreenOrientation(转:http://student.csdn.net/space.php?uid=121497&do=blog&id=19188)
- 告别 Windows Live Spaces
- DataGrid没有数据但是还是显示标头
- ArcGIS Android API 0.1 内部预览版
- Visual Studio中使用宏来添加注释
- 配置dwr2.0框架步骤: