MVC——14 带头像的注册小项目(下)

本文介绍了一个简单的注册下载小项目实战案例,包括数据库设计、实体类定义、Mapper层、Service层及其实现、Controller类的创建,以及前端展示页面的搭建。通过该项目,读者可以学习如何实现用户注册、资源下载、下载次数计数等功能。

带头像的注册小项目(下)

要求:
用户注册成功后,跳转页面.点击下载后下载资源.同时下载次数+1
并记录日志信息,格式: xxxx下载了xxxx

1.创建数据库相关语句

create table files(
id int(10) primary key auto_increment,
name varchar(20),
count int(10)
);

加入测试数据,把图片信息存储到files文件夹中

insert into files values(default,'a.png',0);
insert into files values(default,'b.png',0);

2.创建实体类pojo

加入set和get方法

public class Files {
	private int id;
	private String name;
	private int count;
}

3.创建mapper层

进行查询全部,所以是List

public interface FilesMapper {
	@Select("select * from files")
	List<Files> selAll();
	@Update("update files set count=count+1 where id=#{0}")
	int updCountById(int id);
}

4.创建service层

接口


public interface FilesService {
	/**
	 * 显示全部
	 */
	List<Files> show();
	/**
	 * 根据id修改资料下载次数
	 */
	int updCount(int id,Users users,String name);
}

实现类
@Service把该类交给spring管理,在下方进行依赖注入

@Service
public class FileServiceImpl implements FilesService {
	@Resource
	private FilesMapper filesMapper;

	@Override
	public List<Files> show() {
		return filesMapper.selAll();
	}

	@Override
	public int updCount(int id,Users users,String name) {
		Logger logger = Logger.getLogger(FileServiceImpl.class);
		logger.info(users.getUsername()+name);
		return filesMapper.updCountById(id);
	}
}

5.创建控制器controller类

数据传入用request作用域进行传入,用Model,本质就是request作用域

@Controller
public class FilesController {
	@Resource
	private FilesService filesServiceImpl;
	@RequestMapping("show")
	public String show(Model model){
		model.addAttribute("list", filesServiceImpl.show());
		return "/main.jsp";
	}
	@RequestMapping("download")
	public void download(int id,String name,HttpServletResponse res,HttpServletRequest req) throws IOException{
		filesServiceImpl.updCount(id,(Users)req.getSession().getAttribute("user"),name);
		res.setHeader("Content-Disposition", "attachment;filename="+name);
		ServletOutputStream os = res.getOutputStream();
		File file = new File(req.getServletContext().getRealPath("files"),name);
		os.write(FileUtils.readFileToByteArray(file));
		os.flush();
		os.close();
	}
}

6.新建main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function(){
	$("a").click(function(){
		//parent() 父标签
		//prev() 前一个兄弟标签
		//jquery中规范,对象名以$开头
		var $td =$(this).parent().prev();
		//html()返回值字符串
		$td.html(parseInt($td.html())+1);
	});
})
</script>
</head>
<body>
<table border="1">
	<tr>
		<td>资料名称</td>
		<td>下载次数</td>
		<td>操作</td>
	</tr>
	<c:forEach items="${list }" var="file">
		<tr>
			<td>${file.name }</td>
			<td>${file.count }</td>
			<td><a href="download?id=${file.id }&name=${file.name}">下载</a></td>
		</tr>
	</c:forEach>
</table>
</body>
</html>
传送损坏与对象检测数据集 一、基础信息 • 数据集名称:传送损坏与对象检测数据集 • 图片数量: 训练集:645张图片 验证集:185张图片 测试集:92张图片 总计:922张工业监控图片 • 训练集:645张图片 • 验证集:185张图片 • 测试集:92张图片 • 总计:922张工业监控图片 • 分类类别: Hole(孔洞):传送表面的孔洞损坏。 Human(人类):工作区域中的人类,用于安全监控。 Other Objects(其他对象):非预期对象,可能引起故障。 Puncture(刺穿):传送被刺穿的损坏。 Roller(滚筒):传送滚筒部件。 Tear(撕裂):传送撕裂损坏。 impact damage(冲击损坏):由于冲击导致的损坏。 patch work(修补工作):已修补的区域。 • Hole(孔洞):传送表面的孔洞损坏。 • Human(人类):工作区域中的人类,用于安全监控。 • Other Objects(其他对象):非预期对象,可能引起故障。 • Puncture(刺穿):传送被刺穿的损坏。 • Roller(滚筒):传送滚筒部件。 • Tear(撕裂):传送撕裂损坏。 • impact damage(冲击损坏):由于冲击导致的损坏。 • patch work(修补工作):已修补的区域。 • 标注格式:YOLO格式,包含边界框和类别标签,适用于目标检测任务。 • 数据格式:图像数据来源于工业监控系统,适用于计算机视觉分析。 二、适用场景 • 工业自动化检测系统开发:用于构建自动检测传送损坏和异物的AI模型,实现实时监控和预防性维护,减少停机时间。 • 安全监控应用:识别人类和其他对象,提升工业环境的安全性,避免事故和人员伤害。 • 学术研究与创新:支持计算机视觉在制造业、物流和自动化领域的应用研究,促进AI技术与工业实践的融合。 • 教育与培训:可用于培训AI模型或作为工业工程和自动化教育的案例数据,帮助学习者理解实际应用场景。 三、数据集优势 • 多样化的类别覆盖:包含8个关键类别,涵盖多种损坏类型和对象,确保模型能够处理各种实际工业场景,提升泛化能力。 • 精准的标注质量:采用YOLO格式,边界框标注准确,由专业标注人员完成,保证数据可靠性和模型训练效果。 • 强大的任务适配性:兼容主流深度学习框架(如YOLO、TensorFlow、PyTorch),可直接用于目标检测任务,并支持扩展至其他视觉任务需求。 • 突出的工业价值:专注于工业传送系统的实际需求,帮助提升生产效率、降低维护成本,并增强工作场所安全,具有较高的实际应用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值