Obrazy nie ładują się, jeśli są duże

Przechowuję obrazy w DB za pomocą MEDIUMBLOB. Kiedy próbuję załadować obraz przez serwlet, mogę zobaczyć te obrazy. Jeśli jednak rozmiar obrazu jest duży (1 MB lub więcej), widzę pół lub 3/4 obrazu w przeglądarce.

Kiedy ściągam ten sam obraz i umieszczam go w publicznej sieci web, działa on idealnie. Masz pomysł, jak rozwiązać ten problem? Czy muszę ustawić dowolną zmienną w serwletu lub MySQL?

Kod HTML (wygenerowany przez JSF) wygląda następująco:

<img src="DisplayImage?mainID=drawing" />

Serwlet obrazu wykonuje następujące czynności:

String imgLen = rs1.getString(1);
int len = imgLen.length();
byte[] rb = new byte[len];
InputStream readImg = rs1.getBinaryStream(1);
InputStream inputStream = readImg;
int index = readImg.read(rb, 0, len);
response.reset();
response.setHeader("Content-Length", String.valueOf(len));
response.setHeader("Content-disposition", "inline;filename=/file.png");
response.setContentType("image/png");
response.getOutputStream().write(rb, 0, len);
response.getOutputStream().flush();
Edytuj 1

Kiedy używam poniższego kodu i zapisuję plik na dysku lokalnym, widzę pełny obraz.

String imgLen = rs1.getString(1);
int len = imgLen.length();
rb = new byte[len];
inputStream = rs1.getBinaryStream(1);
while ((read = inputStream.read(rb)) != -1) {
    out.write(rb, 0, read);
}
out.flush();
out.close();
Edytuj 2

Kiedy zapisuję na wpół oglądane obrazy, zauważyłem, że ich rozmiarobrazy to 100 KB. Mój 1 MB obrazu ma rozmiar 100 KB. Dzieje się tak ze wszystkimi obrazami :(

Myślę, że to największa wskazówka, co się dzieje. ALE nie dostaję tego, co jest nie tak.

Edytuj 3

Jeśli usunę poniższe elementy z mojegoweb.xml, Jestem w stanie wyświetlić te obrazy.

<filter>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

Czy mogę je usunąć? Nie zbieram ponownie, dlaczego dokładnie dodałem te ...

Edytuj 4

Mój plik web.xml to

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            60
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
    </welcome-file-list>
    <filter>
        <filter-name>restrict</filter-name>
        <filter-class>com.sac.filter.MyFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>restrict</filter-name>
        <url-pattern>*.xhtml</url-pattern>
    </filter-mapping>
    <filter>
        <filter-name>MyFacesExtensionsFilter</filter-name>
        <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>MyFacesExtensionsFilter</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
    </filter-mapping>

    <servlet>
        <servlet-name>DisplayImage</servlet-name>
        <servlet-class>com.sac.databean.DisplayImage</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>DisplayImage</servlet-name>
        <url-pattern>/DisplayImage</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>SaveMyImage</servlet-name>
        <servlet-class>com.sac.databean.SaveMyImage</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>SaveMyImage</servlet-name>
        <url-pattern>/SaveMyImage</url-pattern>
    </servlet-mapping>
</web-app>

questionAnswers(1)

yourAnswerToTheQuestion