JAVA - 【Struts2】在Action中獲取ServletAPI

方式一:使用ServletActionContext工具類

方式二:繼承接口注入數據



1> 使用ServletActionContext工具類

package xyz.kuoa.web.action;

import javax.servlet.ServletContext;
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 Demo1Action extends ActionSupport {

	private static final long serialVersionUID = 1L;
	
	public String execute(){
		HttpServletRequest request = ServletActionContext.getRequest();
		HttpServletResponse response = ServletActionContext.getResponse();
		ServletContext application = ServletActionContext.getServletContext();
		HttpSession session = request.getSession();
		
		System.out.println(request);
		System.out.println(response);
		System.out.println(application);
		System.out.println(session);
		/*org.apache.struts2.dispatcher.StrutsRequestWrapper@479bedde
		org.apache.catalina.connector.ResponseFacade@7e41b51a
		org.apache.catalina.core.ApplicationContextFacade@7a4092b4
		org.apache.catalina.session.StandardSessionFacade@72eed08b*/
		
		return "success";
	}
}

2> 繼承接口注入數據

package xyz.kuoa.web.action;

import javax.servlet.ServletContext;
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.util.ServletContextAware;

import com.opensymphony.xwork2.ActionSupport;

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

	private static final long serialVersionUID = 1L;
	
	HttpServletRequest request;
	HttpServletResponse response;
	ServletContext application;
	
	public String execute(){
		
		HttpSession session = request.getSession();
		
		System.out.println(request);
		System.out.println(response);
		System.out.println(application);
		System.out.println(session);
		/*org.apache.struts2.dispatcher.StrutsRequestWrapper@1d95277e
		org.apache.catalina.connector.ResponseFacade@7e41b51a
		org.apache.catalina.core.ApplicationContextFacade@456935cc
		org.apache.catalina.session.StandardSessionFacade@5186b46e*/
		
		return "success";
	}

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

	@Override
	public void setServletResponse(HttpServletResponse response) {
		this.response = response;
	}

	@Override
	public void setServletRequest(HttpServletRequest request) {
		this.request = request;
	}
}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章