Wie um zu zeigen, eine JSP-Seite mit Servlet, welches Bild in seine Antwort?

Servlet doGet () - code für ein Bild aus der Datenbank und speichern Bild in Antwort

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws 
ServletException, IOException {

//Get userid from session

try {

    //Get photos from database in (image)

    //Init servlet response.
    response.reset();
    response.setBufferSize(DEFAULT_BUFFER_SIZE);
    response.setContentType(image.getContenttype());
    response.setHeader("Content-Length", String.valueOf(image.getLength()));
    response.setHeader("Content-Disposition", "inline; filename=\"" + image.getTitle()
    + "\"");

    //Prepare streams.
    BufferedInputStream input = null;
    BufferedOutputStream output = null;

    try {
        //Open streams.
        input = new BufferedInputStream(image.getPhoto(), DEFAULT_BUFFER_SIZE);
        output = new BufferedOutputStream(response.getOutputStream(),
                 DEFAULT_BUFFER_SIZE);

        //Write file contents to response.
        byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
        int length;
        while ((length = input.read(buffer)) > 0) {
            output.write(buffer, 0, length);
        }
    } finally {
        //Gently close streams.
        output.close();
        input.close();
    }

    //Redirect it to photo page
    RequestDispatcher rd = request.getRequestDispatcher
        ("/webplugin/jsp/profile/photos.jsp");
    rd.forward(request, response);

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

}

Jedoch, Wenn das servlet zeigt die JSP-Seite zeigt es only image und nicht die JSP-Seite.

JSP-code:

... JSP code

<img src="Servlet url">

... JSP code cont...

Welche Ausgabe bekomme ich:

  1. Bekomme ich nur Bild statt Bild im JSP
  2. Wenn ich RequestDispatcher/sendRedirect() bekomme ich folgende Exception java.lang.IllegalStateException: Cannot forward after response has been committed

Frage:

  1. Wie man Bild im JSP statt nur Bild im browser
  2. Wie Sie vermeiden, über Ausnahme?

EDIT: Meine Web.xml sieht so aus

<servlet>
    <servlet-name>Photo Module</servlet-name>
    <servlet-class>app.controllers.PhotoServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Photo Module</servlet-name>
    <url-pattern>/Photos</url-pattern>
</servlet-mapping>
InformationsquelleAutor a k | 2011-06-14
Schreibe einen Kommentar