Java ServletContextListener错误

Java ServletContextListener错误,java,servlets,jdbc,Java,Servlets,Jdbc,嗨,我有以下servletcontextlistener的代码 import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.http.HttpServlet; public class ContextListener extends HttpServlet im

嗨,我有以下servletcontextlistener的代码

   import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;

public class ContextListener extends HttpServlet implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        ServletContext context=sce.getServletContext();
        String dburl=context.getInitParameter("dbUrl");
        String dbusername=context.getInitParameter("dbUserName");
        String dbpassword=context.getInitParameter("dbPassword");

        DBConnector.createConnection(dburl, dbusername, dbpassword);
        System.out.println("Connection Establised.........");
    }

    public void contextDestroyed(ServletContextEvent sce) {
        DBConnector.closeConnection();
    }

}
和DBConnector类,如下所示

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnector {

    private static Connection con;

    public static void createConnection(String dbUrl,String dbusername,String dbPassword){
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            con=DriverManager.getConnection(dbUrl, dbusername, dbPassword);     
        } catch (Exception ex) {
            ex.printStackTrace();
        }    
    }

    public static Connection getConnection(){
        return con;
    }

    public static void closeConnection(){
        if(con!=null){
            try {
                con.close();
            } catch (SQLException ex) {
                 ex.printStackTrace();
            }
        }

    }
}
在web.xml中,我声明如下

    <?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <context-param>
    <param-name>dbUrl</param-name>
    <param-value>jdbc:oracle:thin:@localhost:1521:XE</param-value>
</context-param>
<context-param>
    <param-name>dbUserName</param-name>
    <param-value>dbUserName</param-value>
</context-param>
<context-param>
    <param-name>dbPassword</param-name>
    <param-value>dbPassword</param-value>
</context-param>
<listener>
    <listener-class>Topical.ContextListener</listener-class>
</listener>

    <servlet>
        <servlet-name>Login</servlet-name>
        <servlet-class>Login</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/Login</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

dbUrl
jdbc:oracle:thin:@localhost:1521:XE
数据库用户名
数据库用户名
数据库密码
数据库密码
Topical.ContextListener
登录
登录
登录
/登录
30
在这里,当我试图运行ContextListener.java时,抛出了一个错误:“类‘Context listener’既没有主方法,也没有在web.xml中指定servlet”

我怎样才能解决这个问题


谢谢

如何运行servlet而不在web.xml中声明为servlet?拆分servlet和上下文侦听器,并在web.xml.Hi Ravindra中声明两者。你能编辑我的代码吗?我是这个servlet概念的新手,我通常用JSP制作所有网页,但我知道mvc会是一个更好的主意,然后转向这个。谢谢你可以谷歌的例子。网络上有很多例子。-下面是一个用于servlet的示例