No primary or default constructor found for interface javax.servlet.http.HttpServletRequest

springboot项目的controller遇到这个问题,在运行时导致500报错

是引入的request包不对

在方法头中写入HttpServletRequest对象

@GetMapping("/getItemInf")
    @ResponseBody
    public List<Item> getItemInf(HttpServletRequest req){
        String itemId = req.getParameter("itemId");
        return itemService.selectItemById(itemId);
    }

要引入jakarta的包不能引入javax的包

改变引入之后解决问题 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 这个问题涉及到技术方面,我可以回答。这个错误通常是因为没有正确引入相关的包或者没有正确实现接口导致的。需要检查代码中是否正确引入了相关的包,并且实现了 HttpServletResponse 接口中的所有方法。 ### 回答2: 接口javax.servlet.http.HttpServletResponse是Java Servlet API中的一个接口,它用于封装HTTP响应的功能和属性。根据错误信息"No primary or single unique constructor found for interface javax.servlet.http.HttpServletResponse"的描述,可以推断该错误是由于在创建HttpServletResponse对象时没有找到适当的构造函数引起的。 首先,需要明确一点,接口是不能直接实例化的,因为它们没有具体的实现。在Java中,接口是一种约定,指定了类应该实现的方法。 而javax.servlet.http.HttpServletResponse接口是Servlet规范定义的一个接口,它必须由Servlet容器提供具体的实现类。 因此,我们不需要手动创建HttpServletResponse对象。在编写Servlet程序时,容器会自动创建一个HttpServletResponse对象,并将其作为参数传递给Servlet的service方法。 我们需要在自己的Servlet中通过重写service方法来处理HTTP请求和生成HTTP响应。在service方法中,我们可以使用HttpServletResponse对象来设置响应的状态码、头部信息和响应正文等。 总结来说,错误信息"No primary or single unique constructor found for interface javax.servlet.http.HttpServletResponse"表明我们在代码中错误地尝试创建HttpServletResponse对象。正确的做法是通过Servlet容器自动创建并传递给我们,在service方法中使用该对象来操作HTTP响应。 ### 回答3: 接口javax.servlet.http.HttpServletResponse是Java Servlet API中提供的一个接口,用于封装HTTP响应的功能。这个接口定义了很多方法,包括设置响应头、设置响应状态码、发送重定向、写入响应正文等。 在接口中,没有定义一个主要的或单一的唯一构造函数,因为接口是一种规范,它只定义了方法的签名,而没有实现。因此,我们无法直接实例化一个接口。 当我们编写Servlet程序时,对于HttpServletResponse对象的实例化是由容器(如Tomcat)自动完成的。容器会通过Servlet编程中的doGet()或doPost()方法的参数来传递HttpServletResponse对象的实例。 在Servlet程序中,我们可以直接使用HttpServletResponse对象实例来对HTTP响应进行操作,例如设置响应头、写入响应正文等。对于响应对象的具体实例化,我们不需要手动创建,而是依赖于Servlet容器。 总结来说,接口javax.servlet.http.HttpServletResponse中没有构造函数,因为它只是一个规范,我们在Servlet程序中使用它的实例时,是由容器自动创建和管理的。我们只需要通过编程逻辑来操作这个实例即可。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值