解决servlet用注释时出现了405错误

Servlet3.0配置servlet有两种方式,即使用@WebServlet注释和在web.xml文件中配置。测试注释配置时可能报405错误,原因是继承自HttpServlet的Servlet未重写请求响应处理方法,或父类方法覆盖重写方法。解决办法是重写doGet、doPost且去掉super(…)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在servlet3.0开始,配置servlet有两种方式。

  • 在servlet类中使用@WebServlet注释的进行配置(新方式)
  • 通过在web.xml文件中进行配置

然而我在测试用注释方式进行配置时,运行后报405错误。

//anno代表URL地址
@WebServlet("/anno")
public class DoFormServlet extends HttpServlet {


@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.service(req, resp);
		resp.getWriter().println("采用了注释的方法");
	}
}

VH41sA.md.jpg

出现原因:

  1. 继承自HttpServlet的Servlet没有重写对于请求和响应的处理方法:doGet或doPost等方法;默认调用父类的doGet或doPost等方法;
  2. 父类HttpServlet的doGet或doPost等方法覆盖了你重写的doGet或doPost等方法;
  3. 不管是1或2,父类HttpServlet的doGet或doPost等方法的默认实现是返回状态代码为405的HTTP错误,表示对于指定资源的请求方法不被允许。

解决方法:

重写doGet,doPost并且不要重写super.doGet和doPost方法即去掉super(…)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值