스트럿의 HTTP 참조 헤더 2
-
05-07-2019 - |
문제
struts2 아래에있는 참조 헤더를 어떻게 얻을 수 있습니까? 지금은 ActionSupport 클래스를 사용하고 있으며 ServleTactionContext 객체를 얻거나 ServletRequestAware 인터페이스를 구현할 수없는 것 같습니다. (struts2의 servletrequestaware는 어디에 있습니까?
세션 변수에 저장된 페이지 참조 자로 자동 리디렉션을 설정하려고합니다. 누군가가 OAUTH 인증을 요청하면 세션에 참조자를 저장 한 다음 트위터로 보냅니다. 그들이 허용을 클릭하면 Twitter는 내 Oauth 콜백 URL로 보냅니다. 나는 그곳에서 일하고 (지속적인 액세스 토큰) 세션에 저장된 참조 자로 보내고 싶습니다.
당신이 말할 수 있듯이, 나는 스트럿을 매우 새롭게합니다. 나는 3 시간 이상 자바 문서를 읽고, 인터넷 검색을하고, 그렇지 않으면 나에게 진노를 피하려고 노력했다. 움츠리다
감사!
해결책
행동에서 HTTP 요소를 참조하기 위해 "냉증"으로 간주되지만 필요합니다 ....
org.apache.struts2.interceptor.
ServletRequestAware.setServletRequest(HttpServletRequest request);
인터페이스를 구현하고 작성하십시오 HttpServletRequest
멤버 변수를 한 다음 위의 구현 된 세터의 요청으로 멤버 변수를 설정하십시오. 이제 당신은 요청이 있고 당신은 당신의 request.getHeader("referer")
.
어떤 사람들은 또한 정적 방법을 사용합니다 org.apache.struts2.ServletActionContext.getRequest()
요청을 받으려면. 단위 테스트를 더 어렵게 만들 수 있기 때문에 나쁜 형태로 간주되지만 항상 볼 수 있습니다.