论文部分内容阅读
摘要:根据计算机实践教学的需要,分析介绍了在WEB应用服务器GlassFish中,利用jspSmartUpload组件实现文件上传的方法。为实现准确、快速、安全的收取学生课堂作业,提供了一种较为简明的方法。
关键词:JSP;文件上传
中图法分类号:TP393文献标识码:A文章编号:1009-3044(2008)16-21368-03
The Application of JSP Uploading File in Teaching
SHI Ze-quan
(Guandong Forestrical Occupation Technology School, Guangzhou 510520, China)
Abstract:According to the computer practice teaching need, introduc the method of uploading file base on Web Application Server GlassFish, by JspSmartUpload module. In order to realize the accurate, fast ,security collection student classwork, has provided one more concise method.
Key words:JSP; Uploading File
1 引言
在计算机实践教学中,课堂作业是一个非常重要的环节。它不但是课堂教学的延伸和补充,同时,还可以真实地反映课堂教学的效果和了解学生对知识的掌握程度。如何准确、及时地收取每位学生的课堂作业,是摆在教师面前的必须解决的现实问题。回顾过去,在局域网中,曾经使用了软盘、文件夹共享,FTP,NetMeeting,点对点文件传输,多媒体教学软件等方式方法,虽说也可以完成作业的回收,但还是觉得不是十分满意,有时存在文件被删除、复制、打不开或不易上交等现象,达不到预期的效果。利用JSP的文件传输功能,可以克服上述的弊端,实现准确,快速,安全在收取学生课堂作业的目的。
JSP是在传统的网页HTML文件中加入JAVA程序片段和JSP标记而构成的网页,是一种实现普通静态HTML和动态HTML混合编码的网页设计技术,目前已广泛流行。在JSP中上传文件也有多种方法,但都涉及到较复杂的JAVA编程,而利用SUN公司的WEB应用服务器GlassFish和jspSmartUpload组件,可较为轻松的完成文件上传。
2 应用环境的构建
2.1 安装Java EE JDK
Java EE JDK是SUN公司开发的基于Java编程环境的JSP应用产品。主要包含Java平台JDK和开源的Java EE应用服务器GlassFish。该软件的最新版本可从http://java.sun.com/javaee/downloads/index.jsp页面免费下载。名称为Java EE 5 SDK Update 4 (with JDK 6 U4) for Windows。在Windows下,直接运行下载的java_ee_sdk-5_04-windows.exe文件,根据安装向导安装到指定的目录,例如安装到D:\sun\sdk。安装完成后从开始菜单中启动缺省服务器(Start Default Server),在地址栏中http://localhost/或http://localhost:8080/,如果成功显示默认的网页,则Java EE JDK安装成功。
2.2 添加jspSmartUpload组件
jspSmartUpload组件可以从www.jspsmart.com网站下载,压缩包的名字是jspSmartUpload.zip。解压后,将WEB-INF中的classes文件夹复制到domains\domain1\lib中。这样就可以在JSP文件中使用jspSmartUpload组件中的JavaBean了。
3 上传文件的实现
在GlassFish服务器文件夹domains\domain1\docroot中创建三个文件index.html、myupload.jsp和show.jsp,分别用于显示上传页面、处理文件传输和显示传输结果。其中index.html和myupload.jsp是必不可少的。
3.1 显示上传页面
当用户通过URL访问WEB服务器时,显示在用户机上的页面文件。在包含文件域的表单中,ENCTYPE属性值必须为multipart/form-data ,METHOD属性值必须为post。
index.html文件内容如下:
<html>
<head>
<title>==作业提交==</title>
</head>
<body>
<FORM ACTION="myupload.jsp" ENCTYPE="multipart/form-data" METHOD="POST" >
<table border=0 cellpadding=10 cellspacing=18 width=400 bgcolor="#CC99FF" align=center>
<td height=90 bgcolor=#00FFCC align=center >
请选择要提交的文件: <p>
<input id="file_field" type="file" name="file" size="50" > <p>
<input type="submit" name="Submit" value="提交作业" >
</td>
</table>
</form>
</body>
3.2 处理文件传输
WEB服务器收到用户上传文件的请求后,导入com.jspsmart.upload.*包,然后使用该包中的类方法传送文件和保存文件到指定的文件夹。
myupload.jsp文件内容如下:
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page language="java" import="com.jspsmart.upload.*"%>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<HTML>
<BODY>
<H1>显示提交结果</H1>
<HR>
<%
mySmartUpload.initialize(pageContext);
mySmartUpload.upload();
try {
mySmartUpload.save("d:/upload");
out.println("作业提交成功.");
} catch (Exception e) {
out.println(e.toString());
}
%>
</BODY>
</HTML>
3.3 返馈上传结果
实际上,经过“处理文件传输”阶段后,已经完成了文件的上传。返馈上传结果的目的是让学生进一步明确已经提交作业文件的情况。这里采用读取D:/upload文件夹内容的方法,完成上传信息的反馈。需要强调的是,在调用show.jsp之前,必须在myupload.jsp的BODY中添加下列代码:
<FORM ACTION="show.jsp" ENCTYPE="multipart/form-data" METHOD="POST" >
<input type="submit" name="Submit" value="查看已提交的作业" >
</FORM>
而show.jsp文件内容如下:
<%@page language="java" contentType="text/html;charset=GB2312"%>
<%@ page import="java.io.*" %>
<html>
<head>
<title>显示文件夹内容</title>
</head>
<body>
<%
File path = new File("D:/upload");
File file[] = path.listFiles();
for(int i=0;i<file.length;i )
{
out.println(file[i].getName() "<br/>");
}
%>
</body>
</html>
4 问题探讨
4.1 文件名
如果上传的文件相同,则新上传的文件会覆盖已有文件。因此,要特别强调文件名的不同,最好用姓名加编号。
4.2 上传文件的大小限制
在调用mySmartUpload .upload()方法之前,可以采用mySmartUpload.setTotalMaxFileSize()方法设定上传文件的最大值。如:mySmartUpload.setTotalMaxFileSize(1000000);限定上传的文件在1MB内。
4.3 记录上传文件信息
通过request对象中的getRemoteHost()方法获取用户的机器名或IP地址,并与上传的文件名一起写入一个指定的文件当中。
5 结束语
在Java EE JDK环境下,通过直接使用jspSmartUpload组件中的JavaBean,采用几行Java代码,便可以快速实现课堂作业的提交,大大提高了工作效率。
参考文献:
[1] 邓子云.JSP网络编程从基础到实践[M].北京:电子工业出版社.2005,(9).
[2] 戴洋,陈海.在JSP中实现文件上传下载的相关问题及改进方案[J].计算机与现代化,2006,(10).
[3] 汪健峰,张永忠,在Java Web开发中实现文件上载[J].计算机时代, 2006,(09).
关键词:JSP;文件上传
中图法分类号:TP393文献标识码:A文章编号:1009-3044(2008)16-21368-03
The Application of JSP Uploading File in Teaching
SHI Ze-quan
(Guandong Forestrical Occupation Technology School, Guangzhou 510520, China)
Abstract:According to the computer practice teaching need, introduc the method of uploading file base on Web Application Server GlassFish, by JspSmartUpload module. In order to realize the accurate, fast ,security collection student classwork, has provided one more concise method.
Key words:JSP; Uploading File
1 引言
在计算机实践教学中,课堂作业是一个非常重要的环节。它不但是课堂教学的延伸和补充,同时,还可以真实地反映课堂教学的效果和了解学生对知识的掌握程度。如何准确、及时地收取每位学生的课堂作业,是摆在教师面前的必须解决的现实问题。回顾过去,在局域网中,曾经使用了软盘、文件夹共享,FTP,NetMeeting,点对点文件传输,多媒体教学软件等方式方法,虽说也可以完成作业的回收,但还是觉得不是十分满意,有时存在文件被删除、复制、打不开或不易上交等现象,达不到预期的效果。利用JSP的文件传输功能,可以克服上述的弊端,实现准确,快速,安全在收取学生课堂作业的目的。
JSP是在传统的网页HTML文件中加入JAVA程序片段和JSP标记而构成的网页,是一种实现普通静态HTML和动态HTML混合编码的网页设计技术,目前已广泛流行。在JSP中上传文件也有多种方法,但都涉及到较复杂的JAVA编程,而利用SUN公司的WEB应用服务器GlassFish和jspSmartUpload组件,可较为轻松的完成文件上传。
2 应用环境的构建
2.1 安装Java EE JDK
Java EE JDK是SUN公司开发的基于Java编程环境的JSP应用产品。主要包含Java平台JDK和开源的Java EE应用服务器GlassFish。该软件的最新版本可从http://java.sun.com/javaee/downloads/index.jsp页面免费下载。名称为Java EE 5 SDK Update 4 (with JDK 6 U4) for Windows。在Windows下,直接运行下载的java_ee_sdk-5_04-windows.exe文件,根据安装向导安装到指定的目录,例如安装到D:\sun\sdk。安装完成后从开始菜单中启动缺省服务器(Start Default Server),在地址栏中http://localhost/或http://localhost:8080/,如果成功显示默认的网页,则Java EE JDK安装成功。
2.2 添加jspSmartUpload组件
jspSmartUpload组件可以从www.jspsmart.com网站下载,压缩包的名字是jspSmartUpload.zip。解压后,将WEB-INF中的classes文件夹复制到domains\domain1\lib中。这样就可以在JSP文件中使用jspSmartUpload组件中的JavaBean了。
3 上传文件的实现
在GlassFish服务器文件夹domains\domain1\docroot中创建三个文件index.html、myupload.jsp和show.jsp,分别用于显示上传页面、处理文件传输和显示传输结果。其中index.html和myupload.jsp是必不可少的。
3.1 显示上传页面
当用户通过URL访问WEB服务器时,显示在用户机上的页面文件。在包含文件域的表单中,ENCTYPE属性值必须为multipart/form-data ,METHOD属性值必须为post。
index.html文件内容如下:
<html>
<head>
<title>==作业提交==</title>
</head>
<body>
<FORM ACTION="myupload.jsp" ENCTYPE="multipart/form-data" METHOD="POST" >
<table border=0 cellpadding=10 cellspacing=18 width=400 bgcolor="#CC99FF" align=center>
<td height=90 bgcolor=#00FFCC align=center >
请选择要提交的文件: <p>
<input id="file_field" type="file" name="file" size="50" > <p>
<input type="submit" name="Submit" value="提交作业" >
</td>
</table>
</form>
</body>
3.2 处理文件传输
WEB服务器收到用户上传文件的请求后,导入com.jspsmart.upload.*包,然后使用该包中的类方法传送文件和保存文件到指定的文件夹。
myupload.jsp文件内容如下:
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page language="java" import="com.jspsmart.upload.*"%>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<HTML>
<BODY>
<H1>显示提交结果</H1>
<HR>
<%
mySmartUpload.initialize(pageContext);
mySmartUpload.upload();
try {
mySmartUpload.save("d:/upload");
out.println("作业提交成功.");
} catch (Exception e) {
out.println(e.toString());
}
%>
</BODY>
</HTML>
3.3 返馈上传结果
实际上,经过“处理文件传输”阶段后,已经完成了文件的上传。返馈上传结果的目的是让学生进一步明确已经提交作业文件的情况。这里采用读取D:/upload文件夹内容的方法,完成上传信息的反馈。需要强调的是,在调用show.jsp之前,必须在myupload.jsp的BODY中添加下列代码:
<FORM ACTION="show.jsp" ENCTYPE="multipart/form-data" METHOD="POST" >
<input type="submit" name="Submit" value="查看已提交的作业" >
</FORM>
而show.jsp文件内容如下:
<%@page language="java" contentType="text/html;charset=GB2312"%>
<%@ page import="java.io.*" %>
<html>
<head>
<title>显示文件夹内容</title>
</head>
<body>
<%
File path = new File("D:/upload");
File file[] = path.listFiles();
for(int i=0;i<file.length;i )
{
out.println(file[i].getName() "<br/>");
}
%>
</body>
</html>
4 问题探讨
4.1 文件名
如果上传的文件相同,则新上传的文件会覆盖已有文件。因此,要特别强调文件名的不同,最好用姓名加编号。
4.2 上传文件的大小限制
在调用mySmartUpload .upload()方法之前,可以采用mySmartUpload.setTotalMaxFileSize()方法设定上传文件的最大值。如:mySmartUpload.setTotalMaxFileSize(1000000);限定上传的文件在1MB内。
4.3 记录上传文件信息
通过request对象中的getRemoteHost()方法获取用户的机器名或IP地址,并与上传的文件名一起写入一个指定的文件当中。
5 结束语
在Java EE JDK环境下,通过直接使用jspSmartUpload组件中的JavaBean,采用几行Java代码,便可以快速实现课堂作业的提交,大大提高了工作效率。
参考文献:
[1] 邓子云.JSP网络编程从基础到实践[M].北京:电子工业出版社.2005,(9).
[2] 戴洋,陈海.在JSP中实现文件上传下载的相关问题及改进方案[J].计算机与现代化,2006,(10).
[3] 汪健峰,张永忠,在Java Web开发中实现文件上载[J].计算机时代, 2006,(09).