基于java+ssm+vue+mysql的社区流浪猫狗救助网站

news2024/12/25 13:25:01

项目介绍

随着迅速的发展,宠物饲养也较以前发生很大的变化,社区流浪猫狗救助网站系统以其独有的优势脱颖而出。“社区流浪猫狗救助网站”是以JAVA程序设计语言课为基础的设计出适合社区流浪猫狗救助网站,其开发过程主要包括后台数据库的建立与维护、中间业务逻辑的处理及前端界面数据的显示与交互。

目前在本课题范围内,分析了管理人员对宠物的管理现状和现有的用户对宠物管理人员的服务的要求。针对两者的要求,设计了一套基于SSM框架的宠物管理系统,前端采用vue技术。本系统的集成开发环境是idea,使用mysql作为数据库管理系统,Web服务器采用Tomcat,运用SpringMVC及Spring3.0框架技术实现。为了充分利用网络信息化的优势,本系统采用B/S结构。系统具有专门的供用户使用的前台和专门供宠物管理人员使用的后台。
(1)社区流浪猫狗救助网站可以为广大用户提供最新的宠物救助资讯,用户可以免费在网站中查阅关于宠物救助的详细信息
(2)社区流浪猫狗救助网站可以在第一时间获得宠物救助活动,从而发不到网站上,为用户提供最新信息,让更多的人可以收养宠物。
(3)社区流浪猫狗救助网站为广大用户提高了效率,提供了方便,该网站本着用户至上的原则,一切活动均以用户的角度去考虑,提供一个学习宠物救助知识的平台。
(4)社区流浪猫狗救助网站也为用户提供了手机界面,方便用户在移动设备上浏览网站,不错过任何新闻资讯。
(5)系统模块的设计,主要分为:宠物救助新闻模块,宠物百度百科模块,宠物救助论坛模块。
在这里插入图片描述

开发环境

开发语言:Java
数据库 :MySQL
系统架构:B/S
后端框架:SSM
前端框架:Vue
开发工具:IDEA或者Eclipse,JDK1.8,Maven
支持定做:Java/PHP/Python/Android/小程序/Vue/爬虫/C#/Asp.net

系统截图

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

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

部分代码

package com.controller;


import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

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

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

相关文章

Vulnhub:Os-Bytesec靶机渗透

目录 前期准备&#xff1a; 渗透过程 测试SMB PATH环境变量介绍 前期准备&#xff1a; 1.在vulnhub官网下载靶机&#xff1a;Os-Bytesec。 2.靶机用virtualbox打开&#xff0c;网络使用仅主机模式&#xff0c;攻击机kali在vmware上使用桥接模式&#xff0c;并桥接到virtru…

性能优化:Netty连接参数优化

参考资料&#xff1a; 《Netty优化》 相关文章&#xff1a; 《Netty&#xff1a;入门&#xff08;1&#xff09;》 《Netty&#xff1a;入门&#xff08;2&#xff09;》 《Netty&#xff1a;粘包与半包的处理》 《性能优化&#xff1a;TCP连接优化之三次握手》 写在开头…

JavaWeb_第5章_会话技术_Cookie+Session

JavaWeb_第5章_会话技术_CookieSession 文章目录JavaWeb_第5章_会话技术_CookieSession1&#xff0c;会话跟踪技术的概述2&#xff0c;Cookie2.1 Cookie的基本使用2.2 Cookie的原理分析2.3 Cookie的使用细节2.3.1 Cookie的存活时间2.3.2 Cookie存储中文3&#xff0c;Session3.1…

vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录

目录 1 dcmtk3.6.7编译 2 vtk9.2.2编译 3 itk5.3编译 4 opencv4.6.0 5 参考链接 编译顺序&#xff0c;qt6.2.4下载----->dcmtk3.6.7----->vtk9.2.2----->itk5.3----->opencv4.6.0 opencv4.6需要使用到vtk9.2.2&#xff0c;需要在最后编译。 opencv遇到…

[附源码]计算机毕业设计校园代取快递系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Nacos2.1.2源码修改支持高斯,postresql

1、下载代码 git clone https://github.com/alibaba/nacos.git -b 2.1.2 或 git clone https://github.com/alibaba/nacos.git 2、maven命令执行下试试能不能打包 mvn -Prelease-nacos -Dmaven.test.skiptrue -Drat.skiptrue clean install -U 或 mvn -Prelease-nacos ‘-Dmav…

盒子模型详解

菜鸟教程解释&#xff1a;所有HTML元素可以看作盒子 1.普通盒子模型&#xff1a; margin&#xff08;外边距&#xff09;&#xff1a;清除边框外的区域&#xff0c;外边距是透明的&#xff0c;不包含在background属性中。 border&#xff08;边框&#xff09;&#xff1a; 围绕…

JUC并发编程与源码分析笔记06-Java内存模型之JMM

计算机硬件存储体系 CPU的运行并不是直接操作内存而是先把内存里边的数据读到缓存&#xff0c;而内存的读和写操作的时候就会造成不一致的问题。 JVM规范中试图定义一种Java内存模型&#xff08;Java Memory Model&#xff0c;简称JMM&#xff09;来屏蔽掉各种硬件和操作系统的…

电平触发的触发器

普通的SR锁存器没有任何抗干扰能力 我们要加控制信号&#xff0c;来抵抗干扰 比如说我们不把信号直接加在门上&#xff0c;我们可以再加一级门电路&#xff0c;让这个输出和输入不在同一个门上&#xff0c;我们希望加入一个控制信号&#xff0c;来控制电路工作的时刻 对电路结…

神经网络——反向传播算法

一、多元分类 之前讨论的神经网络都是以二元分类为目的进行介绍的。 当我们有不止两种分类时&#xff08;也就是y1,2,3….y1,2,3….y1,2,3….&#xff09;&#xff0c;比如以下这种情况&#xff0c;该怎么办&#xff1f;如果我们要训练一个神经网络算法来识别路人、汽车、摩托…

mysql的主从复制与读写分离

目录 一. MySQL 主从复制原理 1.1 MySQL 支持的复制类型 1.2 MySQL主从复制的工作过程 二、主从复制实验部署 2.1、实验环境 2.2、mysql主从服务器时间同步 主服务器&#xff08;192.168.80.11&#xff09; 从服务器&#xff08;192.168.80.12/13&#xff09; 2.3、主…

[附源码]计算机毕业设计网上鲜花购物系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【机器学习】支持向量回归

有任何的书写错误、排版错误、概念错误等&#xff0c;希望大家包含指正。 在阅读本篇之前建议先学习&#xff1a; 【机器学习】支持向量机【上】硬间隔 【机器学习】支持向量机【下】软间隔与核函数 支持向量回归 支持向量回归&#xff08;support vector regression&#xf…

[附源码]计算机毕业设计基于SpringBoot的党务管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

《人类简史》笔记三—— 历史从无正义

目录 一、尽管把人人生而平等喊得震天响&#xff0c;其实还是把人分成了上下等级 二、恶性循环 三、当男人究竟有什么好的&#xff1f; 一、尽管把人人生而平等喊得震天响&#xff0c;其实还是把人分成了上下等级 古时候&#xff1a; 上等人 平民和奴隶 现在&#xff1a;…

网络结构模式,协议,端口,网络模型,arp

网络结构模式&#xff08;软件结构&#xff09; C/S结构 服务器 - 客户机&#xff0c;即 Client - Server&#xff08;C/S&#xff09;结构 C/S 结构通常采取两层结构: 服务器负责数据的管理客户机负责完成与用户的交互任务 在C/S结构中&#xff0c;应用程序分为两部分: 服务…

koa 和 express 的对比

前言 天冷了&#xff0c;唯有学习来温暖自己。 最近利用业余的时间&#xff0c;跟着 coderwhy 老师学习 node.js&#xff0c;了解以及掌握一些服务端的常见知识&#xff1a; fileSystem&#xff1a;文件读取模块。events&#xff1a;事件流Buffer&#xff1a;node 中处理二进…

高仿英雄联盟游戏网页制作作业 英雄联盟LOL游戏HTML网页设计模板 简单学生网页设计 静态HTML CSS网站制作成品

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

Java—代理

文章目录先举一个例子&#xff1a;开闭原则什么是代理两种调用的方式&#xff1a;代理定义&#xff1a;代理的实现方式静态代理代理的目的&#xff1a;如何让程序知道要增强的功能是谁&#xff1f;静态代理缺点&#xff1a;动态代理什么是动态代理动态代理的实现静态代理和动态…

26. SAP ABAP OData Gateway 框架里 /IWFND, /IWBEP 这些缩写代表了什么含义?

文章目录 GWFNDBEP本文参考链接本教程前一篇文章 - 25. 答疑 - SAP OData 框架处理 Metadata 元数据请求的实现细节,前后端组件部署在同一台物理服务器,我们深入了 SAP ABAP OData 框架来学习其元数据请求的执行明细。 我们在文章里看到了不少以 /IWFND/, /IWBEP 这些命名空…