0

I have inserted an image file in database using a Servlet it is inserted into database but when I tried to display on a JSP page I couldn't get the Image but all text data was retrieved.

This is servlet Code which I used for Insertion of Image

package visitor;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.MultipartConfig;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import jakarta.servlet.http.Part;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.mysql.cj.xdevapi.Statement;

import dbConnection.ConnectionProvider;




@MultipartConfig(maxFileSize = 16177215)
public class VisitApply extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        HttpSession session = request.getSession();
        String compname = (String)session.getAttribute("compname");
        String firstname = request.getParameter("firstname");
        String lastname = request.getParameter("lastname");
        String vemail = request.getParameter("vemail");
        String vphone = request.getParameter("vphone");
        String vdate = request.getParameter("vdate");
        String empname = request.getParameter("empname");
        String empmail = request.getParameter("empmail");
        String city = request.getParameter("city");
        InputStream inputStream = null;
        Part filePart = request.getPart("vimage");
        if(filePart != null){
            System.out.println(filePart.getName());
            System.out.println(filePart.getSize());
            System.out.println(filePart.getContentType());
            inputStream = filePart.getInputStream();
        }
        Connection con = ConnectionProvider.getCon();
        try {
            compname = compname.replaceAll("\\s","");
            PreparedStatement st = con.prepareStatement("use "+compname+"");
            st.executeQuery();
            
            PreparedStatement pst2 = con.prepareStatement("select * from "+compname+"empdetails where empmail = ?");
            pst2.setString(1, empmail);
            ResultSet rs = pst2.executeQuery();
            if(rs.next()) {
                String sql = "insert into "+compname+"avisitors(firstname, lastname, vemail, vphone, vdate, empname, empmail, city, vimage) values(?,?,?,?,?,?,?,?,?)";
                PreparedStatement statement = con.prepareStatement(sql);
                statement.setString(1, firstname);
                statement.setString(2, lastname);
                statement.setString(3, vemail);
                statement.setString(4, vphone);
                statement.setString(5, vdate);
                statement.setString(6, empname);
                statement.setString(7, empmail);
                statement.setString(8, city);
                if(inputStream != null) {
                    statement.setBlob(9, inputStream);
                }
                int row = statement.executeUpdate();
                if(row>0) {
                    response.sendRedirect("visitorform.jsp");
                }else {
                    response.sendRedirect("visitorentry.jsp");
                }
            }else{
                response.sendRedirect("visitorentry.jsp");
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        
    }


type here

}

This is JSP Code for obtaining the image I tried but nothing comes

<%@page import="dbConnection.*"%>
<%@page import="java.sql.*"%>
<%
String compname = (String)session.getAttribute("compname");
Connection con = ConnectionProvider.getCon();
try{
    Statement st = con.createStatement();
    compname = compname.replaceAll("\\s", "");
    String dbuse = "use "+compname+"";
    st.executeQuery(dbuse);
    
    String viewdata = "select * from "+compname+"avisitors";
    PreparedStatement statement = con.prepareStatement(viewdata);
    ResultSet rs = statement.executeQuery();
    if(rs.next()){
%>
    <div class="col-xl-3 col-lg-3 col-md-3 col-sm-4 col-12">
        <figure class="user-card green">
            <figcaption>
                <img src="<%= rs.getBlob(9)%>" alt="VisitorPhoto" class="profile">
                <h5><%=rs.getString(1)%> <%= rs.getString(2)%></h5>
                <h6><%=rs.getString(5) %></h6>
                    <p>Email: <a href="mailto:<%= rs.getString(3)%>"> <%= rs.getString(3)%></a></p>
                    <p>Phone: <a href="tel:<%= rs.getString(4)%>"><%= rs.getString(4)%></a></p>
                <h6>- Employee Details -</h6>
                <p>Name: <b><%= rs.getString(6)%></b></p>
                <p>EMail: <a href="mailto:<%= rs.getString(7)%>"><%= rs.getString(7)%></a></p>

0 Answers0