요청으로부터 서버 이름, 서버 포트 및 ContextPath를 얻기 위해 서블릿을 실행하고 싶습니다. 하지만 사용자 상호 작용을 통해 서블릿을 호출하고 싶지 않습니다. Java 코드로이 서블릿을 실행하고 싶습니다. 가능한지 확실하지 않습니다. 제게 권유를주십시오.사용자가 상호 작용하지 않고 서블릿을 실행할 수있는 방법
답변
URL을 사용하여 서블릿을 요청하는 것만으로는 안됩니다.
더 정교한 사용을 위해 HttpClient을 시도하십시오.
이것이 Chan이 시도하는 것이라면, 그 질문은 'URL 사용'을 만드는 것이고, 그런 요청에 대한 매개 변수가 무엇인지에 대한 질문을 제기한다고 생각합니다. –
그래, 심지어 나는 그것을 지능적으로 추측하려고 노력했다. 첫 번째 부분은 여전히 나에게 명확하지 않다, 나는 ".. 서버 이름 등을 얻는다."를 의미한다. –
기본적으로 서블릿에 요청을하지 않고 시작하도록 요청하려면 다음을 수행하십시오. – pjp
요청에서 정보를 추출하기 위해 일부 코드를 실행하려는 경우, 왜 서블릿을 호출하려고합니까? 어딘가에 메서드를 작성하고 호출하십시오.
또한 서블릿 필터를 사용하여 요청마다이 정보를 추출하고 요청을 처리하는 다른 서블릿이 찾은 다음 사용할 수 있도록 결과를 HttpServletRequest 객체에 속성으로 추가 할 수 있습니다. 당신은 당신이 시작할 때 서블릿 부하를 만들고 싶어 의미하는 경우
, 당신은 web.xml을 구성 이내에을 추가 할 수 있습니다
<servlet>
...
<load-on-startup>1</load-on-startup>
</servlet>
를 서블릿이없이 모든 X 분을 서비스를 호출 같은 일을하는 경우 사용자 상호 작용을하면 아마 다른 것을하려고 할 것입니다.
ServletContextListener
을 사용하면 웹 컨텍스트가 시작된 시점을 청취하고 원하는 코드를 시작할 수 있습니다. 귀하의 답변
http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletContextListener.html
당신도 짐작할 만하지 않습니다. :) –
덕분에 사실, 내 문제는 : 내가 웹 응용 프로그램과 (개의 다른 서버)가 WebService에 있습니다. 웹 응용 프로그램을 호출하여 특정 기간 이후에 웹 서비스를 배치하여 웹 응용 프로그램이 배포되는 위치를 알 수 있도록 웹 서비스에 데이터 (도메인, 포트, 컨텍스트 경로 ..)를 보냅니다.
이 문제를 해결하기 위해 WebService를 호출하는 서블릿을 만들었고이 서블릿을 사용하여 HttpServletRequest 객체가 있고 도메인, 포트, 컨텍스트 경로를 얻을 수 있습니다. 그러면 webservice에 데이터를 보낼 수 있습니다. 하지만 사용자 상호 작용없이이 서블릿을 (특정 기간 후) 실행하는 방법을 모르겠다.
실행으로 무엇을 의미합니까? 서블릿을 인스턴스화하거나 실제로 doX 메소드 중 하나에 충돌합니까? –
당신이하려는 일을 명확히하십시오. – pjp
요청을하려면 URL, 포트 등이 필요합니다. 여기에서 달성하고자하는 기능은 무엇입니까? 그것을 달성 할 수있는 방법이있을 것입니다. 당신이 제안하고있는 메커니즘이 아니라 확신합니다. –