您的位置:首页 > 移动开发

在Action中如何得到Servlet中的一些对象如,request,session,application,response

2017-03-29 20:19 856 查看

学习Struts的心得1

在Action中如何得到Servlet中的一些对象如,request,session,application,response

在MyEclipse中如何Install struts2,以及一些技巧

ModelDriver如何简化开发

Struts2如何异常处理

其实对于Action来说,其就相当于可以和jsp,模型java类打交道的Servlet,可以通过注入数据来获取jsp的请求数据,然后也可以在他的方法中使用Servlet中的一些API,来setAttribute啥的,不过他不像Servlet中有方法参数,他必须要获取,最后通过一些业务逻辑控制来return Result,是把,交给对应的物理视图

在Action类中直接通过ActionContext处理

package study.servlet;

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class StrutsServletAction extends ActionSupport {

/**
*
*/
private static final long serialVersionUID = 1L;

/**
* @return
*/
public String execute() {
//通过ActionContext对象来处理Servlet的对象;此时得不到具体的request,session,application对象。
ActionContext actionContext = ActionContext.getContext();
actionContext.put("request", "request:hello");
actionContext.getSession().put("session", "session:hello");
actionContext.getApplication().put("application", "application:hello");
return SUCCESS;
}


}

2.

package study.servlet;

import javax.servlet.ServletContext;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.interceptor.ServletRequestAware;

import org.apache.struts2.interceptor.ServletResponseAware;

import org.apache.struts2.util.ServletContextAware;

import com.opensymphony.xwork2.ActionSupport;

/*

* 通过实现相关接口来获取实例对象

* 必须实现对应的set方法,一调用该action自动完成set注入,然后执行execute

*/

public class ServletAPI2Action extends ActionSupport implements ServletContextAware,ServletRequestAware,ServletResponseAware{

/**
*
*/
private static final long serialVersionUID = 1L;
ServletContext application;
ServletRequest request;
ServletResponse response;
/**
* @return
*/
public String execute() {
application.setAttribute("application", "application:hello2");
request.setAttribute("request","request:hello2");
response.setBufferSize(10000);
return SUCCESS;
}

@Override
public void setServletContext(ServletContext application) {
this.application=application;

}

@Override
public void setServletResponse(HttpServletResponse arg0) {
// TODO Auto-generated method stub
response=arg0;
}

@Override
public void setServletRequest(HttpServletRequest arg0) {
// TODO Auto-generated method stub
request=arg0;
}


}

3.

package study.servlet;

import javax.servlet.ServletContext;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

/*

* 通过ServletActionContext对象直接获取Servlet对象实例

*/

public class GetServletObjectMethodAction3 extends ActionSupport {

/**
*
*/
private static final long serialVersionUID = 1L;

/**
* @return
*/
public String execute() {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
ServletContext application = ServletActionContext.getServletContext();
request.setAttribute("request", "request:hello3");
response.setBufferSize(20000);
application.setAttribute("application", "application:hello3");
return SUCCESS;
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts
相关文章推荐