サーブレット出力ストリームgetoputStream()

1686 ワード

インスタンスコード:
index.jsp


  
    $Title$
  
  
  

inputStreamServlet.java
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;



@WebServlet(name = "Servlet",urlPatterns = "/download")
public class inputStreamServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String name = request.getParameter("name");

        if(name.equals("name")){
            response.setContentType("application/pdf");//        
            InputStream in = getServletContext().getResourceAsStream("/WEB-INF/a.pdf");//     

            OutputStream out = response.getOutputStream();//     
            writeBytes(in,out);//           
        }
    }
    //writeBytes()    
    private void writeBytes(InputStream in, OutputStream out) throws IOException {
        byte[] buffer= new byte[1024];
        int length = -1;
        while ((length = in.read(buffer))!=-1){
            out.write(buffer,0,length);

        }
        in.close();
        out.close();
    }

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

    }
}