나는 지불 게이트웨이로부터 return url을 가진 하나의 변수를가집니다.리스너의 HttpServletRequest 객체에 액세스
private static String response_url = "http://1.1.1.1:8001/abc/xyz.html";
// private static String response_url = "http://www.something.com/xyz.html";
첫 번째 변수는 프로덕션 환경의 변수이고, 변수에 주석을 추가하고 주석을 제거하고 환경 변수에 따른 주석을 제거합니다.
<action name="viewResponseFile" class="controller.RAction" method="viewResponseFile">
<result name="success">somepage.jsp</result>
</action>
컨트롤러는 xyz.html
에 매핑되고 그것은 payment gateway
에서 반환 URL입니다. 이제 일반화하고 싶습니다.
기존 리스너 클래스에서 해당 변수를 설정하려고합니다.
<listener>
<listener-class>in.com.Initializer</listener-class>
</listener>
나는
RequestURI
를 얻을 수
ServletRequestAware
를 사용하여
HttpServletRequest
을 만들려고하지만 성공이 없었다.
public class Initializer implements ServletContextListener
{
ServletContext context;
public Initializer()
{
}
public void contextInitialized(ServletContextEvent contextEvent)
{
// set-up code
}
public void contextDestroyed(ServletContextEvent contextEvent)
{
}
}
어떻게 이러한 요구 사항을 충족시킬 수 있습니까?
환경 변수 접근 방식의 경우, N 개의 서버에 환경을 설정해야합니다. DB 접근 방식의 경우 단일 URL에 대한 테이블 생성이 가능하지 않습니다. Listener 클래스에서'localhost : 8080 \ project_name \'(동적 호스트 이름)을 선택할 수있는 방법이 없습니까? – piechuckerr
일반적으로 웹 응용 프로그램은 dev와 prod 환경 사이에 다른 설정이 많이 있거나 환경간에 동일하지만 나중에 변경 될 수 있습니다. 따라서 테이블이나 env 변수에서 매개 변수화됩니다. BTW, 단일 URL의 경우 상대 참조 헤더에서 * referer *를 읽을 수 없습니까? –