失物招领|基于Web的校园失物招领系统的设计与实现(二)

简介: 失物招领|基于Web的校园失物招领系统的设计与实现

失物招领|基于Web的校园失物招领系统的设计与实现(一)https://developer.aliyun.com/article/1423254


四,核心代码展示

package com.znz.ssm.blog.controller.admin;
import com.znz.ssm.blog.entity.Category;
import com.znz.ssm.blog.service.ArticleService;
import com.znz.ssm.blog.service.CategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
/**
 * @author znz
 */
@Controller
@RequestMapping("/admin/category")
public class BackCategoryController {
    @Autowired
    private ArticleService articleService;
    @Autowired
    private CategoryService categoryService;
    /**
     * 后台分类列表显示
     *
     * @return
     */
    @RequestMapping(value = "")
    public ModelAndView categoryList()  {
        ModelAndView modelandview = new ModelAndView();
        List<Category> categoryList = categoryService.listCategoryWithCount();
        modelandview.addObject("categoryList",categoryList);
        modelandview.setViewName("Admin/Category/index");
        return modelandview;
    }
    /**
     * 后台添加分类提交
     *
     * @param category
     * @return
     */
    @RequestMapping(value = "/insertSubmit",method = RequestMethod.POST)
    public String insertCategorySubmit(Category category)  {
        categoryService.insertCategory(category);
        return "redirect:/admin/category";
    }
    /**
     * 删除分类
     *
     * @param id
     * @return
     */
    @RequestMapping(value = "/delete/{id}")
    public String deleteCategory(@PathVariable("id") Integer id)  {
        //禁止删除有文章的分类
        int count = articleService.countArticleByCategoryId(id);
        if (count == 0) {
            categoryService.deleteCategory(id);
        }
        return "redirect:/admin/category";
    }
    /**
     * 编辑分类页面显示
     *
     * @param id
     * @return
     */
    @RequestMapping(value = "/edit/{id}")
    public ModelAndView editCategoryView(@PathVariable("id") Integer id)  {
        ModelAndView modelAndView = new ModelAndView();
        Category category =  categoryService.getCategoryById(id);
        modelAndView.addObject("category",category);
        List<Category> categoryList = categoryService.listCategoryWithCount();
        modelAndView.addObject("categoryList",categoryList);
        modelAndView.setViewName("Admin/Category/edit");
        return modelAndView;
    }
    /**
     * 编辑分类提交
     *
     * @param category 分类
     * @return 重定向
     */
    @RequestMapping(value = "/editSubmit",method = RequestMethod.POST)
    public String editCategorySubmit(Category category)  {
        categoryService.updateCategory(category);
        return "redirect:/admin/category";
    }
}
package com.czmec.action;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.czmec.bean.WordsBean;
import com.czmec.service.WordsService;
//用户操作
@Controller
@RequestMapping("userAction")
public class UserAction {
  @Resource
  WordsService wordsservice;
  //主页面
  @RequestMapping("main")
  public String UserMain(){
    return "main";
  }
  //感恩
  @RequestMapping("WordsList")
  public String WordsList(HttpServletRequest request){
   List<WordsBean> list=  wordsservice.SelectAllWords();
   System.out.println(list);
   request.setAttribute("wordslist",list);
    return "WordsList";
  }
  //添加一条感恩信
  @RequestMapping("addWords")
  public String AddWords(WordsBean wBean,HttpServletRequest request){
     wordsservice.AddWords(wBean);
    List<WordsBean> list= wordsservice.SelectAllWords();
     System.out.println(list);
     request.setAttribute("wordslist",list);
      return "WordsList";
  }
  //删除一条感恩信
    @RequestMapping("DelWords")
    public String DelWords(WordsBean wBean,HttpServletRequest request){
      wordsservice.DelWords(wBean);
      List<WordsBean> list= wordsservice.SelectAllWords();
       System.out.println(list);
       request.setAttribute("wordslist",list);
        return "WordsList";
    }
}
package com.czmec.action;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.List;
import java.util.Random;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.czmec.bean.UserBean;
import com.czmec.service.AdminService;
import com.czmec.service.UserService;
/*
 * 用户登录action
 */
@Controller
@RequestMapping("user")
public class UserLogin {
  @Resource(name="adminService")
  AdminService admiservice;
  @Resource(name="userService")
  private UserService userservice;
  @RequestMapping("login")
  public String login(){
    return "login";
  }
  @RequestMapping("checkLogin")
  public String checkLogin(UserBean user,@Param("checkcode")String checkcode,HttpSession session,HttpServletRequest request){
    String piccode=(String) request.getSession().getAttribute("piccode");
     checkcode=checkcode.toUpperCase();//全部改成大写
    if(checkcode.equals(piccode)){
          UserBean user1=userservice.login(user);
        if(user1!=null){
          if(user1.getRole()==0){
        session.setAttribute("countfound", admiservice.SelectCountFoundGoods());
        session.setAttribute("countlost",admiservice.SelectCountLostGoods());
        session.setAttribute("countuser", admiservice.SelectCountUser());
        session.setAttribute("user", user1);
          List<UserBean> list=  admiservice.SelectUser();
          session.setAttribute("listUser", list);
        return "/admin/index";
      }else {
        session.setAttribute("user", user1);
          return "index";
      }
    }
    else {
      session.setAttribute("error", "用户名或密码错误");
       return "Error";
    }
  }
  else {
    request.setAttribute("image", "验证码不正确");
     return "login";
    }
}
  @RequestMapping("error")
  public String Error(){
    return "Error";
  }
  //用户注册界面
  @RequestMapping("register")
  public String register(){
    return "register";
  }
  //用户注册界面功能
    @RequestMapping("registerAction")
    public String registerAction(UserBean user,HttpServletRequest req){
      user.setRole(1);
    int i=  userservice.AddUser(user);
    if (i>0) {
      req.setAttribute("message", "注册成功");
      }else{
        req.setAttribute("message", "注册失败");
      }
      return "login";
    }
  //用户退出系统
    @RequestMapping("out")
    public String out(){
      return "login";
    }
    //发布寻物信息
    @RequestMapping("AddLost")
  public String Addlost(){
    return "AddLost";
  }
    //验证码的实现
    @RequestMapping("image")
    public void Image(HttpServletRequest request,HttpServletResponse response) throws IOException{
      BufferedImage bi=new BufferedImage(68,22,BufferedImage.TYPE_INT_RGB);
    Graphics g=bi.getGraphics();
    Color c=new Color(200,150,255);
    g.setColor(c);
    //背景
    g.fillRect(0, 0, 68, 22);
    char[] ch="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();
    //随机获取4个字符
    Random r=new Random();
    //范围数组,随机的位置
    int len=ch.length,index;
    StringBuffer  sb=new StringBuffer();
    for(int i=0;i<4;i++)
    {
      //获取随机数
      index=r.nextInt(len);//获得一个随机的位置,一个字符
      //放在图片上
      g.setColor(new Color(r.nextInt(88),r.nextInt(188),r.nextInt(255)));//给个颜色
      //字符画在图片上,及位置
      g.drawString(ch[index]+"", (i*15)+3, 18);
      //字符保存StringBuffer
      sb.append(ch[index]);
    }
    request.getSession().setAttribute("piccode", sb.toString());
    //输出
    ImageIO.write(bi, "JPG", response.getOutputStream());
    }
}

五,项目总结

校园失物招领系统使得用户更加方便、有效的找回丢失物品,也使得管理者在工作的时候更加简单、轻松,通过合理的分配人力、物力资源,提高校园失物招领工作的效率和质量。

主要特点为:

①界面简洁美观,容易上手。

②硬件要求低,容易维护。

相关文章
|
3月前
|
JSON JavaScript 前端开发
实现ROS系统的Websocket传输,向Web应用推送sensor_msgs::Image数据
WebSocket协议具有低延迟和高实时性的特性,适用于实时数据推送。但是,它也依赖于网络条件,因此,在通过WebSocket发送数据时,保证网络稳定性也是重要的。以上步骤为建立基本的WebSocket传输提供了框架,并可以根据实际需求进行调整和优化。
241 0
|
8月前
|
监控 关系型数据库 MySQL
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
178 0
|
11月前
|
存储 消息中间件 缓存
构建互联网高性能WEB系统经验总结
如何构建一个优秀的高性能、高可靠的应用系统对每一个开发者至关重要
86 2
|
12月前
|
机器学习/深度学习 数据处理 数据库
基于Django的深度学习视频分类Web系统
基于Django的深度学习视频分类Web系统
163 4
基于Django的深度学习视频分类Web系统
|
11月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
231 2
|
11月前
|
存储 消息中间件 缓存
构建互联网高性能WEB系统经验总结
构建互联网高性能WEB系统经验总结
121 16
|
11月前
|
负载均衡 监控 算法
论负载均衡技术在Web系统中的应用
【11月更文挑战第4天】在当今高并发的互联网环境中,负载均衡技术已经成为提升Web系统性能不可或缺的一环。通过有效地将请求分发到多个服务器上,负载均衡不仅能够提高系统的响应速度和处理能力,还能增强系统的可扩展性和稳定性。本文将结合我参与的一个实际软件项目,从项目概述、负载均衡算法原理以及实际应用三个方面,深入探讨负载均衡技术在Web系统中的应用。
347 2
|
5月前
|
Web App开发 前端开发 JavaScript
鸿蒙5开发宝藏案例分享---Web适配一多开发实践
这是一份实用的鸿蒙Web多设备适配开发指南,针对开发者在不同屏幕尺寸下的布局难题提供了解决方案。文章通过三大法宝(相对单位、媒体查询和窗口监听)详细介绍如何实现智能适配,并提供了多个实战案例,如宫格布局、对话框变形和自适应轮播图等。此外,还分享了调试技巧及工具推荐,帮助开发者快速上手并优化性能。最后鼓励读者实践探索,并提示更多官方资源等待发现。
|
12月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
635 3
|
7月前
|
关系型数据库 MySQL 数据库
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!
TIS 是一款基于Web-UI的开源大数据集成工具,通过与人大金仓Kingbase的深度整合,提供高效、灵活的实时数据集成方案。它支持增量数据监听和实时写入,兼容MySQL、PostgreSQL和Oracle模式,无需编写复杂脚本,操作简单直观,特别适合非专业开发人员使用。TIS率先实现了Kingbase CDC连接器的整合,成为业界首个开箱即用的Kingbase CDC数据同步解决方案,助力企业数字化转型。
1242 5
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!