我想首先在加载jsp页面之前触发servlet类,因为我需要在jsp页面中填充数据库中的一些数据。 web.xml中的Servlet映射
<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>
但它没有用,当跟踪代码时它永远不会到达servlet类。 我也试图像这样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 :(得分:3)
您可以通过多种方式实现这一目标。
com.Teklabz.Servlets.IndexServlet
中填充数据,然后在request
属性中设置数据,然后转发到jsp
。loadonstartiup
,那么您可以在com.Teklabz.Servlets.IndexServlet
servlet的init
方法中填充db中的数据,然后将其设置在某个可访问范围(request,session,context)
中并直接设置访问jsp从该范围获取数据。 答案 1 :(得分:0)
你的代码是完全正确的。你需要添加注释@WebListener
@WebListener
public class ServletListener implements ServletContextListener{
//your code
}