您的位置:首页 > 其它

使用ServletActionContext访问Servlet API

2014-12-23 00:00 429 查看
LoginAction.java

package org.sadhu.app.action;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import javax.servlet.http.Cookie;
import org.apache.struts2.ServletActionContext;
/*
* 使用ServletActionContext访问Servlet API
* 利用此对象的话就不用实现XxxAware接口,但是会与Servlet API直接耦合,不利于高层次的解耦。
* */
public class LoginAction implements Action {
private String username;
private String password;
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String execute() throws Exception
{
ActionContext ctx = ActionContext.getContext();
Integer counter = (Integer)ctx.getApplication().get("counter");
if(counter == null)
{
counter = 1;
}
else
{
counter++;
}
//通过ActionContext设置application范围的属性
ctx.getApplication().put("counter", counter);
//通过ActionContext设置session范围的属性
ctx.getSession().put("user",getUsername());
if(getUsername().equals("sadhu") && getPassword().equals("sadhu"))
{
Cookie c = new Cookie("user",getUsername());
c.setMaxAge(60*60);
//直接获得response对象然后使用。
ServletActionContext.getResponse().addCookie(c);
//通过ActionContext设置request范围的属性
ctx.put("tip","服务器提示,您已经成功的登陆");
return SUCCESS;
}
else
{
ctx.put("tip", "服务器提示,登陆失败");
return ERROR;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐