Struts2中使用HttpServletRequest和HttpServletResponse

时间:2023-03-09 20:03:11
Struts2中使用HttpServletRequest和HttpServletResponse

一.非Ioc方式

这种方式主要是利用了com.opensymphony.xwork2.ActionContext类以及org.apache.struts2.ServletActionContext类,具体的方法如下所示。

获得request对象:

1).HttpServletRequest request = ServletActionContext.getRequest ();
2).ActionContext ct= ActionContext.getContext();

HttpServletRequest request=(HttpServletRequest)ct.get(ServletActionContext.HTTP_REQUEST);

获得response对象:
1).HttpServletResponse response= ServletActionContext.getResponse ();
2).ActionContext ct= ActionContext.getContext();
       HttpServletResponse response=(HttpServletResponse )ct.get(ServletActionContext.HTTP_RESPONSE);

二:IOC方式

Action在继承ActionSupport的同时还要实现ServletRequestAware和ServletResponseAware接口

    1. package com.iterator.action;
    2. import javax.servlet.http.HttpServletRequest;
    3. import javax.servlet.http.HttpServletResponse;
    4. import org.apache.struts2.interceptor.ServletRequestAware;
    5. import org.apache.struts2.interceptor.ServletResponseAware;
    6. import com.opensymphony.xwork2.ActionSupport;
    7. public class Struts2GetServletRequestAction extends ActionSupport implements
    8. ServletRequestAware, ServletResponseAware {
    9. private static final long serialVersionUID = 1L;
    10. private HttpServletRequest request;
    11. private HttpServletResponse response;
    12. public void setServletRequest(HttpServletRequest request) {
    13. this.request=request;
    14. }
    15. public void setServletResponse(HttpServletResponse response) {
    16. this.response=response;
    17. }
    18. @Override
    19. public String execute() throws Exception {
    20. System.out.println("requestUsername=" + request.getParameter("username") + ",requestPassword=" + request.getParameter("password"));
    21. return SUCCESS;
    22. }
    23. }