仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 563|回复: 10
打印 上一主题 下一主题

[学习教程] JAVA网页编程之接纳HttpServlet 完成web文件下载

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:13:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。servlet|web|下载importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
importcom.TopWisdom.framework.util.*;
publicclassWebDownLoadextendsHttpServlet{
publicWebDownLoad(){
}
privateServletConfigconfig;
publicvoidinit(ServletConfigconfig)throwsServletException{
super.init(config);
this.config=config;
}
publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres)throwsServletException{
doGet(req,res);
}
file://获得附件的称号
publicstaticStringgetAttachName(Stringfile_name){
if(file_name==null)return"";
file_name=file_name.trim();
intiPos=0;
iPos=file_name.lastIndexOf("");
if(iPos>-1){
file_name=file_name.substring(iPos+1);
}
iPos=file_name.lastIndexOf("/");
if(iPos>-1){
file_name=file_name.substring(iPos+1);
}
iPos=file_name.lastIndexOf(File.separator);
if(iPos>-1){
file_name=file_name.substring(iPos+1);
}
returnfile_name;
}
file://UTF8转码
publicstaticStringtoUtf8String(Strings){
StringBuffersb=newStringBuffer();
for(inti=0;i<s.length();i++){
charc=s.charAt(i);
if(c>=0&&c<=255){
sb.append(c);
}else{
byte[]b;
try{
b=Character.toString(c).getBytes("utf-8");
}catch(Exceptionex){
System.out.println(ex);
b=newbyte[0];
}
for(intj=0;j<b.length;j++){
intk=b[j];
if(k<0)k+=256;
sb.append("%"+Integer.toHexString(k).toUpperCase());
}
}
}
Strings_utf8=sb.toString();
sb.delete(0,sb.length());
sb.setLength(0);
sb=null;
returns_utf8;
}
file://获得下载文件的实在全路径称号
privateStringgetRealName(HttpServletRequestrequest,Stringfile_name){
if(request==null||file_name==null)returnnull;
file_name=file_name.trim();
if(file_name.equals(""))returnnull;

Stringfile_path=request.getRealPath(file_name);
if(file_path==null)returnnull;
Filefile=newFile(file_path);
if(!file.exists())returnnull;
returnfile_path;
}
file://完成下载
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException{
Stringfile_name=request.getParameter("file_name");
if(file_name==null)file_name="";
file_name=file_name.trim();

InputStreaminStream=null;
Stringattch_name="";

byte[]b=newbyte[100];
intlen=0;
try{
file://获得附件的称号
attch_name=getAttachName(file_name);

file_name=getRealName(request,file_name);
if(file_name==null){
System.out.println("文件不存在,大概克制下载");
return;
}
attch_name=toUtf8String(attch_name);
file://读到流中
inStream=newFileInputStream(file_name);
file://设置输入的格局
response.reset();
response.setContentType("application/x-msdownload");


response.addHeader("Content-Disposition","attachment;filename=""+attch_name+""");
file://轮回掏出流中的数据
while((len=inStream.read(b))>0){
response.getOutputStream().write(b,0,len);
}
inStream.close();
}catch(Exceptione){
if(einstanceofjava.io.FileNotFoundException){
try{
response.sendRedirect("/tip/file_not_found.html");
}
catch(IOExceptionex){
ex.printStackTrace(System.err);
}
}
else{
e.printStackTrace(System.err);
}
}
}
}

进而能拉拢大多数程序员用windows产品。并且从ASP.NETAJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net的,如果跨平台的.net还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。
兰色精灵 该用户已被删除
沙发
发表于 2015-1-20 17:36:12 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
莫相离 该用户已被删除
板凳
发表于 2015-1-21 07:50:56 | 只看该作者
是一种使用者不需花费很多时间学习的语言
再见西城 该用户已被删除
地板
发表于 2015-1-24 11:29:27 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
若相依 该用户已被删除
5#
发表于 2015-1-30 16:10:38 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
飘飘悠悠 该用户已被删除
6#
发表于 2015-2-1 17:39:25 来自手机 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
老尸 该用户已被删除
7#
发表于 2015-2-7 12:19:21 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
不帅 该用户已被删除
8#
发表于 2015-2-18 12:59:51 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
因胸联盟 该用户已被删除
9#
发表于 2015-3-6 06:45:21 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
小魔女 该用户已被删除
10#
发表于 2015-3-12 21:51:05 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
灵魂腐蚀 该用户已被删除
11#
发表于 2015-3-20 03:30:16 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 04:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表