急求~~Struts2编程中response.addCookie()返回空指针异常的问题的原因和解决方案

在我的Action的execute()函数中,我想把从jsp页面传来的值保存为cookie,结果却抛出了空指针异常execute函数的代码:publicStringexe... 在我的Action的execute()函数中,我想把从jsp页面传来的值保存为cookie,结果却抛出了空指针异常
execute函数的代码:
public String execute(){
System.out.println("action");
if(getUser().equals("liu")&&getPassword().equals("shilei")){
ActionContext.getContext().getSession().put("user", getUser());
Cookie cookie=new Cookie("user",user);
cookie.setMaxAge(60*60);
response.addCookie(cookie);//就是这里出错了
return SUCCESS;
}
return ERROR;
}

执行后的结果
java.lang.NullPointerException
action.LoginAction.execute(LoginAction.java:38)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)

response我是在Action中声明的一个private HttpServletResponse response;
展开
 我来答
股道168
2012-02-23 · TA获得超过584个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:161万
展开全部
我记得structs2要实现implements ServletResponseAware 接口重写
@Override
public void setServletResponse(HttpServletResponse arg0) {
this.response = arg0;
}
private HttpServletResponse response; //添加set方法
//这样就可以获得response了 不会出现空值了
更多追问追答
追问
implements ServletResponseAware需要继承哪一个包啊?
追答
import javax.servlet.http.HttpServletResponse;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
KevinWuNuaa
2012-02-23 · 超过10用户采纳过TA的回答
知道答主
回答量:58
采纳率:100%
帮助的人:22.6万
展开全部
简单说,你的response没初始化,是null,可通过跟获取session相似的方式获得response
追问
那该到底该怎么获取呢?你可以具体的说一下嘛?
追答
Action类需要实现ServletResponseAware接口,struts2框架会负责给你注入request和response.

response = ActionContext.getContext().get(StrutsStatics.HTTP_RESPONSE);这样也行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孙大月半
2012-02-23 · 各种简单家常小菜儿,简单方便又美味
孙大月半
采纳数:109 获赞数:1528

向TA提问 私信TA
展开全部
HttpServletResponse response = (HttpServletResponse)

ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE);
更多追问追答
追问
org.apache.struts2.StrutsStatics.HTTP_RESPONSE的jar包是哪一个啊?
追答
struts-core
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FourQueue
2012-02-23 · TA获得超过1298个赞
知道小有建树答主
回答量:1505
采纳率:0%
帮助的人:816万
展开全部
response 哪来的?
追问
response我是在Action中声明的一个
private HttpServletResponse response;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式