2014-12-15 7 views
6

Sono assolutamente nuovo in Java.L'interfaccia Java Servlet è prevista qui

Sto creando una Servlet e ottenere l'errore interface is expected here.

Potete per favore farmi capire il problema (s)?

Sto usando IntelliJ 14.

Il mio codice Servlet è il seguente: -

package ERPdetector; 

/** 
* Created by Sinha on 12/15/14. 
*/ 

import javax.servlet.http.*; 
import javax.servlet.*; 
import java.io.*; 

public class ErpServlet implements HttpServlet { 

    public void doGet(HttpServletRequest req,HttpServletResponse res) 
      throws ServletException,IOException 
    { 
     res.setContentType("text/html"); 
     PrintWriter pw=res.getWriter(); 

     String dropdown=req.getParameter("dropdown"); 
     pw.println("You Requested for "+dropdown); 

     pw.close(); 
    } 
} 

Grazie in anticipo.

risposta

6

HttpServlet è una classe astratta, non un'interfaccia - Servlet è un'interfaccia, ma raramente la si implementa direttamente.

basta cambiare questo:

public class ErpServlet implements HttpServlet { 

a

public class ErpServlet extends HttpServlet { 

e si dovrebbe andare bene.

1

HttpServlet è una classe che implementa Servlet. Quindi devi estendere la classe HttpServlet, oppure devi implementare l'interfaccia Servlet. E fai le cose relative a Http manualmente.

HttpServlet ha già eseguito l'override dei metodi dall'interfaccia Servlet. Ha doGet, doPost, doPut come metodi. Se si desidera implementare l'interfaccia servlet, è necessario eseguire l'override di tutti i metodi dell'interfaccia e gestire gli oggetti HttpServletRequest, HttpServletResponse.

+0

si può descrivere questa parte ** Quindi devi estende HttpServlet di classe, o si deve implementa l'interfaccia Servlet. E fai manualmente le cose relative a Http. ** –

+0

Risposta modificata .. –

3

Si dovrebbe usare implements parola chiave solo quando si implementa un interface dal HttpServlet è un abstract class si dovrebbe usare extends parola chiave.

Dal momento che si sta tentando di utilizzare implements parola chiave per un abstract classe (HttpServlet), il vostro IDE sta gettando l'errore.

1

HTTPServlet non è un'interfaccia. Si prega di seguire this example per far funzionare la vostra servlet.

Se si desidera utilizzare la propria implementazione di HTTPServlet di classe, quindi si prega di creare una replica della classe astratta originale vale a dire l'attuazione Interfacce Servlet e ServletConfig così come estendere GenericServlet.

Se si desidera utilizzare SipServlet, è necessario implementare le stesse interfacce della classe SipServlet.

1

Implementazioni -> Interfaccia e Estensioni -> Classe o Classe astratta.

quindi è stata utilizzata la parola chiave implements anziché extends. basta sostituire la riga sottostante nel codice.

public class ErpServlet estende HttpServlet

Grazie