struts2 action에서 request session application을 얻는 방법

4838 단어 신청
네 가지 방법이 있습니다.
처음 두 개는 Map를 얻습니다. 후자는 실제 요청 객체를 얻습니다.
그리고 Map은 요청 객체의 속성을 꺼내서 키-값 쌍으로 만드는 것입니다.
【방법 1】
public class LoginAction {
	private Map request;
	private Map session;
	private Map application;
	
	public String execute() {
		request = (Map)ActionContext.getContext().get("request");
		session = ActionContext.getContext().getSession();
		application = ActionContext.getContext().getApplication();
		request.put("username1", "jingjing1");
		session.put("username2", "jingjing2");
		application.put("username3", "jingjing3");
		return "success";
	}
}
결과를 꺼내



 <body>
    <%
       String username1 = (String)request.getAttribute("username1");
       String username2 = (String)session.getAttribute("username2");
       String username3 = (String)application.getAttribute("username3");
    %>
    <%=username1 %>
    <%=username2 %>
    <%=username3 %>
  </body>
【방법 2】



public class LoginAction implements RequestAware,SessionAware,ApplicationAware {
	private Map<String, Object> request;
	private Map<String, Object> session;
	private Map<String, Object> application;
	
	public void setRequest(Map<String, Object> request) {
		// TODO Auto-generated method stub
		this.request = request;
	}

	public void setSession(Map<String, Object> session) {
		// TODO Auto-generated method stub
		this.session = session;
	}

	public void setApplication(Map<String, Object> application) {
		// TODO Auto-generated method stub
		this.application = application;
	}
	public String execute() {
		request.put("username1", "jingjing11");
		session.put("username2", "jingjing222");
		application.put("username3", "jingjing33");
		return "success";
	}
}
【방법 3】


public class LoginAction {
	private HttpServletRequest request;
	private HttpSession session;
	private ServletContext application;
	public String execute() {
			
		request = ServletActionContext.getRequest();
		session = request.getSession();
		application = session.getServletContext();
		
		//application = ServletActionContext.getRequest().getSession().getServletContext();
		
		request.setAttribute("aaa", "aaa");
		session.setAttribute("bbb", "bbb");
		application.setAttribute("ccc", "ccc");
		
		return "success";
	}
}
【방법 4】


public class LoginAction implements ServletRequestAware {
	private HttpServletRequest request;
	private HttpSession session;
	private ServletContext application;
	
	public void setServletRequest(HttpServletRequest request) {
		// TODO Auto-generated method stub
		this.request = request;
		this.session = request.getSession();
		this.application = session.getServletContext();
	}
	
	public String execute() {		
		request.setAttribute("111", "111");
		session.setAttribute("222", "222");
		application.setAttribute("333", "333");
		return "success";
	}		
}


HttpServletRequest 메소드 요약:
HttpServletRequest 인터페이스는 ServletRequest 인터페이스에서 상속되어 HTTP와 관련된 몇 가지 메소드를 추가합니다.
getScheme() 메서드는 http, https 또는 ftp와 같은 요청된 일정을 반환하고, getServerName() 메서드는 요청을 보낸 서버의 호스트 이름을 반환하고, getServerPort() 메서드는 요청을 보낸 포트 번호를 반환합니다. getContextPath()는 "/"스위치를 사용하지만 "/"로 끝나지 않는 요청된 주소의 루트 디렉터리를 반환합니다. 서버 주소를 가져오는 일반적인 연결 문자열은 String path = request.getContextPath(), String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()입니다. +경로+"/";

getCookies() 쿠키 가져오기 getMethod() get, post 또는 put과 같은 요청 메서드 가져오기 getRequestURL() 요청 URL 가져오기(Uniform Resource Locator) getRequestURI() 요청 URI 가져오기(Uniform Resource Identifier) ​​​​getSession() Get 해당 세션
public HttpSession getSession(), public HttpSession getSession(boolean create), 이 요청과 관련된 현재 유효한 세션을 반환합니다. 이 메서드가 매개변수 없이 호출되면 요청과 연결된 세션이 없으면 새 세션이 생성됩니다. 이 메소드가 부울 매개변수로 호출되면 이 매개변수가 true일 때만 세션이 설정됩니다.

ServletRequestAware와 RequestAware의 차이점
ServletRequestAware - HttpServletRequest 객체에 대한 액세스 제공 RequestAware - Map을 통해 모든 요청 속성에 대한 액세스 제공

좋은 웹페이지 즐겨찾기