我有一个基本的登录页面,该页面接受用户名和密码,并重定向到登录servlet以验证详细信息。

我还有一个过滤器,用于捕获进入登录servlet的所有请求,创建一个新对象,该对象将传入的请求对象作为其参数之一并将其传递。

我已经更改了doPost()方法中的参数以反映它应该接收的新对象。我也反映了服务方法的变化。

但是,我仍然收到一个错误
HTTP状态405-此URL不支持HTTP方法POST。

你能帮我吗?

最佳答案

您已经更改了doPost(...)的签名,因此您的方法不会覆盖defaut doPost(HttpServletRequest, HttpServletResponse),并且不再被调用。缺省方法是被调用的方法。默认的doPost是引发405错误的代码。

不用更改doPost的签名,而是将对象包含在过滤器(request.setAttribute("nameOfMyAttribute", myObject))的请求属性中,然后使用request.getAttribute("nameOfMyAttribute")在servlet的doPost内部检索它。

重要的是:不要将参数与属性混淆。

关于java - 更改doPost()的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24691198/

10-09 04:00