5

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>

しかし、それは機能しませんでした。コードをトレースすると、サーブレットクラスに到達することはありません。また、このリンクのように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>

何が悪いのかわかりません。

4

2 に答える 2

3

これを達成する方法はいくつかあります。

  1. data in serviceメソッドにデータを入力し、data in属性をcom.Teklabz.Servlets.IndexServlet設定して、そのメソッドに転送することもできます。requestjsp
  2. 使用する場合は、サーブレットのメソッドでloadonstartiupdbからデータを入力してから、アクセス可能なスコープに設定し、 jspに直接アクセスしてそのスコープからデータを取得できます。com.Teklabz.Servlets.IndexServletinit(request,session,context)
  3. リスナーでもこれを行うことができますが、その場合も、何らかのスコープでデータを設定する必要があります。
于 2013-01-08T11:05:29.093 に答える
0

あなたのコードは絶対に正しいです。あなたは注釈@WebListenerを追加する必要があります

  @WebListener
   public class ServletListener implements ServletContextListener{
    //your code
   }
于 2013-01-08T10:55:13.803 に答える