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을 통해 모든 요청 속성에 대한 액세스 제공
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【지금 확인】iOS 앱을 신청할 수 없는, ipa가 작성할 수 없는 문제를 해결하기 위한 Apple 인증국 주위 대응키체인에서 다음과 같은 오류가 표시되며, 이에 따라 AppStore에 업로드 및 deploygate등의 배포 툴에의 앱 배포를 할 수 없는 상태가 되었다. 2016/2/15에 Apple Worldwide Develo...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.