java - 此 URL 不支持 HTTP 方法 GET

标签 java html servlets

   <form method="post"    action="RegisterServletPath">

    Name:<input type="text" name="userName"><br>
    Password:<input type="password" name="password"><br>
    Email Id:<input type="text" name="email"><br>
    Language: <select name="language">
        <option>Hindi</option>
        <option>English</option>
        <option>French</option>
    </select> <br>
    <input type="submit" value="Submit">

  </form>

提交表单后出现如下错误 HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET 这是我的java类。我只定义了 post 方法并以 html 形式调用了 post 方法

   public class RegisterServlet extends HttpServlet {

       private static final long serialVersionUID = 1L;

       public void doPost(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {

            response.setContentType("text/html");
            PrintWriter out = response.getWriter();

            String n = request.getParameter("userName");
            String p = request.getParameter("password");
            String e = request.getParameter("email");
            String c = request.getParameter("language");

            try {

                Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");

                Connection con =     DriverManager.getConnection("jdbc:ucanaccess://D:/eclipse/register.accdb","","");

                PreparedStatement ps = con.prepareStatement("insert into USERDETAILS values(?,?,?,?)");

                ps.setString(1, n);
                ps.setString(2, p);
                ps.setString(3, e);
                ps.setString(4, c);

                int i= ps.executeUpdate();
                if (i > 0) {
                     out.print("You are successfully registered...");   
                }
            }
            //... not relevant here
        }
    }

web.xml 


<display-name>SimpleServletProject</display-name>   
<servlet>
<servlet-name>RegisterServlet</servlet-name>
<servlet-class>org.venkatesh.Servlet.RegisterServlet</servlet-class> 
</servlet>

<servlet-mapping>
<servlet-name>RegisterServlet</servlet-name>
<url-pattern>/RegisterServletPath</url-pattern>
</servlet-mapping>

最佳答案

添加其余的 servlet 代码,我认为您要么使用 doGet 方法并从中调用 super.doGet,要么不使用 doGet 但不幸的是 HttpServlet 中的 doGet 方法被调用。

问题又来了!从哪里调用 doGet 方法?

如果你找不到哪里,那就试试添加

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doPost(request, response);
}

这应该可以解决问题,如果不能,请告诉我我的所有假设是否错误。

关于java - 此 URL 不支持 HTTP 方法 GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26174003/

相关文章:

java - 任务 ':app:compileDebugKotlin' java.io.IOException 执行失败

java - 从异常类型中识别丢失的 jar - Java

javascript - 不使用 event.preventDefault 阻止 html5 表单提交

jsp - 如何将 Unicode 字符作为 JSP/Servlet request.getParameter 传递?

java - 关于读取 jar 文件的错误

java - JSTL - 在 JSP 中创建动态下拉/下拉菜单,从列表中提取数据 (java.util.List)

java - 我应该如何在分层的 Java EE 应用程序中设计插件系统?

java - JPA 存储库应该首选哪个 CDI 范围

html - Chrome 和 Firefox 中的中心表单

html - CSS:在纯 CSS 箭头上制作边框