我是Java的新手。
我正在创建一个Servlet并收到错误interface is expected here.
我正在使用IntelliJ 14.
我的Servlet代码如下: -
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();
}
}
先谢谢。
答案 0 :(得分:7)
HttpServlet
是一个抽象类,而不是一个接口 - Servlet
是一个接口,但你很少直接实现它。
只需改变一下:
public class ErpServlet implements HttpServlet {
到
public class ErpServlet extends HttpServlet {
你应该没事。
答案 1 :(得分:3)
仅当您实施implements
时才应使用interface
关键字,因为HttpServlet
是abstract class
,您应该使用extends
关键字。
由于您尝试将implements
关键字用于abstract
类(HttpServlet),因此IDE会抛出错误。
答案 2 :(得分:1)
HttpServlet是一个实现Servlet的类。所以你必须扩展HttpServlet类,或者你必须实现Servlet接口。并手动完成Http相关的东西。
HttpServlet已经覆盖了Servlet接口的方法。它有doGet,doPost,doPut等方法。如果要实现Servlet接口,则必须覆盖所有接口方法并处理HttpServletRequest,HttpServletResponse对象。
答案 3 :(得分:1)
HTTPServlet
不是界面。请关注this example以使您的servlet正常工作。
如果您想使用自己的HTTPServlet
类实现,那么请创建原始抽象类的副本,即实现接口Servlet
和ServletConfig
以及扩展{{3 }}
如果你想使用GenericServlet
,你必须实现与SipServlet
类相同的接口。
答案 4 :(得分:1)
实施 - >接口和 延伸 - >类或抽象类。
所以你使用的是implements关键字而不是extends。只需替换代码中的以下行。
公共类ErpServlet 扩展 HttpServlet
由于