Struts2获取HttpServletRequest实例
作者:-- 发布时间:2019-11-20
在struts2中,可以使用以下两种方法来获取httpservletrequest对象。
1. servletactioncontext
直接从 org.apache.struts2.servletactioncontext 获取 httpservletrequest 对象。
import javax.servlet.http.httpservletrequest;
import org.apache.struts2.servletactioncontext;
public class localeaction{
//business logic
public string execute() {
httpservletrequest request = servletactioncontext.getrequest();
return "success";
}
}
2. servletrequestaware
让你的类实现org.apache.struts2.interceptor.servletrequestaware。
当 struts2 的 “servlet-config” 拦截器的一个action类实现servletrequestaware接口,它会通过一个 httpservletrequest 的引用请求,通过action类的setservletrequest()方法完成。
import javax.servlet.http.httpservletrequest;
import org.apache.struts2.interceptor.servletrequestaware;
public class localeaction implements servletrequestaware{
httpservletrequest request;
//business logic
public string execute() {
string param = getservletrequest().getparameter("param");
return "success";
}
public void setservletrequest(httpservletrequest request) {
this.request = request;
}
public httpservletrequest getservletrequest() {
return this.request;
}
}
struts2 文档中建议使用 servletrequestaware 代替 servletactioncontext。
参考
-
http://struts.apache.org/2.x/docs/how-can-we-access-the-httpservletrequest.htmll
-
http://struts.apache.org/2.0.6/struts2-core/apidocs/org/apache/struts2/interceptor/servletrequestaware.htmll