文件上传(结合MVC)

本文档详细介绍了如何在MVC架构下实现文件上传功能,包括复制原有的DAO和服务层,并着重讲解了控制器(Controller)的开发。同时,文章还涵盖了雇员删除的实现,当从数据库中删除雇员信息时,会一并移除其相关照片。
摘要由CSDN通过智能技术生成

整个MVC实现文件上传

1.拷贝之前的dao层和service层
2.开发控制层(Controller)

package com.xie;

@SuppressWarnings("serial")
@WebServlet(urlPatterns= {"/emp/*"})
public class EmpServlet extends BaseServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String pathInfo = req.getPathInfo();
		if ("/add".equals(pathInfo)) {
			this.addEmp(req, resp);
		}else if ("/remove".equals(pathInfo)) {
			this.removeEmp(req, resp);
		}		
	}
	/**
	 * 添加雇员信息
	 * @param req
	 * @param resp
	 * @throws UnsupportedEncodingException 
	 */
	public void addEmp(HttpServletRequest req, HttpServletResponse resp) throws UnsupportedEncodingException {
		//取得业务层的实现类方法
		IEmpService service = new EmpServiceImpl();
		//先执行上传的
		super.saveFile(req, resp);
		//执行完毕上传的方法之后再取得具体信息
		String name = super.smart.getRequest().getParameter("username");
		Double  sal = Double.parseDouble(super.smart.getRequest().getParameter("sal"));
		Double  comm = Double.parseDouble(super.smart.getRequest().getParameter("comm"));
		String job = super.smart.getRequest().getParameter("job");
		String img = super.newFileName;
		//将字符串类型的编号转换为整数类型
		Integer deptno = Integer.parseInt(super.smart.getRequest().getParameter("deptno"));
		
		//将以上信息保存到数据库
		Emp vo = new Emp();
		vo.setEname(name);
		vo.setSal(sal);
		vo.setJob(job);
		vo.setDeptno(deptno);
		vo.setHiredate(new Date());
		vo.setMgr(7788);
		vo.setComm(comm);
		vo.setImg(img);
		if (service.addEmp(vo)) {
			System.out.println("插入数据成功");
		}else {
			System.out.println("数据增加失败!");
		}
		//上传照片	
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		this.doGet(req, resp);
	}
}

regist.jsp

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>Insert title here</title>
</head>
<body>
		<form action="emp/add" method="post" enctype="multipart/form-data">
		<fieldset>
			<legend>请注册</legend>
			名字: <input type="text" name="username" placehodler="输入用户名"><br>
			<br> 薪资:<input type="text" name="sal"
				placehodler="薪资"><br>
			<br> 职位:<input type="text" name="job"
				placehodler="佣金"><br>
			<br> 佣金:<input type="text" name="comm"
				placehodler=""><br>
			<br> 部门编号:<input type="text" name="deptno"
				placehodler=""><br>
			<br>&nbsp;&nbsp;&nbsp;片:<input type="file" name="pic"><br>
			<br> <input type="submit" value="提交"> <input
				type="reset" value="重置">
		</fieldset>
	</form>
</body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实现雇员的删除

删除雇员在数据库中的信息之后同时要删除对应的照片信息

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String pathInfo = req.getPathInfo();
		if ("/add".equals(pathInfo)) {
			this.addEmp(req, resp);
		}else if ("/remove".equals(pathInfo)) {
			this.removeEmp(req, resp);
		}		
	}
	/**
	 * 删除雇员信息
	 * @param req
	 * @param resp
	 */
	public void removeEmp(HttpServletRequest req, HttpServletResponse resp) {
		//取得业务层实现类对象
		IEmpService service1 = new EmpServiceImpl();
		IEmpService service2 = new EmpServiceImpl();
		//取得要删除的雇员的编号
		int empno = Integer.parseInt(req.getParameter("empno"));
		//查询出要删除的文件的名称
		String fileName = service1.findEmpById(empno).getImg();
		//根据编号删除数据
		if (service2.removeEmpById(empno)) {
			System.out.println("删除成功!");
			//删除照片
			super.removeFile(req, fileName);
		}else {
			System.out.println("删除失败!");
		}
	}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值