首页 > 分享 > 基于SSM的宠物领养系统的设计与实现

基于SSM的宠物领养系统的设计与实现

系统描述

本课题是根据用户的需要以及网络的优势建立的一个宠物领养系统,来满足用宠物领养的需求。

本宠物领养系统应用JSP技术,Java语言,MYSQL数据库存储数据,基于B/S结构开发。在网站的整个开发过程中,首先对系统进行了需求分析,设计出系统的主要功能模块,其次对网站进行总体规划和详细设计,最后对宠物领养系统进行了系统测试,包括测试概述,测试方法,测试方案等,并对测试结果进行了分析和总结,进而得出系统的不足及需要改进的地方,为以后的系统维护和扩展提供了方便。

本系统布局合理、色彩搭配和谐、框架结构设计清晰,具有操作简单,界面清晰,管理方便,功能完善等优势,有很高的使用价值。

技术描述

文章末尾获取源码

开发语言:Java

技术框架:SSM

前端语言:VueHTML

持久层框架:Mybatis

服务器:Tomcat78910

数据库:MySQL5.7以上

项目管理工具:Maven

项目开发工具:IDEAEclipse

系统展示

用户进入本系统可查看系统信息,系统主界面展示如图5-1所示。

 

未有账号的用户可进行注册操作,在注册的时候可根据提示输入相关注册信息,用户注册界面如图5-2所示 

 用户要想进行申请领养宠物操作必须登录系统,用户登录界面展示如图5-3所示。

 用户可查看送养宠物详情信息,登录后可进行申请领养操作,送养宠物详情界面展示如图5-4所示。

 

用户登录后可添加送养宠物信息,添加送养宠物界面如图5-5所示。

 用户登录后还可添加宠物秀,添加宠物秀界面如图5-6所示。

 用户可管理个人信息,个人中心界面展示如图5-7所示。

 管理员要想进入系统后台进行管理操作,必须登录系统后台,管理员登录界面如图5-8所示

 管理员在用户管理界面可查看所有用户信息,对已有用户信息可进行修改和删除操作,也可添加用户信息,用户管理界面如图5-8所示

 管理员可查看所有送养宠物信息,并可对其进行审核、修改和删除操作,送养宠物管理界面展示如图5-10所示。

 管理员可添加、修改和删除地区类型信息,地区类型管理界面如图5-11所示,添加地区类型界面展示如图5-12所示。

 

管理员可查看所有所有申请领养信息,并可对其进行审核操作,申请领养管理界面如图5-13所示。 

 管理员可查看所有宠物秀信息,并可对其进行删除操作,宠物秀管理界面如图5-14所示。

 

代码实现:

跨域实现

package com.interceptor;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.HashMap;

import java.util.Map;

import com.alibaba.fastjson.JSONObject;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang3.StringUtils;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import org.springframework.web.method.HandlerMethod;

import org.springframework.web.servlet.HandlerInterceptor;

import com.annotation.IgnoreAuth;

import com.entity.EIException;

import com.entity.TokenEntity;

import com.service.TokenService;

import com.utils.R;

@Component

public class AuthorizationInterceptor implements HandlerInterceptor {

public static final String LOGIN_TOKEN_KEY = "Token";

@Autowired

private TokenService tokenService;

@Override

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");

response.setHeader("Access-Control-Max-Age", "3600");

response.setHeader("Access-Control-Allow-Credentials", "true");

response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");

response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));

IgnoreAuth annotation;

if (handler instanceof HandlerMethod) {

annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);

} else {

return true;

}

String token = request.getHeader(LOGIN_TOKEN_KEY);

if(annotation!=null) {

return true;

}

TokenEntity tokenEntity = null;

if(StringUtils.isNotBlank(token)) {

tokenEntity = tokenService.getTokenEntity(token);

}

if(tokenEntity != null) {

request.getSession().setAttribute("userId", tokenEntity.getUserid());

request.getSession().setAttribute("role", tokenEntity.getRole());

request.getSession().setAttribute("tableName", tokenEntity.getTablename());

request.getSession().setAttribute("username", tokenEntity.getUsername());

return true;

}

PrintWriter writer = null;

response.setCharacterEncoding("UTF-8");

response.setContentType("application/json; charset=utf-8");

try {

writer = response.getWriter();

writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));

} finally {

if(writer != null){

writer.close();

}

}

return false;

}

}

登录实现

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.MD5Util;

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){

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);

}

@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){

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){

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();

}

}

相关知识

基于SSM的宠物领养系统的设计与实现
毕业设计:基于java的宠物领养系统设计与实现
基于SSM的宠物领养系统【源码开源】
基于ssm的有宠在线宠物商城系统的设计与实现.docx
基于ssm宠物商店领养管理系统毕业论文.docx
SSM宠物领养管理系统
springboot179基于javaweb的流浪宠物管理系统的设计与实现
基于SSM实现宠物领养网站平台管理系统
基于Java+MySQL+SpringBoot的流浪宠物管理系统的设计与实现
java/jsp/ssm流浪动物领养系统【2024年毕设】

网址: 基于SSM的宠物领养系统的设计与实现 https://m.mcbbbk.com/newsview108151.html

所属分类:萌宠日常
上一篇: 基于 SSM 框架的宠物用品电子
下一篇: java&springboot&