2013-01-08 3 views
5

jsp 페이지에서 JSP의 일부 데이터를 채울 필요가 있기 때문에 JSP 페이지를로드하기 전에 서블릿 클래스를 시작하여 시작하려고합니다. 이 서블릿 클래스에 도달 결코 코드를 추적 할 때 web.xml에 서블릿 매핑은응용 프로그램 시작시 서블릿 시작

<servlet> 
     <servlet-name>Index</servlet-name> 
     <servlet-class>com.Teklabz.Servlets.IndexServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>Index</servlet-name> 
     <url-pattern>/index</url-pattern> 
    </servlet-mapping> 

하지만, 작동하지 않았다. 또한이 link 같은 ServletContextListener 사용하려고했지만 동일한 문제가 발생했습니다.

리스너 코드 :

public class ServletListener implements ServletContextListener{ 

    @Override 
    public void contextInitialized(ServletContextEvent sce) { 
     throw new UnsupportedOperationException("Not supported yet."); 
    } 

    @Override 
    public void contextDestroyed(ServletContextEvent sce) { 
     throw new UnsupportedOperationException("Not supported yet."); 
    } 
} 

의 web.xml 코드 :

<listener> 
     <listener-class>com.techlabz.listener.ServletListener</listener-class> 
    </listener> 

내가 잘못하고있는 중이 야 모르겠어요.

+0

귀하의 질문에 혼란이 있습니다. 작동하지 않는 것이 무엇인지 명확히 알려주십시오. 그리고 무엇을 달성하기를 원하십니까? 도와 드리겠습니다. –

+0

서블릿을 시작하면 무엇을 의미합니까? 컨테이너가 시작할 때 서블릿을로드 할 수 있음 시작시'init' 메소드가 실행될 때를 의미합니다. – amicngh

+1

서블릿으로 이동하거나 제출 한 다음 JSP로 전달하려는 것처럼 들립니다. 그런 식으로 서블릿은 데이터베이스 항목을 처리하고 요청 범위에서 멋진 객체 구조를 준비한 다음 JSP에서이 정보를 가져 와서 표시 할 수 있습니다. – Gimby

답변

3

이 달성 할 수있는 방법은 많습니다 ..

  1. 중 하나는 서비스 방식의 데이터를 채울 수 있습니다 com.Teklabz.Servlets.IndexServlet을 입력 한 다음 request 특성에 데이터를 설정하고 jsp으로 전달하십시오.
  2. 당신은 어떤 접근 범위 (request,session,context)에 직접 액세스하여 다음 com.Teklabz.Servlets.IndexServlet 서블릿의 init 방법으로 DB에서 데이터를 채울 수 loadonstartiup을 사용하고 설정하려면 JSP로 그 범위의 데이터를 얻을.
  3. 리스너에서도이 작업을 수행 할 수 있지만이 경우 일부 범위에서 데이터를 설정해야합니다.
0

코드는 주석 @WebListener에게 추가 절대적으로 right.you 필요가

@WebListener 
    public class ServletListener implements ServletContextListener{ 
    //your code 
    } 
+0

주석은 web.xml에서 정의하는 것을 피하는 또 다른 방법 일뿐입니다. –

관련 문제