Java项目:食品检测管理系统(java+SSM+JavaScript+layui+Mysql)

news2024/11/20 7:11:22

源码获取:俺的博客首页 "资源" 里下载!

项目介绍

本项目后台食品检测管理系统;
(1)用户管理:用户登录、验证。
(2)任务管理:添加任务、检品受理。
(3)结果审核:上传结果、生成报告。
(4)仪器管理:仪器的使用和管理。
(5)样品管理:仪器的使用和管理。

(6)管理员设置:用户的管理。

技术栈

SSM+mysql+layui+CSS+JavaScript

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8080 访问

 

 

 

 

 

用户登录管理控制层:

@Controller
public class LoginServlet{
	@Autowired
	UserServiceImpl userService;
	@Autowired
	RoleServiceImpl roleService;
	@Autowired
	ProviderServiceImpl providerService;
	@Autowired
	BillServiceImpl billService;

	@RequestMapping(value="/login.do",method = {RequestMethod.POST, RequestMethod.GET})
	public String doPost(HttpServletRequest request, HttpServletResponse response, Model model){
		System.out.println("login ============ " );
		//获取用户名和密码
		String userCode = request.getParameter("userCode");
		String userPassword = request.getParameter("userPassword");
		System.out.println(userCode+" "+userPassword);
		//调用service方法,进行用户匹配
		User user = userService.login(userCode,userPassword);
		System.out.println(user);
		if(null != user){//登录成功
			//放入session
			request.getSession().setAttribute(Constants.USER_SESSION, user);
			//页面跳转(frame.jsp)
			return "frame";
		}else{
			//页面跳转(login.jsp)带出提示信息--转发
			model.addAttribute("error", "用户名或密码不正确");
			return "login";
			//.forward(request, response);
		}
	}



}

用户管理控制层:

@Controller
public class UserServlet{
	@Autowired
	BillServiceImpl billService;
	@Autowired
	ProviderServiceImpl providerService;
	@Autowired
	UserServiceImpl userService;
	@Autowired
	RoleServiceImpl roleService;
	@RequestMapping(value="/user.do",method = {RequestMethod.POST, RequestMethod.GET})
	public String doPost(HttpSession session, @Valid User user, BindingResult bindingResult, HttpServletRequest request, HttpServletResponse response, @RequestParam(value="method",required = false) String method, Model model)
			throws ServletException, IOException {
		System.out.println("--------------->"+method);
		if(method != null && method.equals("add")){
			return this.add(request, response,user,bindingResult,session);
		}else if(method != null && method.equals("query")){
			return this.query(request, response);
		}else if(method != null && method.equals("getrolelist")){
			this.getRoleList(request, response);
		}else if(method != null && method.equals("ucexist")){
			this.userCodeExist(request, response);
		}else if(method != null && method.equals("deluser")){
			this.delUser(request, response);
		}else if(method != null && method.equals("view")){
			return this.getUserById(request, response,"userview",model);
		}else if(method != null && method.equals("modify")){
			return this.getUserById(request, response,"usermodify",model);
		}else if(method != null && method.equals("modifyexe")){
			return this.modify(request, response);
		}else if(method != null && method.equals("pwdmodify")){
			this.getPwdByUserId(request, response);
		}else if(method != null && method.equals("savepwd")){
			return this.updatePwd(request, response);
		}
		return "error";

	}
	private String updatePwd(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		Object o = request.getSession().getAttribute(Constants.USER_SESSION);
		String newpassword = request.getParameter("newpassword");
		boolean flag = false;
		if(o != null && !StringUtils.isNullOrEmpty(newpassword)){
			flag = userService.updatePwd(((User)o).getId(),newpassword);
			if(flag){
				request.setAttribute(Constants.SYS_MESSAGE, "修改密码成功,请退出并使用新密码重新登录!");
				request.getSession().removeAttribute(Constants.USER_SESSION);//session注销
			}else{
				request.setAttribute(Constants.SYS_MESSAGE, "修改密码失败!");
			}
		}else{

			request.setAttribute(Constants.SYS_MESSAGE, "修改密码失败!");
		}
		return "pwdmodify";

	}

	private void getPwdByUserId(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		Object o = request.getSession().getAttribute(Constants.USER_SESSION);
		String oldpassword = request.getParameter("oldpassword");
		Map<String, String> resultMap = new HashMap<String, String>();

		if(null == o ){//session过期
			resultMap.put("result", "sessionerror");
		}else if(StringUtils.isNullOrEmpty(oldpassword)){//旧密码输入为空
			resultMap.put("result", "error");
		}else{
			String sessionPwd = ((User)o).getUserPassword();
			if(oldpassword.equals(sessionPwd)){
				resultMap.put("result", "true");
			}else{//旧密码输入不正确
				resultMap.put("result", "false");
			}
		}

				//		response.setContentType("application/json");
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter outPrintWriter = response.getWriter();
		outPrintWriter.write(JSONArray.toJSONString(resultMap));
		outPrintWriter.flush();
		outPrintWriter.close();
	}


	private String modify(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String id = request.getParameter("uid");
		String userName = request.getParameter("userName");
		String gender = request.getParameter("gender");
		String birthday = request.getParameter("birthday");
		String phone = request.getParameter("phone");
		String address = request.getParameter("address");
		String userRole = request.getParameter("userRole");

		User user = new User();
		user.setId(Integer.valueOf(id));
		user.setUserName(userName);
		user.setGender(Integer.valueOf(gender));
		try {
			user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse(birthday));
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		user.setPhone(phone);
		user.setAddress(address);
		user.setUserRole(Integer.valueOf(userRole));
		user.setModifyBy(((User)request.getSession().getAttribute(Constants.USER_SESSION)).getId());
		user.setModifyDate(new Date());
		if(userService.modify(user)){
			return "redirect:/user.do?method=query";
//			response.sendRedirect(request.getContextPath()+"/jsp/user.do?method=query");
		}else{
			return "usermodify";
//			request.getRequestDispatcher("usermodify.jsp").forward(request, response);
		}

	}

	private String getUserById(HttpServletRequest request, HttpServletResponse response, String url, Model model)
			throws ServletException, IOException {
		String id = request.getParameter("uid");

		if(!StringUtils.isNullOrEmpty(id)){
			//调用后台方法得到user对象

			User user = userService.getUserById(id);
			System.out.println("------------> "+user);
			model.addAttribute("user", user);
			return url;
//			request.getRequestDispatcher(url).forward(request, response);
		}
		return "error";
	}
	private void delUser(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String id = request.getParameter("uid");
		Integer delId = 0;
		try{
			delId = Integer.parseInt(id);
		}catch (Exception e) {
			// TODO: handle exception
			delId = 0;
		}
		HashMap<String, String> resultMap = new HashMap<String, String>();
		if(delId <= 0){
			resultMap.put("delResult", "notexist");
		}else{

			if(userService.deleteUserById(delId)){
				resultMap.put("delResult", "true");
			}else{
				resultMap.put("delResult", "false");
			}
		}

		//把resultMap转换成json对象输出
				//		response.setContentType("application/json");
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter outPrintWriter = response.getWriter();
		outPrintWriter.write(JSONArray.toJSONString(resultMap));
		outPrintWriter.flush();
		outPrintWriter.close();
	}

	private void userCodeExist(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//判断用户账号是否可用
		String userCode = request.getParameter("userCode");

		HashMap<String, String> resultMap = new HashMap<String, String>();
		if(StringUtils.isNullOrEmpty(userCode)){
			//userCode == null || userCode.equals("")
			resultMap.put("userCode", "exist");
		}else{
			User user = userService.selectUserCodeExist(userCode);
			if(null != user){
				resultMap.put("userCode","exist");
			}else{
				resultMap.put("userCode", "notexist");
			}
		}

		//把resultMap转为json字符串以json的形式输出
		//配置上下文的输出类型
		//		response.setContentType("application/json");
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		//从response对象中获取往外输出的writer对象
		PrintWriter outPrintWriter = response.getWriter();
		//把resultMap转为json字符串 输出
		outPrintWriter.write(JSONArray.toJSONString(resultMap));
		outPrintWriter.flush();//刷新
		outPrintWriter.close();//关闭流
	}
	private void getRoleList(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		List<Role> roleList = null;
		roleList = roleService.getRoleList();
		//把roleList转换成json对象输出
//		response.setContentType("application/json");
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter outPrintWriter = response.getWriter();
		outPrintWriter.write(JSONArray.toJSONString(roleList));
		outPrintWriter.flush();
		outPrintWriter.close();
	}

	private String query(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//查询用户列表
		String queryUserName = request.getParameter("queryname");
		String temp = request.getParameter("queryUserRole");
		String pageIndex = request.getParameter("pageIndex");
		int queryUserRole = 0;
		List<User> userList = null;
		//设置页面容量
		int pageSize = Constants.pageSize;
		//当前页码
		int currentPageNo = 1;
		System.out.println("queryUserName servlet--------"+queryUserName);
		System.out.println("queryUserRole servlet--------"+queryUserRole);
		System.out.println("query pageIndex--------- > " + pageIndex);
		if(queryUserName == null){
			queryUserName = "";
		}
		if(temp != null && !temp.equals("")){
			queryUserRole = Integer.parseInt(temp);
		}

		if(pageIndex != null){
			try{
				currentPageNo = Integer.valueOf(pageIndex);
			}catch(NumberFormatException e){
				return "error";
			}
		}
		//总数量(表)
		int totalCount	= userService.getUserCount(queryUserName,queryUserRole);
		//总页数
		PageSupport pages=new PageSupport();
		pages.setCurrentPageNo(currentPageNo);
		pages.setPageSize(pageSize);
		pages.setTotalCount(totalCount);

		int totalPageCount = pages.getTotalPageCount();

		//控制首页和尾页
		if(currentPageNo < 1){
			currentPageNo = 1;
		}else if(currentPageNo > totalPageCount){
			currentPageNo = totalPageCount;
		}

		userList = userService.getUserList(queryUserName,queryUserRole,currentPageNo, pageSize);
        System.out.println("----------> "+userList.get(0).getAge());
		request.setAttribute("userList", userList);
		List<Role> roleList = null;
		System.out.println(userList.get(0).getRole().getRoleName());
		roleList = roleService.getRoleList();
		System.out.println("=====  "+roleList.get(0).getRoleCode()+"--------roleList:"+roleList.get(0).getRoleName());
		request.setAttribute("roleList", roleList);
		request.setAttribute("queryUserName", queryUserName);
		request.setAttribute("queryUserRole", queryUserRole);
		request.setAttribute("totalPageCount", totalPageCount);
		request.setAttribute("totalCount", totalCount);
		request.setAttribute("currentPageNo", currentPageNo);
		return "userlist";
	}

	private String add(HttpServletRequest request, HttpServletResponse response, User user, BindingResult bindingResult, HttpSession session)
			throws ServletException, IOException {
		if(bindingResult.hasErrors()){
			System.out.println("输入错误");
			return "useradd";
		}System.out.println("111");
		user.setCreatedBy(((User)session.getAttribute(Constants.USER_SESSION)).getId());System.out.println("222");
		user.setCreationDate(new Date());System.out.println("333");
		if(userService.add(user)){return "redirect:/user.do?method=query";}System.out.println("444");
		return "useradd";
	}
}

退出管理控制层: 

@Controller

public class LogoutServlet{
	@Autowired
	UserServiceImpl userService;
	@Autowired
	RoleServiceImpl roleService;
	@Autowired
	ProviderServiceImpl providerService;
	@Autowired
	BillServiceImpl billService;
	@RequestMapping(value="/logout.do",method = {RequestMethod.POST, RequestMethod.GET})
	public String  doPost(HttpServletRequest request, HttpServletResponse response)
			{
		//清除session
		request.getSession().removeAttribute(Constants.USER_SESSION);
		return "/login";
	}



}

 源码获取:俺的博客首页 "资源" 里下载!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81924.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数学基础从高一开始4、集合的基本运算2

数学基础从高一开始3、集合的基本运算2 目录 数学基础从高一开始3、集合的基本运算2 补集 例2&#xff1a; 总结&#xff1a; 补集 这里补集的符号我打不出来&#xff0c;这里就截图给大家看了啊。 下图是补集的语言表达&#xff0c;图形表达以及符号表达方式&#xff1a…

在无需分叉的情况下模拟任何 SIGHASH 标志

我们开发了一种新颖的方法来模拟任何 SIGHASH 标志&#xff0c;只需在智能合约中编写逻辑即可。它不需要更改协议&#xff0c;因此比每次构思新用例时通过分叉添加硬编码标志更实用和灵活。 SIGHASH 标志 SIGHASH 标志决定交易的哪一部分由签名者签名。具体来说&#xff0c;它…

Redis分布式锁那点事

锁超时问题 在redis分布式锁中&#xff0c;如果线程A加锁成功了&#xff0c;但是由于业务功能耗时时间很长&#xff0c;超过了设置的超时时间&#xff0c;这时候redis会自动释放线程A加的锁。通常我们加锁的目的是&#xff1a;为了防止访问临界资源时&#xff0c;出现数据异常…

【Python学习记录】Numpy广播机制(broadcast)

✨ 博客主页&#xff1a;小小马车夫的主页 ✨ 所属专栏&#xff1a;Python学习记录 文章目录一、什么是Numpy广播机制二、Numpy广播应用三、Numpy广播规则一、什么是Numpy广播机制 在Numpy、tensorflow、pytorch中数组有一种广播机制(broadcast), 就是针对两个不同形状的数组进…

【Linux】Linux调试器-gdb使用及git命令行

大家好我是沐曦希&#x1f495; 文章目录一.预备知识1.背景2.Linux默认行为3.debug和release区别二.使用三.使用git命令行一.预备知识 1.背景 程序的发布方式有两种&#xff0c;debug模式和release模式Linux gcc/g出来的二进制程序&#xff0c;默认是release模式要使用gdb调试…

前端vue面试题(持续更新中)

Watch中的deep:true是如何实现的 当用户指定了 watch 中的deep属性为 true 时&#xff0c;如果当前监控的值是数组类型。会对对象中的每一项进行求值&#xff0c;此时会将当前 watcher存入到对应属性的依赖中&#xff0c;这样数组中对象发生变化时也会通知数据更新 源码相关 g…

Android 10.0 Launcher3双层(抽屉)高斯模糊(毛玻璃)背景功能的实现

1.概述 在进行定制开发的功能需求方面,Launcher3的需求也挺多的,单双层抽屉高斯模糊毛玻璃背景功能也是一个需求功能,最近按照功能需求来开发 双层抽屉高斯模糊毛玻璃效果背景的功能 效果图如图: 2. Launcher3双层(抽屉)高斯模糊(毛玻璃)背景功能的实现的核心代码 package…

基于Python logging 实现日志功能模块(即拿即用)

基于Python实现日志功能模块 在项目开发过程,日志文件是十分重要的,尤其对于程序员后期排查软件问题、发现问题bug及使用记录等更是非常重要。 本文使用部分软件版本如下: PyCharm 2019.3 Python 3.7.3 logging 0.5.1.2 logging logging 模块中包含为应用程序和库实现灵…

科研试剂2702973-69-9,endo BCN-PEG12-COOH,endo BCN-PEG12-acid

&#xff08;本品应密封避光&#xff0c;储存于阴凉&#xff0c;干燥&#xff0c;通风处&#xff0c;取用一定要干燥&#xff0c;避免频繁的溶解和冻干&#xff09; ●外观以及性质&#xff1a; endo BCN-PEG12-acid为浅黄色油状&#xff0c;带有 PEG 臂的试剂会增加化合物的亲…

论文投稿指南——中文核心期刊推荐(机械、仪表工业2)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

ElasticSearch集群部署系统参数配置调优

内存基本要求 参考书籍:[Elasticsearch: 权威指南]节选https://www.elastic.co/guide/cn/elasticsearch/guide/current/hardware.html 进程数和文件句柄数配置 使用命令查看&#xff1a; vi /etc/security/limits.conf如果没配置&#xff0c;在文件的后面加上配置 * soft n…

burst buffer技术初探

burst buffer是超算中一种作业加速技术&#xff0c;主要解决全球气候模拟预测建模、流体力学分析、磁性融合、天体物理学、生物分子模拟中浪涌型I/O的情况&#xff0c;burst buffer作为前端计算和后端存储之间的缓冲区&#xff0c;它弥合了计算节点的处理速度与存储系统的I/O带…

Nature:重磅,找到终结新冠的药了,关闭ACE2受体,防止所有变体

新冠病毒&#xff0c;通常通过呼吸道感染人类&#xff0c;并造成呼吸系统和人体各个器官的损伤。自2019年底首次爆发至今&#xff0c;新型冠状病毒仍在全球肆虐&#xff0c;对世界经济、社会造成极大的负面影响。随着新冠病毒的大规模流行&#xff0c;新的病毒突变株不断出现&a…

智能座舱开启「万物交互」新革命,隐形冠军们如何突围?

伴随智能座舱在市场端逐步深入消费者心智&#xff0c;从显示、语音到视觉交互&#xff0c;各细分赛道都在蓬勃发展。 高工智能汽车研究院监测数据显示&#xff0c;2022年1-10月&#xff0c;智能座舱前装搭载量同比增长58.06%%&#xff0c;高阶智能座舱同比增长137.61%&#xf…

老大难的 Java ClassLoader 再不理解就老了

ClassLoader 是 Java 届最为神秘的技术之一&#xff0c;无数人被它伤透了脑筋&#xff0c;摸不清门道究竟在哪里。网上的文章也是一篇又一篇&#xff0c;经过本人的亲自鉴定&#xff0c;绝大部分内容都是在误导别人。本文我带读者彻底吃透 ClassLoader&#xff0c;以后其它的相…

【网络编程】servlet和session

一、servlet 问题一&#xff1a;两个不同客户端请求同一个 servlet&#xff0c;是创建了两个一模一样的 servlet&#xff0c;然后用完之后全部销毁呢&#xff0c;还是只要一个 servlet&#xff0c;tomcat 开启时创建&#xff0c;关闭时销毁? 结论&#xff1a;当 Tomcat 接收…

后端存储实战课——海量数据篇

海量数据导致存储系统慢 拆&#xff0c;将一大坨数据拆分成 N 个小坨&#xff0c;学名「分片」。 归档历史数据 将大量的不常用的历史数据移到另外一张历史表中&#xff0c;大概流程&#xff1a; 批量删除大量数据 不能一次性直接删除&#xff0c;需要分批删除&#xff08;…

SpringBoot【创建与使用】

SpringBoot【创建与使用】&#x1f34e;一.SpringBoot是什么&#x1f352;1.1 SpringBoot的优点&#x1f34e;二.SpringBoot的创建&#x1f352;2.1 使⽤ Idea 中央源创建&#x1f349;2.1.1 下载插件&#x1f349;2.1.2 创建项目&#x1f349;2.1.3 项目的加载&#x1f349;2.…

倪健中:全球元宇宙与中国文化精神 | 钱学森诞辰111周年系列活动开幕仪式

编者按&#xff1a; 倪健中会长出席纪念“中国元宇宙之父”钱学森诞辰111周年线上开幕式并发表了云致辞。 在致辞中&#xff0c;倪会长高度崇敬和赞扬钱学森对中国元宇宙事业做出的伟大贡献。我们因钱老的伟大思想&#xff0c;在探索元宇宙与中国传统文化哲学的融合进程中&…

【Kafka从成神到升仙系列 五】面试官问我 Kafka 生产者的网络架构,我直接开始从源码背起.......

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小黄&#xff0c;独角兽企业的Java开发工程师&#xff0c;CSDN博客专家&#xff0c;Java领域新星创作者&#x1f4d5;系列专栏&#xff1a;Java设计模式、数据结构和算法、Kafka从入门到成神、Kafka从成神到…