HTTP 状态 404 - /DBinsert

HTTP Status 404 - /DBinsert

It is a executed jsp file.

当我在执行的 jsp 文件中填写表格并单击注册按钮时,它显示了以下输出页面。

After clicking the signup button, the output page

我的 servlet 文件代码是

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.JOptionPane;

import com.mysql.jdbc.Statement;

/**
 * Servlet implementation class for Servlet: DBinsert
 *
 */
 public class DBinsert extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
   static final long serialVersionUID = 1L;

    /* (non-Java-doc)
     * @see javax.servlet.http.HttpServlet#HttpServlet()
     */
    public DBinsert() {
        super();
    }       

    /* (non-Java-doc)
     * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String fname=request.getParameter("fname");
String sname=request.getParameter("sname");
String user=request.getParameter("uname");
String pwd=request.getParameter("pwd");
String email=request.getParameter("email");
String phone=request.getParameter("phone");
/*int ph=Integer.parseInt(phone);

if (phone.length()!=10) 
        {
    JOptionPane.showMessageDialog(null,"errormsg" );
            String e="Check phone number ";

            request.setAttribute("errormsg", e);
            request.getRequestDispatcher("SignNIIT.jsp").forward(request, response);
        }
        else
        */{
            try {
                Class.forName("com.mysql.jdbc.Driver");
                        Connection con= DriverManager.getConnection("jdbc:mysql://localhost:3306", "root", "");
                        String code="insert into prct.db (lastname,username,password) values (?,?,?)";
                        PreparedStatement ps=con.prepareStatement(code);
                        //ps.setString(1, fname);
                        ps.setString(1, sname);
                        ps.setString(2, user);
                        ps.setString(3, pwd);
                        //ps.setString(5, email);
                        //ps.setString(6, phone);
                        ps.executeUpdate();
                        //JOptionPane.showMessageDialog(null, "Sucessfull");
                    String msg="!!! Registered Sucessfully !!! ";
                        request.setAttribute("data", msg);
                        request.getRequestDispatcher("SignU.jsp").forward(request, response);

            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
        }
    }   

我的 web.xml 文件是

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <display-name>aWebTest</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>DBinsert</display-name>
    <servlet-name>DBinsert</servlet-name>
    <servlet-class>dbAccess.DBinsert</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>DBinsert</servlet-name>
    <url-pattern>/DBinsert</url-pattern>
  </servlet-mapping>
</web-app>

我无法解决这个错误。 请帮助我。

我猜你对你的 Servlet 做了 POST 数据,但只覆盖了 doGet-方法。

尝试覆盖 doPost 方法

相反 web.xml 您可以使用注释(自 servlets 3.0 起)。试试这个代码。

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.JOptionPane;

import com.mysql.jdbc.Statement;

/**
 * Servlet implementation class for Servlet: DBinsert
 *
 */
 @WebServlet(name = "DBinsert", urlPatterns = { "/DBinsert" })
 public class DBinsert extends HttpServlet {
   static final long serialVersionUID = 1L;

    /* (non-Java-doc)
     * @see javax.servlet.http.HttpServlet#HttpServlet()
     */
    public DBinsert() {
        super();
    }       

    /* (non-Java-doc)
     * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String fname=request.getParameter("fname");
String sname=request.getParameter("sname");
String user=request.getParameter("uname");
String pwd=request.getParameter("pwd");
String email=request.getParameter("email");
String phone=request.getParameter("phone");
/*int ph=Integer.parseInt(phone);

if (phone.length()!=10) 
        {
    JOptionPane.showMessageDialog(null,"errormsg" );
            String e="Check phone number ";

            request.setAttribute("errormsg", e);
            request.getRequestDispatcher("SignNIIT.jsp").forward(request, response);
        }
        else
        */{
            try {
                Class.forName("com.mysql.jdbc.Driver");
                        Connection con= DriverManager.getConnection("jdbc:mysql://localhost:3306", "root", "");
                        String code="insert into prct.db (lastname,username,password) values (?,?,?)";
                        PreparedStatement ps=con.prepareStatement(code);
                        //ps.setString(1, fname);
                        ps.setString(1, sname);
                        ps.setString(2, user);
                        ps.setString(3, pwd);
                        //ps.setString(5, email);
                        //ps.setString(6, phone);
                        ps.executeUpdate();
                        //JOptionPane.showMessageDialog(null, "Sucessfull");
                    String msg="!!! Registered Sucessfully !!! ";
                        request.setAttribute("data", msg);
                        request.getRequestDispatcher("SignU.jsp").forward(request, response);

            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
        }
    }
}