当前位置: 首页 > 知识库问答 >
问题:

HTTP状态405-不允许使用方法-使用servlet时

舒仲渊
2023-03-14

我的代码是使用java servlet和JDBC存储和检索数据库中的信息。程序运行的IDE中没有错误,但行没有插入到数据库中,并且firefox浏览器中出现错误<以下代码来自SERVLET文件

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public class ServletRegister extends HttpServlet{
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException
    {
        res.setContentType("text/html");
        PrintWriter out = res.getWriter("text/html");
        
        String uname = req.getParameter("uname");
        String passwd = req.getParameter("passwd");
        String email = req.getParameter("email");
        int phno = Integer.parseInt(req.getParameter("phno"));
        
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/hack","root","");
            PreparedStatement ps = con.prepareStatement("insert into student values(?,?,?,?)");
            ps.setString(1,uname);
            ps.setString(2,passwd);
            ps.setString(3, email);
            ps.setInt(4, phno);
            int i = ps.executeUpdate();
            if(i>0)
                out.print("Registerd Successfully");
            out.close();
        }catch(Exception e) {
            System.out.println(e);
        }
    }
}



以下代码来自HTML文件

<!DOCTYPE html>
<html>
    <head>
        <title>Registration</title>
    </head>
<body>
    <form action="register">
        <table>
            <tr>
                <td>Enter User Name: <input type="text" name="uname"> </td>
            </tr>
            <tr>
                <td>Enter Password: <input type="password" name="passwd"> </td>
            </tr>
            <tr>
                <td>Enter E-mail: <input type="email" name="email"> </td>
            </tr>
            <tr>
                <td>Enter Phone.no: <input type="number" name="phno" min="6000000000" max="9999999999"></td>
            </tr>
            <tr>
                <td><input type="submit"> &nbsp;&nbsp;&nbsp; <input type="reset"></td>
            </tr>
        </table>
    </form>
</body>
</html>



以下代码来自web。xml文件

  <servlet>
        <servlet-name>RegisterServlet</servlet-name>
        <servlet-class>com.hacker.ServletRegister</servlet-class>
  </servlet>
  <servlet-mapping>
        <servlet-name>RegisterServlet</servlet-name>
        <url-pattern>/register</url-pattern>
  </servlet-mapping>



错误是:在firefox浏览器中获得的错误

共有1个答案

许博
2023-03-14

您可以使用Postman向服务器发送POST请求,或将doPost更改为doGet

 类似资料:
  • 我有一个使用Jersey的非常简单的endpoint。我的URL是静态的,它不需要任何请求参数。看起来是这样的: 但是,每当我请求此URL时,我总是会收到一个HTTP状态代码405-方法不允许。 奇怪的是,如果我更改路径注释并定义一个路径变量,例如路径(“/图表/{blah}”),它就可以正常工作。 有人知道为什么我必须定义一个路径变量才能使其工作吗?我不需要路径变量,添加一个只是为了获得200响

  • 我正在尝试使用Tomcat 7和Jersey 2构建一个简单的REST JSON api。所有的工作都做得很好。但投递/推杆返回了令人恐惧的405。 我知道这是一个很受欢迎的问题。但我已经研究了所有其他答案,它们对我的情况没有帮助。 我正在本地Linux工作站上运行它。我正在使用真正的Oracle JDK、Eclipse Mars、Tomcat 7和Maven来处理依赖关系。 作为同一个应用程序的

  • 我有以下发帖方法, 我正在使用fiddler发布以下请求, 注意:还没有为spring配置安全性。

  • 问题内容: 我打算使用Ajax将跨域请求发送到soap Web服务。Web服务的URL是:http://example1.asmx?op = GetVOD 我的代码: 在IIS 7服务器端,我已经将这些行添加到文件web.config中 当我在Chrome上运行客户端代码时,出现405错误: 有谁知道如何解决这个问题? 预先感谢 问题答案: 听起来像Web DAV正在阻碍。这是删除它的配置: ht

  • 问题内容: 经过研究后,我在问这个问题。我确实遵循了针对此类错误的解决方案,但对我不起作用。在下面的代码中出现错误的任何建议。我正在创建一个REST API,但是当我请求url时却出现405错误。下面是URI正在请求。 下面是代码片段。 web.xml: 问题答案: 将此更改为并尝试,

  • 我正在尝试使用angularJs和$http发布一个表单。post方法。但每当我执行此函数时,它都会给我以下错误:加载资源失败:服务器响应状态为405(不允许使用方法),我不知道该怎么办。(Im使用visual studio 2015)