package com.course.servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import java.util.UUID;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadBase;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import com.course.bean.Task;
import com.course.dao.TaskDao;
public class UpLoadServlet extends HttpServlet {
/**
* Constructor of the object.
*/
public UpLoadServlet() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/**
* 文件上传:
* http://www.jb51.net/article/70543.htm
*
*/
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//更改响应字符流使用的编码,还能告知浏览器用什么编码进行显示
response.setContentType("text/html;charset=utf-8");
TaskDao taskDao=new TaskDao();
Task task=new Task();
//上传时生成的临时文件保存目录
String tempPath = this.getServletContext().getRealPath("/WEB-INF/temp");
File tmpFile = new File(tempPath);
if (!tmpFile.exists()) {
//创建临时目录
tmpFile.mkdir();
}
//消息提示
String message = "";
try{
//使用Apache文件上传组件处理文件上传步骤:
//1、创建一个DiskFileItemFactory工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
//设置工厂的缓冲区的大小,当上传的文件大小超过缓冲区的大小时,就会生成一个临时文件存放到指定的临时目录当中。
factory.setSizeThreshold(1024*100);//设置缓冲区的大小为100KB,如果不指定,那么缓冲区的大小默认是10KB
//设置上传时生成的临时文件的保存目录
factory.setRepository(tmpFile);
//2、创建一个文件上传解析器
ServletFileUpload upload = new ServletFileUpload(factory);
//解决上传文件名的中文乱码
upload.setHeaderEncoding("UTF-8");
//3、判断提交上来的数据是否是上传表单的数据
if(!ServletFileUpload.isMultipartContent(request)){
//按照传统方式获取数据
return;
}
//设置上传单个文件的大小的最大值,目前是设置为1024*1024字节,也就是1MB
upload.setFileSizeMax(1024*1024);
//设置上传文件总量的最大值,最大值=同时上传的多个文件的大小的最大值的和,目前设置为10MB
upload.setSizeMax(1024*1024*10);
//4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
List<FileItem> list = upload.parseRequest(request);
for(FileItem item : list){
//如果fileitem中封装的是普通输入项的数据
if(item.isFormField()){
String name = item.getFieldName();
//解决普通输入项的数据的中文乱码问题
String value = item.getString("UTF-8");
//得到学号和作业标号
if(name.equals("sid")){
task.setSid(Integer.parseInt(value));
}
if(name.equals("hw_id")){
task.setHw_id(Integer.parseInt(value));
}
//如果fileitem中封装的是上传文件
}else{
//得到上传的文件名称
String filename = item.getName();
if(filename==null || filename.trim().equals("")){
continue;
}
//注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
//处理获取到的上传文件的文件名的路径部分,只保留文件名部分
filename = filename.substring(filename.lastIndexOf("\\")+1);
//得到上传文件的扩展名
String fileExtName = filename.substring(filename.lastIndexOf(".")+1);
//获取item中的上传文件的输入流
InputStream in = item.getInputStream();
//得到文件保存的名称
String saveFilename = UUID.randomUUID().toString() + "_"+filename;
//得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
String savePath = this.getServletContext().getRealPath("/WEB-INF/upload");
//创建作业对应的文件夹
File f_savePath = new File(savePath);
if (!f_savePath.exists()) {
//创建临时目录
f_savePath.mkdir();
}
//得到文件的保存目录
String realSavePath =savePath+"\\"+task.getHw_id();
//得到文件路径
String file_url=(realSavePath+"\\"+saveFilename).replaceAll("\\\\","\\\\\\\\");
task.setFile_url(file_url);
//保存作业信息进数据库
taskDao.stuUploadTask(task);
//创建作业文件路劲
File f_realSavePath = new File(savePath+"/"+task.getHw_id());
if (!f_realSavePath.exists()) {
//创建临时目录
f_realSavePath.mkdir();
}
//创建一个文件输出流
OutputStream out = new FileOutputStream(realSavePath + "\\" + saveFilename);
//创建一个缓冲区
byte buffer[] = new byte[1024];
int len = 0;
//循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
while((len=in.read(buffer))>0){
//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
没有合适的资源?快使用搜索试试~ 我知道了~
基于Servlet的课程管理系统源码.zip
共141个文件
java:43个
jsp:35个
gif:20个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 21 浏览量
2024-01-13
00:40:22
上传
评论
收藏 4.01MB ZIP 举报
温馨提示
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码.zip基于Servlet的课程管理系统源码
资源推荐
资源详情
资源评论
收起资源包目录
基于Servlet的课程管理系统源码.zip (141个子文件)
bootstrap.css 143KB
bootstrap-theme.css 26KB
login2.css 3KB
adminLogin.css 2KB
register.css 386B
login.css 371B
index.css 286B
article.css 235B
glyphicons-halflings-regular.eot 20KB
logo.gif 7KB
menu_bg2.gif 4KB
menu_bgs.gif 2KB
menu_bg1.gif 1KB
menu_topline.gif 1KB
out.gif 859B
nav-right-bg.gif 735B
icon-phone.gif 633B
ts.gif 597B
icon-mail2.gif 592B
top-right.gif 556B
left-top-right.gif 391B
buttom_right2.gif 383B
buttom_left2.gif 353B
content-bg.gif 257B
buttom_bgs.gif 225B
login-top-bg.gif 174B
mail_rightbg.gif 169B
news-title-bg.gif 166B
login-buttom-bg.gif 112B
.gitignore 2KB
favicon.ico 321B
mysql-connector-java-5.1.35-bin.jar 946KB
commons-io-2.6.jar 210KB
commons-fileupload-1.3.3.jar 69KB
UpLoadServlet.java 9KB
AdminServlet.java 7KB
LoginServlet.java 5KB
ScoreServlet.java 4KB
StudentServlet.java 4KB
StudentDao.java 4KB
CourseServlet.java 4KB
HomeworkServlet.java 4KB
CourseDao.java 4KB
DesignerDao.java 4KB
TeacherDao.java 3KB
SkillServlet.java 3KB
DesignerServlet.java 3KB
TimeCardServlet.java 3KB
TeacherServlet.java 3KB
DownLoadServlet.java 3KB
TaskServlet.java 3KB
PercentServlet.java 2KB
SkillDao.java 2KB
TaskDao.java 2KB
ScoreDao.java 2KB
HomeworkDao.java 2KB
TimeCardDao.java 2KB
PercentDao.java 2KB
DBUtils.java 2KB
Designer.java 1KB
Teacher.java 1KB
ClassesDao.java 1KB
Student.java 1021B
AdminDao.java 1006B
Score.java 962B
TimeUtils.java 944B
Homework.java 944B
Skill.java 933B
Course.java 764B
Task.java 740B
TimeCard.java 724B
Classes.java 717B
Percent.java 666B
Admin.java 495B
StringUtils.java 378B
SexUtils.java 168B
ja.java 53B
lunbo4.jpg 1.06MB
lunbo2.jpg 503KB
lunbo3.jpg 414KB
lunbo1.jpg 340KB
index.jpg 212KB
index3.jpg 36KB
index2.jpg 29KB
index1.jpg 24KB
login_bg.jpg 20KB
fun.jpg 9KB
jquery-3.2.1.js 262KB
jquery.min.js 85KB
bootstrap.js 68KB
bootstrap.min.js 36KB
moo.fx.pack.js 7KB
prototype.lite.js 3KB
moo.fx.js 3KB
formcheck.js 2KB
npm.js 484B
report.jsp 10KB
student.jsp 5KB
modify.jsp 5KB
modify.jsp 5KB
共 141 条
- 1
- 2
资源评论
土豆片片
- 粉丝: 1567
- 资源: 5643
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 618商品网页制作编程示例开发案列优质学习资料资源工具与案列应用场景开发文档教程资料.txt
- base.apk
- input.h
- VBA高级筛选简单.xlsm
- STM32-HAL库-外部中断-按键输入
- 松勤-Python测试开发项目实战课程3期2022年完结价值12000元
- Kettle智能电商大师之路 基于打造离线+实时全栈数仓项目 实时ETL全面进阶 智数电商
- Java高级开发全家桶 Spring框架+SpringMVC框架+Maven高级+SpringBoot框架+MyBatis
- 程序员最新版数据结构与算法实战 走上编程大师之路必备数据结构与算法课程
- HM程序员最新版数据结构与算法实战 走上编程大师之路必备数据结构与算法课程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功