簡體   English   中英

HTTP 狀態 405 - 不允許的方法 - 使用 servlet 時

[英]HTTP Status 405 - Method Not Allowed - while using servlet

我的代碼是使用 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瀏覽器中獲得錯誤

您可以使用 Postman 向您的服務器發送 POST 請求,或將 doPost 更改為 doGet

在 HTML 文件標簽中,您沒有提到 method= "post" 所以它默認取值 "get" 請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM