0
我想连接到数据库,并写了一些记录,但我得到这个错误 任何人都可以帮助我纠正它我真的很感激我在Java编程新 这是我的jsp文件:NewFile .JSP为什么我得到这个错误? HTTP状态404 - 未找到
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="/Add" method="post" enctype="multipart/form-data">
Enter news ID: <br>
<input type="text" name="id"><br><br>
Enter title :<br>
<input type="text" name="title"><br><br>
Choose an image :
<input type="file" name="image" required="required">
<br><br>
<input type="submit" value="add news">
</form>
</body>
</html>
这个我Add.java
package com.example.saeid;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
public class Add extends HttpServlet
{
private static final long serialVersionUID = 1L;
private String db_userName = "root";
private String db_Password = "uyhgbv098";
private String db_Name = "my_demo_database";
private String driver = "com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://localhost:3306/";
private Connection getConnection()
{
Connection conn = null;
try
{
Class.forName(driver);
conn = DriverManager.getConnection(
url + db_Name,
db_userName,
db_Password);
}
catch (Exception e)
{
throw new RuntimeException("Failed to obtain database connection.", e);
}
return conn;
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String newsId = request.getParameter("id");
int newsID = Integer.parseInt(newsId);
String newsTitle = request.getParameter("title");
String body = "body";
InputStream inputStream = null;
Part part = request.getPart("image");
inputStream = part.getInputStream();
Connection conn = null;
try
{
conn = getConnection();
String query = "INSERT INTO news (id , title , subm_date , text , image) values (?, ?, NOW() ,? ,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, newsID);
ps.setString(2,newsTitle);
ps.setString(3, body);
ps.setBlob(4, inputStream);
int row = ps.executeUpdate();
if (row > 0)
{
RequestDispatcher rd = request.getRequestDispatcher("NewFile.jsp");
rd.include(request,response);
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
conn.close();
}
catch(SQLException e)
{
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" id="WebApp_ID"
version="3.1">
<display-name>12</display-name>
<welcome-file-list>
<welcome-file>NewFile.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>addServlet</servlet-name>
<servlet-class>com.example.saeid.Add</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>addServlet</servlet-name>
<url-pattern>NewFile</url-pattern>
</servlet-mapping>
你在哪里部署你的servelet。在tomcat或jetty或jboss上?你的应用服务器在哪个端口上收听:8080?当你访问页面http:// localhost:8080/NewFile.jsp时,你的表单动作指向/ Add,但是你的url-pattern是NewFile,你应该告诉我们你做了什么。 –
我猜url-pattern应该是' Add url-pattern>' –
我使用eclipse和tomact,而且我的监听端口是8080。我改变了url模式,但又得到了同样的错误 –