Java HTTP状态404-/DBinsert
当我在已执行的jsp文件中填写表单并单击“注册”按钮时,它将显示以下输出页面 我的servlet文件代码是Java HTTP状态404-/DBinsert,java,jsp,servlets,tomcat8,Java,Jsp,Servlets,Tomcat8,当我在已执行的jsp文件中填写表单并单击“注册”按钮时,它将显示以下输出页面 我的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
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>
aWebTest
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
数据库插入
数据库插入
dbAccess.DBinsert
数据库插入
/数据库插入
我无法解决此错误。
请帮帮我。我想您确实会将数据发布到Servlet,但只会覆盖
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();
}
}
}
}
感谢您的回复,但是如何通过将受保护的void doGet(…)更改为受保护的void dopost(…)来覆盖dopost方法