国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Servlet實現代理文件下載功能

2024-07-13 10:14:50
字體:
來源:轉載
供稿:網友

用戶向代理服務器發送請求,代理服務器從后端服務器上獲取文件,并返回給用戶
web.xml:

<servlet>  <servlet-name>BigFile</servlet-name>  <servlet-class>cn.ac.dsp.servlet.BigFile</servlet-class> </servlet>  <servlet-mapping>  <servlet-name>BigFile</servlet-name>  <url-pattern>*.ts</url-pattern> </servlet-mapping> 

servlet:

package cn.ac.dsp.servlet;  import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.io.StringWriter;  import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;  import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.CoreConnectionPNames; import org.apache.http.params.CoreProtocolPNames; import org.apache.log4j.Logger;  import cn.ac.dsp.common.Constant; import cn.ac.dsp.common.SystemParameters;  /**  * 給靜態大文件提供服務的servlet  */ public class BigFile extends HttpServlet {  private static final long serialVersionUID = 1L;  private static final Logger log = Logger.getLogger(BigFile.class);    /**   * @see HttpServlet#HttpServlet()   */  public BigFile() {   super();   // TODO Auto-generated constructor stub  }   /**   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)   */  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {   log.info("request for bigfile");   long startTime = System.nanoTime();   String requestUrl = request.getRequestURI();   //請求的文件名   String filename = requestUrl.substring(requestUrl.lastIndexOf("/"));   HttpClient httpClient = new DefaultHttpClient();   httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, Constant.HttpConnTimeOut);   httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, Constant.SoConnTimeOut);   httpClient.getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, "UTF-8");   //后端服務器的IP   String serverIP = "192.168.101.190";   //后端服務器的文件地址   StringBuilder backUrl = new StringBuilder();   backUrl.append("http://");   backUrl.append(serverIP);   backUrl.append("/LBA/bigfile/");   backUrl.append(filename);   HttpGet httpGet = new HttpGet(backUrl.toString());   httpGet.getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, "UTF-8");   log.info("distribute bigfile to " + backUrl.toString());   HttpResponse backResponse;   try {    backResponse = httpClient.execute(httpGet); //   log.info(backResponse.getParams().getParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET));    HttpEntity httpEntity = backResponse.getEntity();    InputStream in = httpEntity.getContent(); //   BufferedReader br = new BufferedReader(new InputStreamReader(httpEntity.getContent(), "UTF-8"));    byte[] buf = new byte[4096];    int readLength;    response.setCharacterEncoding("UTF-8");    ServletOutputStream out = response.getOutputStream();    while((readLength = in.read(buf)) != -1){     out.write(buf, 0, readLength);    }     in.close();    out.flush();    out.close();   } catch (ClientProtocolException e) {    StringWriter sw = new StringWriter();    e.printStackTrace(new PrintWriter(sw));    log.error("ClientProtocolException when redirect bigfile. " + sw.toString());    } catch (IOException e) {    StringWriter sw = new StringWriter();    e.printStackTrace(new PrintWriter(sw));    log.error("IOException when redirect bigfile. " + sw.toString());    }   long endTime = System.nanoTime();   System.out.println("Response time: " + (endTime-startTime) + " ns");  }   /**   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)   */  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {   // TODO Auto-generated method stub  }  } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿鲁科尔沁旗| 奇台县| 临夏县| 鄂托克前旗| 蓬安县| 五大连池市| 六枝特区| 新平| 石嘴山市| 闽侯县| 文成县| 沙雅县| 视频| 连州市| 巫溪县| 江北区| 光泽县| 舟山市| 敖汉旗| 高雄县| 仁寿县| 额济纳旗| 永济市| 乌拉特后旗| 玉溪市| 新余市| 渭南市| 盐边县| 龙泉市| 茂名市| 多伦县| 射洪县| 那坡县| 永登县| 固阳县| 突泉县| 平南县| 凤台县| 裕民县| 和林格尔县| 宁津县|