JAVA编程:教您纯Jsp的自界说的单个文件上载代码
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。js 本文是一个纯Jsp的自界说的单个文件上载代码:<%@pagecontentType="text/html;charset=GBK"%>
<%@pageimport="java.io.*"%>
<%@pageimport="java.util.*"%>
<%@pageimport="javax.servlet.*"%>
<%@pageimport="javax.servlet.http.*"%>
<html>
<head>
<title>
upFile
</title>
</head>
<bodybgcolor="#ffffff">
<center>
<%
//界说上载文件的最年夜字节
intMAX_SIZE=102400*102400;
//创立根路径的保留变量
StringrootPath;
//声明文件读进类
DataInputStreamin=null;
FileOutputStreamfileOut=null;
//获得客户真个收集地点
StringremoteAddr=request.getRemoteAddr();
//out.print(remoteAddr);
//取得服务器的名字
StringserverName=request.getServerName();
//out.print(serverName);
//获得jsp文件绝对与根地点的地点
//out.print(request.getServletPath());
//获得互联网程序的相对地点
StringrealPath=request.getRealPath(serverName);
//out.println(realPath);
realPath=realPath.substring
(0,realPath.lastIndexOf(""));
//out.print(realPath);
//创立文件的保留目次"upload"
rootPath=realPath+"upload";
//out.println(rootPath);
//获得客户端上传的数据范例
StringcontentType=request.getContentType();
//out.println
("<p>客户端上传的数据范例=
"+contentType+"</p>");
try{
if(contentType.indexOf
("multipart/form-data")>=0)
{
//读进上传的数据
in=newDataInputStream
(request.getInputStream());
intformDataLength=
request.getContentLength();
if(formDataLength>MAX_SIZE){
out.println
("<P>上传的文件字节数不成以凌驾"
+MAX_SIZE+"</p>");
return;
}
//保留上传文件的数据
bytedataBytes[]=newbyte;
intbyteRead=0;
inttotalBytesRead=0;
//上传的数据保留在byte数组
while(totalBytesRead<formDataLength)
{
byteRead=in.read(dataBytes,
totalBytesRead,formDataLength);
totalBytesRead+=byteRead;
}
//依据byte数组创立字符串
Stringfile=newString(dataBytes);
//out.println(file);
//获得上传的数据的文件名
StringsaveFile=file.substring
(file.indexOf("filename="")+10);
saveFile=saveFile.substring
(0,saveFile.indexOf("
"));
saveFile=saveFile.substring
(saveFile.lastIndexOf("")
+1,saveFile.indexOf("""));
intlastIndex=
contentType.lastIndexOf("=");
//获得数据的分开字符串
Stringboundary=
contentType.substring
(lastIndex+1,contentType.length());
//创立保留路径的文件名
StringfileName=rootPath+saveFile;
//out.print(fileName);
intpos;
pos=file.indexOf("filename="");
pos=file.indexOf("
",pos)+1;
pos=file.indexOf("
",pos)+1;
pos=file.indexOf("
",pos)+1;
intboundaryLocation=
file.indexOf(boundary,pos)-4;
//out.println(boundaryLocation);
//获得文件数据的入手下手的地位
intstartPos=(
(file.substring(0,pos)).getBytes()).length;
//out.println(startPos);
//获得文件数据的停止的地位
intendPos=((file.substring
(0,boundaryLocation)).getBytes()).length;
//out.println(endPos);
//反省上载文件是不是存在
FilecheckFile=newFile(fileName);
if(checkFile.exists()){
out.println("<p>"+saveFile+
"文件已存在.</p>");
}
//反省上载文件的目次是不是存在
FilefileDir=newFile(rootPath);
if(!fileDir.exists())
{
fileDir.mkdirs();
}
//创立文件的写出类
fileOut=newFileOutputStream(fileName);
//保留文件的数据
fileOut.write(dataBytes,startPos,
(endPos-startPos));
fileOut.close();
out.println("<P>"+saveFile+
"文件乐成上载.</p>");
}else{
Stringcontent=request.getContentType();
out.println
("<p>上传的数据范例不是是multipart/form-data</p>");
}
}catch(Exceptionex)
{
thrownewServletException(ex.getMessage());
}
%>
</center>
</body>
</html>
再说说缺点:首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 Java 编程语言的风格十分接近C、C++语言。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
页:
[1]