对于想了解DWR中获取Session,Request,Response等信息的读者,本文将提供新的信息,我们将详细介绍dw里面获取验证码怎么做,并且为您提供关于Action中获取request、res
对于想了解DWR中获取Session,Request,Response等信息的读者,本文将提供新的信息,我们将详细介绍dw里面获取验证码怎么做,并且为您提供关于Action中获取request、response、session、ASP.NET在底层类库中获取Session C#类中获取Session、ASP.NET在底层类库中获取Session C#类中获取Session 原创、blazeds获取request、response、session的有价值信息。
本文目录一览:- DWR中获取Session,Request,Response等信息(dw里面获取验证码怎么做)
- Action中获取request、response、session
- ASP.NET在底层类库中获取Session C#类中获取Session
- ASP.NET在底层类库中获取Session C#类中获取Session 原创
- blazeds获取request、response、session
DWR中获取Session,Request,Response等信息(dw里面获取验证码怎么做)
在DWR中,因为访问的是普通的java类而不是Servlet,所以想要访问Session看起来就非常困难,不过DWR貌似早就想到了这一点,所以要访问 HttpServletRequest,HttpServletResponse,HttpSession,ServletContext,ServletConfig. 等对象时,只需要在方法中加入此参数,而在调用时选择忽略,因为这个参数是DWR自动填充的,在调试界面我们可以看到括号里有一个AUTO标志,意味着DWR自动填充Action中获取request、response、session
在使用struts2时,经常需要操作HttpServletRequest、HttpServletResponse、HttpSession对象,下面就说说几种获取这几种对象的方法。
1.使用ServletActionContext类
struts2为我们提供了一种最简单的方法获得以上三种对象及其他对象。这就是 org.apache.struts2.ServletActionContext类。我们可以直接使用ServletActionContext类的 getRequest、getResponse方法来获得HttpServletRequest、HttpServletResponse对象,进一步通过HttpServletRequest对象来获取HttpSession对象。代码如下:
package com.common.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class StrutsAction extends ActionSupport {
/**
* 序列号
*/
private static final long serialVersionUID = -6685470801863042575L;
protected HttpServletRequest request= ServletActionContext.getRequest();
protected HttpServletResponse response= ServletActionContext.getResponse();
protected HttpSession session=request.getSession();
}
2.实现struts2 Aware接口
这种方法需要action实现相应的拦截器接口,代码如下。
package com.common;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
public class StrutsAction extends ActionSupport
implements SessionAware, ServletRequestAware, ServletResponseAware
{
protected HttpServletRequest request=null;
protected HttpServletResponse response=null;
protected HttpSession session=null;
public void setServletRequest(HttpServletRequest arg0)
{
this.request=arg0;
this.session=this.request.getSession();
}
public void setServletResponse(HttpServletResponse arg0)
{
this.response=arg0;
}
public void setSession(Map arg0)
{
}
}
3.实现Request Aware接口
该方法与第二种类似,动作类需要实现一个org.apache.struts2.interceptor.RequestAware接口。所不同的是RequestAware将获得一个com.opensymphony.xwork2.util.OgnlValueStack对象,这个对象可以获得response、request及其他的一些信息。代码如下所示:
package com.common;
import java.util.Map;
import org.apache.struts2.*;
import com.opensymphony.xwork2.ActionSupport;
import javax.servlet.http.*;
import com.opensymphony.xwork2.util.*;
import org.apache.struts2.interceptor.*;
public class StrutsAction extends ActionSupport implements RequestAware
{
private Map map;
private HttpServletResponse response;
private HttpServletRequest request;
private HttpSession session;
public void setRequest(Map map)
{
this.map = map;
}
public String execute() throws Exception
{
java.util.Set<String> keys = map.keySet();
//枚举所有的key值。实际上只有一个key:struts.valueStack
for(String key: keys)
System.out.println(key);
//获得OgnlValueStack 对象
OgnlValueStack stack =(OgnlValueStack)map.get("struts.valueStack");
//获得HttpServletResponse对象
response =(HttpServletResponse)stack.getContext().get(StrutsStatics.HTTP_RESPONSE);
request =(HttpServletRequest)stack.getContext().get(StrutsStatics.HTTP_REQUEST);
session = request.getSession();
return null;
}
}
4. 使用ActionContext类
该方法与第1中类似,我们可以通过org.apache.struts2.ActionContext类的get方法获得相应的对象。代码如下:
package com.common;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class StrutsAction extends ActionSupport
{
private HttpServletResponse response;
private HttpServletRequest request;
private HttpSession session;
public String execute() throws Exception
{
ActionContext actionContext = ActionContext.getContext();
response =(HttpServletResponse) actionContext.get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE);
request =(HttpServletRequest)actionContext.get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);
session = request.getSession();
return null;
}
}
这4种方式,一般第1种、第2种用的比较多,也比较方便。具体怎么用还是需要根据项目实际情况选择。
ASP.NET在底层类库中获取Session C#类中获取Session
类库中获取Session首先要添加引用
获取Session
string user = (string)HttpContext.Current.Session["user"];
获取Page
System.Web.UI.Page page = (System.Web.UI.Page)HttpContext.Current.Handler;