Pengguna mengirimkan permintaan ke server proxy, dan server proxy memperoleh file dari server backend dan mengembalikannya ke pengguna
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> <rerl-pattern>*.
Servlet:
paket cn.ac.dsp.servlet; impor java.io.ioException; impor java.io.inputstream; impor java.io.printwriter; impor java.io.stringwriter; impor javax.servlet.servletException; impor javax.servlet.servletoutputStream; impor javax.servlet.http.httpservlet; impor javax.servlet.http.httpservletRequest; impor javax.servlet.http.httpservletResponse; impor org.apache.http.httpentity; impor org.apache.http.httpresponse; impor org.apache.http.client.clientprotocolexception; impor org.apache.http.client.httpClient; impor org.apache.http.client.methods.httpget; impor org.apache.http.impl.client.defaulthttpClient; impor org.apache.http.params.coreconnectionPnames; impor org.apache.http.params.coreprotocolpnames; impor org.apache.log4j.logger; impor cn.ac.dsp.common.constant; impor cn.ac.dsp.common.systemparameters; / ** * Servlet yang menyediakan layanan ke file besar statis */ kelas publik bigfile memperluas httpservlet {private static final long serialVersionuid = 1l; private static final logger log = logger.getLogger (bigfile.class); / ** * @see httpservlet#httpservlet () */ public bigfile () {super (); // TODO Stub Konstruktor yang Dihasilkan Otomatis}/ ** * @See httpservlet#doGet (permintaan httpservletRequest, httpservletResponse response) */ respons void forclexception (httpsception, "httplequest, httpserVleSponse response) lemparan servletEcception," httpsception {"httplequest, httpservletResponse respon Long StartTime = System.nanoTime (); String requestUrl = request.getRequesturi (); // diminta file 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"; // Alamat file dari Backend Server StringBuilder Backurl = New StringBuilder (); backurl.append ("http: //"); backurl.append (serverip); backurl.append ("/lba/bigfile/"); backurl.Append (nama file); Httpget httpget = httpget baru (backurl.toString ()); httpget.getParams (). setParameter (coreprotocolpnames.http_content_charset, "UTF-8"); log.info ("Distribute BigFile ke" + backurl.toString ()); Httpresponse backresponse; coba {backresponse = httpclient.execute (httpget); // log.info (backresponse.getParams (). getParameter (coreprotocolpnames.http_content_charset)); Httpentity httpentity = backresponse.getEntity (); InputStream in = httpentity.getContent (); // BufferedReader BR = BufferedReader baru (inputStreamReader baru (httpentity.getContent (), "UTF-8")); byte [] buf = byte baru [4096]; int readlength; response.setcharacterencoding ("UTF-8"); ServeLetoutputStream 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 = stringwriter baru (); E.PrintStackTrace (printwriter baru (SW)); log.Error ("ClientProtocolException saat mengarahkan BigFile." + SW.ToString ()); } catch (IoException e) {StringWriter SW = New StringWriter (); E.PrintStackTrace (printwriter baru (SW)); log.Error ("IOException saat mengarahkan BigFile." + SW.ToString ()); } Long endtime = System.nanoTime (); System.out.println ("Waktu Respons:" + (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 } }Referensi: File Unduh Servlet
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.