package com.zj;import java.io.*;
import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class DownloadServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
//PrintWriter out = response.getWriter();
String filename=request.getParameter("filename");
System.out.println(filename);

System.out.println(filename);
response.setHeader("Content-Disposition","attachment; filename="+filename);
String path=this.getServletContext().getRealPath("/Images/"+filename);
FileInputStream fis= new FileInputStream(path);
OutputStream os=response.getOutputStream();
byte [] buf=new byte[1024];
int len=0;
while((len=fis.read(buf))>0) {

os.write(buf, 0, len);
}
os.close();
fis.close();




}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { this.doGet(request, response);
}}这段代码,可以实现多文件下载。。而下面的代码我加了个if就不能完成下载,点击下载的时候直接显示空白。。response.setContentType("text/html");
//PrintWriter out = response.getWriter();
String filename=request.getParameter("filename");
System.out.println(filename);

System.out.println(filename);
if(filename=="a.jpg") {
response.setHeader("Content-Disposition","attachment; filename=a.jpg");
String path=this.getServletContext().getRealPath("/Images/a.jpg");
FileInputStream fis= new FileInputStream(path);
OutputStream os=response.getOutputStream();
byte [] buf=new byte[1024];
int len=0;
while((len=fis.read(buf))>0) {

os.write(buf, 0, len);
}
os.close();
fis.close();
}



}为什么加了if语句就不能显示那个下载的对话框,奇怪了啊!!求解,第一段代码可以正常运行。。

解决方案 »

  1.   

    你用Debug看下是否进入了if语句中,你穿过来的字符串会不会含有空格trim下看看, 字符串比较最好用equals吧,虽然对于字符串==和equals是一样的
      

  2.   

    刚测试了下,进入了if中,但是我发现居然没有执行 response.setHeader("Content-Disposition","attachment; filename=a.jpg");
    这是怎么回事,难道不能放在局部中?这地方没弄明白.求解