첫 번째 요청보다는 서버 시작시 struts2 작업을 실행해야합니다.Struts2를 사용하여 서버를 시작할 때 액션을 어떻게 실행합니까?
답변
응용 프로그램 시작시 데이터를로드하는 것이 일반적인 작업입니다. 웹에서 몇 가지 예를 찾을 수 있습니다. 다른 답변에서 말했듯이, ServletContextListener (Struts2에만 해당)를 구현해야합니다 ... read a great example here 수 있습니다.
여기서 중요한 것은
은 작업 개념을 이해하는 것입니다 : 이Struts2 MVC
(모델 뷰 컨트롤러) 프레임 워크에서,
Action
가
Controller
합니다 (
Model
의 및 부품)입니다
.
Action
s는 Client
에서 오는 Request
에 의해 호출되며 (모든 요청에서 하나의 액션이 만들어 지므로 스레드로부터 안전합니다).
이것은 클라이언트가 필요하다는 것을 의미합니다. 보통은 브라우저를 클릭하고 PC 앞에서 사람을 의미합니다 ... 그러면 클라이언트 호출이 자동 서버 측 작업을 수행하는 올바른 방아쇠가 아닙니다. 공유 객체에.
물론 lazy-initialitazion
의 일부 양식을 구현할 수 있습니다 (예 : lazy-initialitazion
).사용자 정의 인터셉터의 도움으로) 첫 번째 사용자가 Application 범위에서 어떤 것을 설정하고 다른 사용자가 이미 채워진 객체를 검색 할 수 있도록하는 것이 가장 좋은 방법은 아닙니다 (동시성을 처리해야합니다 초기에 서버를 시작할 때 밤에 서버가 수행 할 수있는 작업을 기다리는 사용자가 첫 번째 사용자가됩니다.
ServletContextListener를 작성하면 웹 응용 프로그램 당 하나만 사용할 수 있으며 응용 프로그램이 배포되면 instatiiated됩니다. 여기
은 서블릿과 JSP의 시작에 post
로드 당신이 서버가 시작될 때로드 할 페이지를 요청할 수 있습니다
아래와 같이 존재한다. 이것은 일반적으로 JSP 파일이
<servlet>
<servlet-name>login</servlet-name>
<jsp-file>/login.jsp</jsp-file>
<load-on-startup>1</load-on-startup>
</servlet>
처음 명중에 컴파일 web.xml
파일을 통해 이루어집니다. 이제 코드는 첫 번째 히트를 기다리지 않고 jsp 파일을 사전 컴파일합니다.
For struts2 you can change programatically in web.xml
<listener>
<listener-class>your listener class</listener-class>
</listener>
은 당신
Loadonstart up에게 도움이 될 수있는이 링크를 참조하십시오. 당신이 당신의 웹 응용 프로그램, 일명 서블릿 컨텍스트가 처음 시작될 때 실행하는 몇 가지 코드를 원하는 경우
당신은 설명과 링크 (그리고 결국 코드)를 주어야합니다 :) 외부 사이트가 다운되면 독자가 대답을 이해할 수 없기 때문에 링크 만 사용하는 것은 권장하지 않습니다 –
는, 당신은이 기술에 의해 제공되는 후크를 활용해야한다. Servlet API는 웹 애플리케이션의 다양한 라이프 사이클 단계에서 코드를 실행하는 데 사용할 수있는 라이프 사이클 후크를 제공합니다. 모든 Struts 2 애플리케이션은 웹 애플리케이션 인 서블릿 API이기 때문에 직접 활용할 수 있습니다.
ServletContextListener 인터페이스는 init 후크 방법을 제공합니다. 이 인터페이스를 구현하고 구현을 web.xml에 등록하기 만하면됩니다.
더 많은 Struts 2가 필요하다면 Struts 2 API 자체에서 무언가를 활용하는 것이 좋습니다.
- 1. 어떻게 php cli를 사용하여 컨트롤러에서 액션을 실행합니까?
- 2. AS3에서 영화를 시작할 때 코드를 어떻게 실행합니까?
- 3. 젠드 서버를 사용하여 localhost에서 .php를 어떻게 실행합니까?
- 4. GUI ServerSocket을 사용하여 서버를 시작할 때 정지합니다.
- 5. 하나의 ioloop에서 pyzmq와 웹 서버를 어떻게 실행합니까?
- 6. 명령 줄에서 PHP 지원 서버를 어떻게 실행합니까?
- 7. 어떻게 명령 프롬프트에서 Django 개발 서버를 실행합니까?
- 8. Fast Scala 컴파일러 원격 서버를 어떻게 실행합니까?
- 9. 어떻게 토네이도 웹 서버를 로컬에서 실행합니까?
- 10. 서버를 다시 시작할 때 여권 세션을 유지하십시오.
- 11. 웹 서버를 다시 시작할 때 MVC 위조 토큰은 어떻게 생존합니까?
- 12. Gephi DB로 서버를 시작할 때 오류가 발생했습니다.
- 13. Db4O - 서버를 다시 시작할 때 DatabaseFileLockedException이 발생했습니다.
- 14. OSGi가 Domino 서버를 시작할 때 아이디어가 없습니다.
- 15. Catalyst 서버를 시작할 때 오류가 발생했습니다.
- 16. 개발 서버를 시작할 때 yesod devel이 실패했습니다.
- 17. 어떻게 이벤트 서버를 시작할 수 있습니까?
- 18. 어떻게 java 프로그램을 사용하여 cygwin을 실행합니까?
- 19. Rails 서버를 시작할 때 MySQL을 시작 하시겠습니까?
- 20. 레일 서버를 시작할 때 오류가 발생했습니다
- 21. Rails 서버를 시작할 때 NodeJs를 시작하십시오.
- 22. JBoss 서버를 시작할 때 Jenkins가 빌드를 중단합니다.
- 23. 레일스 서버를 로컬에서 시작할 때 어떻게됩니까?
- 24. Rails 서버를 시작할 때 문제가 발생했습니다
- 25. juggernaut 서버를 시작할 때 오류가 발생했습니다.
- 26. 사육사 서버가 시작되지만 명령을 사용하여 서버를 시작할 때
- 27. struts2를 사용하여 이미지 업로드
- 28. Struts 액션을 사용하여 핵심 클래스를 어떻게 연결하고 사용해야합니까?
- 29. 레이크 빌드를 어떻게 실행합니까?
- 30. 앱 서버를 시작할 위치
서버 시작시 ACTION을 왜 호출해야합니까? – DarkHorse
응용 프로그램 범위에 저장된 일부 데이터를 미리 초기화해야 사용자가 보낸 첫 번째 요청 이후로 해당 데이터에 액세스하는 아약스 요청이 빠르게 응답해야합니다. – LNyarla