0

I am writing a program to upload and display an image from the database using mysql/servlet/jsp, but while I am running the program I am getting error like

HTTP Status 404 - /Upload4/uploadServlet

type Status report

message /Upload4(projectneme)/uploadServlet

description The requested resource (/Upload4/uploadServlet) is not available.

Apache Tomcat/7.0.12

I am pasting a code for your reference

package com.servlet;

import java.io.IOException;
import java.io.InputStream;
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;

/**
 * Servlet implementation class DisplayServlet
 */
@WebServlet("/DisplayServlet")
public class DisplayServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;

public void init() throws ServletException {

}

/**
 * @see HttpServlet#HttpServlet()
 */
public DisplayServlet() {
    super();
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request,
  HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request,
 HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request,
 HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, 
HttpServletResponse response) throws ServletException, IOException {

    String imageId = request.getParameter("id");
    System.out.println(imageId);
    InputStream sImage;

    // Check if ID is supplied to the request.
    if (imageId == null) {
        // Do your thing if the ID is not supplied to the request.
        // Throw an exception, or send 404, 
   or show default/warning image,   or just ignore it.
        response.sendError(HttpServletResponse.SC_NOT_FOUND); // 404.
        return;
    }

    try{
        Class.forName("com.mysql.jdbc.Driver");
  conn = DriverManager.getConnection("jdbc:mysql://localhost:3306
 /neela",   "root","neela123");
        stmt = conn.prepareStatement
 ("select * from contacts where   contact_id=" + imageId);
        rs = stmt.executeQuery();
        if(rs.next()){
            System.out.println("Inside RS");
            byte[] bytearray = new byte[1048576];
            int size=0;
            sImage = rs.getBinaryStream(4);
            response.reset();
            response.setContentType("image/jpeg");
            while((size = sImage.read(bytearray)) != -1 ){
                response.getOutputStream().
                write(bytearray,0,size);
            }
        }

    } catch (Exception e){
        e.printStackTrace();
    }
}
}

 //FileUploadDBServlet.java
 package com.servlet;

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.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

/**
 * Servlet implementation class FileUploadDBServlet
*/
@WebServlet("/FileUploadDBServlet")
@MultipartConfig(maxFileSize = 10177215) // upload file's size up to 16MB
public class FileUploadDBServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
   
/**
 * @see HttpServlet#HttpServlet()
 */
public FileUploadDBServlet() {
    super();
    }

private String dbURL = "jdbc:mysql://localhost:3306/neela";
private String dbUser = "root";
private String dbPass = "neela123";
 
    protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    // gets values of text fields
    String firstName = request.getParameter("firstName");
    String lastName = request.getParameter("lastName");
     
    InputStream inputStream = null; // input stream of the upload file
     
    // obtains the upload file part in this multipart request
    Part filePart = request.getPart("photo");
    if (filePart != null) {
        // prints out some information for debugging
        System.out.println(filePart.getName());
        System.out.println(filePart.getSize());
        System.out.println(filePart.getContentType());
         
        // obtains input stream of the upload file
        inputStream = filePart.getInputStream();
    }
     
    Connection conn = null; // connection to the database
    String message = null;  // message will be sent back to client
     
    try {
        // connects to the database
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        conn = DriverManager.getConnection(dbURL, dbUser, dbPass);

        // constructs SQL statement
        String sql = "INSERT INTO contacts 
(first_name, last_name, photo)    values (?, ?, ?)";
        PreparedStatement statement = conn.prepareStatement(sql);
        statement.setString(1, firstName);
        statement.setString(2, lastName);
         
        if (inputStream != null) {
            // fetches input stream of the upload file for the blob column
            statement.setBlob(3, inputStream);
        }

        // sends the statement to the database server
        int row = statement.executeUpdate();
        if (row > 0) {
            message = "File uploaded and saved into database";
        }
    } catch (SQLException ex) {
        message = "ERROR: " + ex.getMessage();
        ex.printStackTrace();
    } finally {
        if (conn != null) {
            // closes the database connection
            try {
                conn.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
        // sets the message in request scope
        request.setAttribute("Message", message);
         
        // forwards to the message page
         getServletContext().getRequestDispatcher
 ("/Message.jsp").forward(request, response);
    }
   }
}



// web.xml

  <display-name>upload3</display-name>
  <welcome-file-list>
  <welcome-file>Upload.jsp</welcome-file>

  </welcome-file-list>
    <!--  <servlet>
              <description></description>
               <display-name>DisplayServlet</display-name>
               <servlet-name>DisplayServlet</servlet-name>
              <servlet-class>com.servlet.DisplayServlet</servlet-class>
          </servlet>
               <servlet-mapping>
              <servlet-name>DisplayServlet</servlet-name>
               <url-pattern>/DisplayServlet</url-pattern>
                </servlet-mapping>-->
  <servlet>
    <description></description>
    <display-name>FileUploadDBServlet</display-name>
    <servlet-name>FileUploadDBServlet</servlet-name>
    <servlet-class>com.servlet.FileUploadDBServlet</servlet-class>
 </servlet>

    <servlet-mapping>
       <servlet-name>FileUploadDBServlet</servlet-name>
       <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>
Community
  • 1
  • 1
Neela
  • 9
  • 6

0 Answers0