2017-05-27 242 views
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> 

+0

你在哪里部署你的servelet。在tomcat或jetty或jboss上?你的应用服务器在哪个端口上收听:8080?当你访问页面http:// localhost:8080/NewFile.jsp时,你的表单动作指向/ Add,但是你的url-pattern是NewFile,你应该告诉我们你做了什么。 –

+0

我猜url-pattern应该是' Add' –

+0

我使用eclipse和tomact,而且我的监听端口是8080。我改变了url模式,但又得到了同样的错误 –

回答

0

原因之一为404的URL错误写入,连接不正确。 如果您在访问页面localhost:8080/NewFile.jsp时或点击添加时收到404响应,您的表单操作指向/ Add,但您的url-pattern为NewFile。 更改url-pattern为 /Add

+0

我改变了url模式,但又得到了同样的错误 –