在使用注释来配置servlet时,出现了405错误。代码如下:
package _02_annoservlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
@WebServlet("/anno")
public class AnnoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
System.out.println("注解配置更简单");
}
}
错误显示如下:
想了一下,访问servlet没有去访问我自定义的http文件,那么哪里来的http提交格式错误呢?这应该是http的response相应给浏览器的错误信息。
原来,在servlet中少写了service方法,当我的servlet被访问时,就会先创建servlet对象,然后执行init初始化方法,再执行service方法,这是一个必经的过程。
改正后代码:
package _02_annoservlet;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/anno")
public class AnnoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
System.out.println("注解配置更简单");
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("anno的service");
}
}