servlet主要代码package demo;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import javax.imageio.ImageIO;
import javax.sql.*;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.whut.DB.*;public class Show extends HttpServlet { /**
 * Constructor of the object.
 */
public Show() {
super();
} /**
 * Destruction of the servlet. <br>
 */
public void destroy() {

super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println(request.getParameter("filename"));
String filename=request.getParameter("filename");
String archive_no=request.getParameter("archive_no");
String folder_no=request.getParameter("folder_no");
response.setContentType("text/html");
String showImage ="select * from ImageStore where archive_no='"+archive_no+"'and folder_no='"+folder_no+"' and  file_name ='"+filename+"'";
if(filename!=null){
DBConnect con = new DBConnect();
BufferedInputStream inputImage = null;
ServletOutputStream sos =null;
BufferedImage image = null;
JPEGImageEncoder encoder =null;
try{
    ResultSet rs = con.executeQuery(showImage);
    while(rs.next()){
        inputImage = new BufferedInputStream(rs.getBinaryStream("memory")   );
        image = ImageIO.read(inputImage);
        sos = response.getOutputStream();
            encoder =JPEGCodec.createJPEGEncoder(sos);
        encoder.encode(image);
    sos.flush();
    sos.close();
        }
}
    catch(Exception e)
{
    e.printStackTrace();
}
}
else
{

PrintWriter out=response.getWriter();
          out.println("请选择要查看的图片名称!");

}   
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doGet(request,response);
}
public void init() throws ServletException { }}JSP代码
<%@ page language="java" pageEncoding="gb2312"%>
<html>
<head>
<title>showDBImage</title>
<script type="text/javascript" src="PopBox/scripts/PopBox.js"></script>
<script type="text/javascript">
popBoxWaitImage.src = "PopBox/images/spinner40.gif";
popBoxRevertImage = "PopBox/images/magminus.gif";
popBoxPopImage = "PopBox/images/magplus.gif";
</script>
<style type=text/css>
<!--
.PopBoxImageSmall
{
   border: none 0px white;
   cursor: url("http://localhost:8080/showPicture/kjxm/PopBox/images/magplus.cur"), pointer;
}
.PopBoxImageLarge
{
   border: solid thin #CCCCFF;
   cursor: url("http://localhost:8080/showPicture/kjxm/PopBox/images/magminus.cur"), pointer;

-->
</style><img src="../Show?filename=<%=request.getParameter("filename")%>" alt="" class="PopBoxImageLarge" title="Click to magnify/shrink" onclick="Pop(this,50,'PopBoxImageLarge');"/>
</head><body></body>
</html>图片显示出现叉叉
是否是路径问题?

解决方案 »

  1.   

    package demo;
    import java.awt.image.BufferedImage;
    import java.io.BufferedInputStream;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.*;
    import javax.imageio.ImageIO;
    import javax.sql.*;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import com.sun.image.codec.jpeg.JPEGCodec;
    import com.sun.image.codec.jpeg.JPEGImageEncoder;
    import com.whut.DB.*;public class Show extends HttpServlet {/**
    * Constructor of the object.
    */
    public Show() {
    super();
    }/**
    * Destruction of the servlet. <br>
    */
    public void destroy() {super.destroy(); // Just puts "destroy" string in log
    // Put your code here
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    System.out.println(request.getParameter("filename"));
    String filename=request.getParameter("filename");
    String archive_no=request.getParameter("archive_no");
    String folder_no=request.getParameter("folder_no");
    response.setContentType("text/html");
    String showImage ="select * from ImageStore where archive_no='"+archive_no+"'and folder_no='"+folder_no+"' and  file_name ='"+filename+"'";
    if(filename!=null){
    DBConnect con = new DBConnect();
    BufferedInputStream inputImage = null;
    ServletOutputStream sos =null;
    BufferedImage image = null;
    JPEGImageEncoder encoder =null;
    try{
        ResultSet rs = con.executeQuery(showImage);
        while(rs.next()){
            inputImage = new BufferedInputStream(rs.getBinaryStream("memory")  );
            image = ImageIO.read(inputImage);
            sos = response.getOutputStream();
                encoder =JPEGCodec.createJPEGEncoder(sos);
            encoder.encode(image);
        sos.flush();
        sos.close();
            }
    }
        catch(Exception e)
    {
        e.printStackTrace();
    }
    }
    else
    {PrintWriter out=response.getWriter();
              out.println("请选择要查看的图片名称!");} 
    }public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {doGet(request,response);
    }
    public void init() throws ServletException {}}<%@ page language="java" pageEncoding="gb2312"%>
    <html>
    <head>
    <title>showDBImage </title>
    <script type="text/javascript" src="PopBox/scripts/PopBox.js"> </script>
    <script type="text/javascript">
    popBoxWaitImage.src = "PopBox/images/spinner40.gif";
    popBoxRevertImage = "PopBox/images/magminus.gif";
    popBoxPopImage = "PopBox/images/magplus.gif";
    </script>
    <style type=text/css>
    <!--
    .PopBoxImageSmall
    {
      border: none 0px white;
      cursor: url("http://localhost:8080/showPicture/kjxm/PopBox/images/magplus.cur"), pointer;
    }
    .PopBoxImageLarge
    {
      border: solid thin #CCCCFF;
      cursor: url("http://localhost:8080/showPicture/kjxm/PopBox/images/magminus.cur"), pointer;
    }
    -->
    </style><img src="../Show?filename= <%=request.getParameter("filename")%>" alt="" class="PopBoxImageLarge" title="Click to magnify/shrink" onclick="Pop(this,50,'PopBoxImageLarge');"/>
    </head><body></body>
    </html> 
    看没格式化的代码最头疼