Пользователь отправляет запрос на прокси -сервер, а прокси -сервер получает файл с сервера бэкэнд и возвращает его пользователю
web.xml:
<servlet> <servlet-name> bigfile </servlet-name> <serlet-class> cn.ac.dsp.servlet.bigfile </servlet-class> </servlet> <servlet-mapping> <servlet-name> bigfile </servlet-name> <url-pattern>*. ts </url-pattern> </servlet> <url-pattern>*.
Сводлет:
пакет cn.ac.dsp.servlet; импортировать java.io.ioexception; импортировать java.io.inputstream; Импорт java.io.printwriter; импортировать java.io.stringwriter; Импорт javax.servlet.servletexception; импортировать javax.servlet.servletoutputstream; Импорт javax.servlet.http.httpservlet; Импорт javax.servlet.http.httpservletrequest; Импорт javax.servlet.http.httpservletresponse; Импорт org.apache.http.httpentity; Импорт org.apache.http.httpresponse; Импорт org.apache.http.client.clientprotocolexception; Импорт org.apache.http.client.httpclient; Импорт org.apache.http.client.methods.httpget; Импорт org.apache.http.impl.client.defaulthttpclient; Импорт org.apache.http.params.coreconnectionPnames; Импорт org.apache.http.params.coreprotocolpnames; Импорт org.apache.log4j.logger; Импорт cn.ac.dsp.common.constant; импортировать cn.ac.dsp.common.systemparameters; / ** * Сервлет, который предоставляет услуги статическим крупным файлам */ public class bigfile расширяет httpservlet {private static final long long serialversionuid = 1l; Private Static Final Logger log = logger.getLogger (bigfile.class); / ** * @see httpservlet#httpservlet () */ public bigfile () {super (); // TODO Автогенерированный конструктор stub}/ ** * @see httpservlet#doget (httpservletrequest, httpservletresponse response) */ Protected void Doget (httpservletrequest, httpsersersponse response) trows servletexception uexception {log.info effice (restile (restile (restile (restile (restile (restile efply (jog. 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 (имя файла); Httpget httpget = new httpget (backurl.tostring ()); httpget.getParams (). SetParameter (coreProtocolpNames.http_content_charset, "UTF-8"); log.info ("распространять BigFile на" + 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 = новый байт [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 при перенаправлении BigFile." + SW.ToString ()); } catch (ioException e) {stringWriter sw = new StringWriter (); E.printstacktrace (New PrintWriter (SW)); log.Error ("ioException при перенаправлении BigFile." + sw.ToString ()); } long EndTime = System.Nanotime (); System.out.println («Время ответа:» + (endtime-starttime) + "ns"); } / ** * @see httpservlet#dopost (httpservlectrequest, httpservletresponse response) * / protected void dopost (httpservletrequest, httpservletresponsСсылка: Сервлет загрузки файла
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.