山那边是海 发表于 2015-1-18 11:13:40

JAVA网页编程之接纳HttpServlet 完成web文件下载

市场分额,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;
}
for(intj=0;j<b.length;j++){
intk=b;
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;
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的朋友不要 错过了。

若相依 发表于 2015-1-30 16:10:38

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

飘飘悠悠 发表于 2015-2-1 17:39:25

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

老尸 发表于 2015-2-7 12:19:21

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

不帅 发表于 2015-2-18 12:59:51

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

因胸联盟 发表于 2015-3-6 06:45:21

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

小魔女 发表于 2015-3-12 21:51:05

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

灵魂腐蚀 发表于 2015-3-20 03:30:16

Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
页: [1]
查看完整版本: JAVA网页编程之接纳HttpServlet 完成web文件下载