Java servlet中的dowload链接

Java servlet中的dowload链接,java,servlets,Java,Servlets,我正在尝试下面的代码,以便在servlet中创建下载链接。但这是行不通的。请检查或给我另一个代码或方法 public class Downlord1 extends HttpServlet { int BYTES_DOWNLOAD=1024; protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOE

我正在尝试下面的代码,以便在servlet中创建下载链接。但这是行不通的。请检查或给我另一个代码或方法

public class Downlord1 extends HttpServlet {
    int BYTES_DOWNLOAD=1024;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
       response.setHeader("Content-Disposition","attachment;Filename=dp.jpg");
       ServletContext ctx=getServletContext();
       InputStream is=ctx.getResourceAsStream("/images/krishna.jpg");
       int read=0;
       byte[] bytes=new byte[BYTES_DOWNLOAD];
       OutputStream os=response.getOutputStream();
       while((read=is.read(bytes))!=-1)
       {
       os.write(bytes,0, read);

       }
       os.flush();
       os.close();


    } finally {            
        out.close();
    }
}

// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/** 
 * Handles the HTTP <code>GET</code> method.
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
}

/** 
 * Handles the HTTP <code>POST</code> method.
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
}

/** 
 * Returns a short description of the servlet.
 * @return a String containing servlet description
 */
@Override
public String getServletInfo() {
    return "Short description";
}// </editor-fold>

}

将内容类型更改为
图像/jpeg


删除
PrintWriter out=response.getWriter()-它未被使用,并且会导致调用
response.getWriter
多次调用.getOutputStream
时出现问题。

什么不起作用?你期望它做什么,它会做什么?有例外吗?如果是这样,堆栈跟踪是什么?“请检查或给我另一个代码或方法”您是否有机会向我们付款?