⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 emailuploadservlet.java

📁 一个jsp的oa系统,里面有很多亮点学习!
💻 JAVA
字号:
package com.oa.lp.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jspsmart.upload.SmartUpload;
import com.oa.lp.dao.DraftBoxDAO;
import com.oa.lp.dao.FileDAO;
import com.oa.lp.dao.InboxDAO;
import com.oa.lp.dao.OutboxDAO;
import com.oa.lp.database.DataBase;
import com.oa.lp.model.DraftBox;
import com.oa.lp.model.DraftBoxAnnex;
import com.oa.lp.model.Employee;
import com.oa.lp.model.InBox;
import com.oa.lp.model.InBoxAnnex;
import com.oa.lp.model.OutBox;
import com.oa.lp.model.OutBoxAnnex;

public class EmailUploadServlet extends TopServlet {

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		//获得EMPID
		Employee emp = (Employee)request.getSession().getAttribute("emp");
		int empId = emp.getEmpId();

		Connection conn = null;
		try {
			conn = DataBase.getConnection();
			DraftBoxDAO draftBoxDao = new DraftBoxDAO();
			draftBoxDao.setConn(conn);
			OutboxDAO outboxDao = new OutboxDAO();
			outboxDao.setConn(conn);
			InboxDAO inboxDao = new InboxDAO();
			inboxDao.setConn(conn);
			
			// 新建一个SmartUpload对象
			SmartUpload upload = new SmartUpload();
			// 上传初始化
			upload.initialize(this.getServletConfig(), request, response);
			// 设定上传限制
			// 1.限制每个上传文件的最大长度。
			upload.setMaxFileSize(1000000);
			// 2.限制总上传数据的长度。
			upload.setTotalMaxFileSize(10000000);
			// 3.设定允许上传的文件(通过扩展名限制),仅允许gif.jpg文件。
			upload.setAllowedFilesList("gif,jpg,bmp,rar");
			// 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,
			// jsp,htm,html扩展名的文件和没有扩展名的文件。
			upload.setDeniedFilesList("exe,bat,jsp,htm,html");
			//上传文件
			upload.upload();
			// 利用Request对象获取参数之值
			String method = upload.getRequest().getParameter("method");
			String acceptPersonId = upload.getRequest().getParameter("acceptPersonId");
			String acceptPersonName = upload.getRequest().getParameter("acceptPersonName");
			String sendPersonId = String.valueOf(empId);
			String sendPersonName = upload.getRequest().getParameter("sendPersonName");
			String title = upload.getRequest().getParameter("title");
			String content = upload.getRequest().getParameter("content");
			
			if(method.equals("sendEmail")){
				//发邮件
				//在发件箱保存
				OutBox outbox = new OutBox();
				outbox.setEmpId(empId);
				outbox.setAcceptPersonId(acceptPersonId);
				outbox.setAcceptPersonName(acceptPersonName);
				outbox.setSendPersonId(sendPersonId);
				outbox.setSendPersonName(sendPersonName);
				outbox.setTitle(title);
				outbox.setContent(content);
				List outboxlist = new ArrayList();
				//逐一提取上传文件信息,同时可保存文件。
				for (int i = 0; i < upload.getFiles().getCount(); i++) {
					com.jspsmart.upload.SmartFile file = upload.getFiles().getFile(
							i);
					// 若文件不存在则继续
					if (file.isMissing())
						continue;
					String fileName = file.getFileName();
					int fileSize = file.getSize();
					
					// 生成文件名
					String filePath = "/upload/email/" + System.currentTimeMillis()+"."+file.getFileExt();
					file.saveAs(filePath);
					//在数据库中保存文件
					OutBoxAnnex annex = new OutBoxAnnex();
					annex.setName(fileName);
					annex.setPath(filePath);
					outboxlist.add(annex);
				}
				outboxDao.addOutbox(outbox, outboxlist);
				
				//在收件箱保存
				String acceptPersonIds[] = acceptPersonId.split(",");
				String acceptPersonNames[] = acceptPersonName.split(",");
				for(int i=0;i<acceptPersonIds.length;i++){
					InBox inbox = new InBox();
					inbox.setEmpId(Integer.parseInt(acceptPersonIds[i]));
					inbox.setSendPersonId(String.valueOf(empId));
					inbox.setSendPersonName(emp.getEmpName());
					inbox.setAcceptPersonId(acceptPersonIds[i]);
					inbox.setAcceptPersonName(acceptPersonNames[i]);
					inbox.setTitle(title);
					inbox.setContent(content);
					
					List inboxlist = new ArrayList();
					//逐一提取上传文件信息,同时可保存文件。
					for (int j = 0; j < upload.getFiles().getCount(); j++) {
						com.jspsmart.upload.SmartFile file = upload.getFiles().getFile(
								j);
						// 若文件不存在则继续
						if (file.isMissing())
							continue;
						String fileName = file.getFileName();
						int fileSize = file.getSize();
						
						// 生成文件名
						String filePath = "/upload/email/" + System.currentTimeMillis()+"."+file.getFileExt();
						file.saveAs(filePath);
						//在数据库中保存文件
						InBoxAnnex annex = new InBoxAnnex();
						annex.setName(fileName);
						annex.setPath(filePath);
						inboxlist.add(annex);
					}
					inboxDao.addInbox(inbox, inboxlist);
				}
				this.sendRedirect(request, response, "/EmailServlet?method=outBox");
			}else if(method.equals("saveDraft")){
				//保存
				//封装对象
				DraftBox draftBox = new DraftBox();
				draftBox.setEmpId(empId);
				draftBox.setAcceptPersonId(acceptPersonId);
				draftBox.setAcceptPersonName(acceptPersonName);
				draftBox.setSendPersonId(sendPersonId);
				draftBox.setSendPersonName(sendPersonName);
				draftBox.setTitle(title);
				draftBox.setContent(content);
				List list = new ArrayList();
				//逐一提取上传文件信息,同时可保存文件。
				for (int i = 0; i < upload.getFiles().getCount(); i++) {
					com.jspsmart.upload.SmartFile file = upload.getFiles().getFile(
							i);
					// 若文件不存在则继续
					if (file.isMissing())
						continue;
					String fileName = file.getFileName();
					int fileSize = file.getSize();
					
					// 生成文件名
					String filePath = "/upload/email/" + System.currentTimeMillis()+"."+file.getFileExt();
					file.saveAs(filePath);
					//在数据库中保存文件
					DraftBoxAnnex annex = new DraftBoxAnnex();
					annex.setName(fileName);
					annex.setPath(filePath);
					list.add(annex);
				}
				draftBoxDao.addDraft(draftBox, list);
				this.sendRedirect(request, response,"/EmailServlet?method=draftBox");
			}
			// 事务提交
			DataBase.commit();

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (conn != null) {
				// 关闭连接
				DataBase.releaseConnection(conn);
			}
		}

	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -