|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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的话,那么微软还剩的手段就是开源了,呵呵。 |
|