Servlet爬虫下载器是把第三方资源的url封装成一个InputStream,再通过Servlet中的HttpServletResponse对象将资源数据响应到客户端。整体使用的都是Servlet和Java原生代码。
前端界面如下:
前端中表单传递参数的代码:
<form action="/alice/download" method="post" id="form">
<input type="text" name="url" class="parameter" placeholder="url">
<input type="text" name="fileName" class="parameter" placeholder="file name">
<input type="hidden" name="method" value="downloadFile">
<button id="submit" >submit</button>
</form>
因为在servlet中使用了反射,所以加上了一个隐藏型的输入框,也就是这一句代码
<input type="hidden" name="method" value="downloadFile">
用来传递参数method=downloadFile。
那么后端中的Servlet中的代码是什么样的呢?
我写了两个Servlet,一个通用的servlet—FierceServlet,由子类来继承它。FierceServlet在内部使用反射,通过请求带过来的参数method灵活调用其子类中的方法;
另一个的用于下载的Servlet—DownloadServlet,继承了FierceServlet。Tomcat在运行时,将会调用Servlet中的service方法。FierceServlet继承了HttpServlet,又覆写了service方法,所以Tomcat调用的将会是FierceServlet中的service方法。FierceServlet中的service方法在内部使用反射,通过请求带过来的参数method调用其子类的所有方法,省去了多Servlet的烦琐。
运行效果如图:
感兴趣的可直接在csdn下载"Servlet爬虫下载器.rar"