Я использовал базу данных SQL SERVER, поэтому код ответа соответствует. Все, что вам нужно сделать, это включить тэг <img>
на странице jsp и вызвать сервлет из его атрибута src, такого как
<img width="200" height="180" src="DisplayImage?ID=1">
Здесь 1 - уникальный идентификатор изображения в базе данных, а ID - переменная , Мы получаем значение этой переменной в сервлете. В коде сервлета мы берем вход двоичного потока из правильного столбца в таблице. Это ваше изображение хранится в столбце. В моем коде я использовал третий столбец, потому что мои изображения хранятся в виде двоичных данных в третьем столбце. После извлечения данных входного потока из таблицы мы читаем его содержимое в потоке вывода, чтобы его можно было записать на экран. Вот он
import java.io.*;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.*;
import javax.servlet.http.*;
import model.ConnectionManager;
public class DisplayImage extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException
{
Statement stmt=null;
String sql=null;
BufferedInputStream bin=null;
BufferedOutputStream bout=null;
InputStream in =null;
response.setContentType("image/jpeg");
ServletOutputStream out;
out = response.getOutputStream();
Connection conn = ConnectionManager.getConnection();
int ID = Integer.parseInt(request.getParameter("ID"));
try {
stmt = conn.createStatement();
sql = "SELECT * FROM IMAGETABLE WHERE ID="+ID+"";
ResultSet result = stmt.executeQuery(sql);
if(result.next()){
in=result.getBinaryStream(3);//Since my data was in third column of table.
}
bin = new BufferedInputStream(in);
bout = new BufferedOutputStream(out);
int ch=0;
while((ch=bin.read())!=-1)
{
bout.write(ch);
}
} catch (SQLException ex) {
Logger.getLogger(DisplayImage.class.getName()).log(Level.SEVERE, null, ex);
}finally{
try{
if(bin!=null)bin.close();
if(in!=null)in.close();
if(bout!=null)bout.close();
if(out!=null)out.close();
if(conn!=null)conn.close();
}catch(IOException | SQLException ex){
System.out.println("Error : "+ex.getMessage());
}
}
}
}
После выполнения вашего jsp или html-файла вы увидите изображение на экране.
Я наконец-то решил проблему с помощью pulseaudio, который корректно работал с динамиком Bluetooth, а также поддерживается linphone.
Если кому-то интересно мое резюме, как подключиться к динамикам Bluetooth и совершать звонки с помощью linphone под Raspberry Pi с Raspbian Stretch, посмотрите https://gist.github.com/ Стефана- Вегенера / db61bd83a19b4901a2dbc6d78e237b63