Java项目:27 基于SSM+JSP实现的大学校园兼职平台

作者主页:舒克日记

简介:Java领域优质创作者、Java项目、学习资料、技术互助

文中获取源码

项目介绍

系统介绍

基于SSM+JSP实现的大学校园兼职平台分为前台与管理员两块

管理端分为8大模块,分别是用户管理、兼职管理、帖子管理、聊天管理、广告管理、信箱管理、收藏管理、系统管理等模块

前台有兼职查看、论坛交流、平台公告等主要菜单项

用户登陆后可查看兼职详情、与发布者交流、选择喜欢的兼职

点击查看演示视频

环境要求

1.运行环境:最好是java jdk1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.tomcat环境:Tomcat7.x,8.X,9.x版本均可

4.硬件环境:windows7/8/10 4G内存以上;或者Mac OS;

5.是否Maven项目:是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven.项目

6.数据库:MySql5.7/8.0等版本均可;

技术栈

运行环境:jdk8 + tomcat9 + mysql5.7 + windows10

服务端技术:Spring + SpringMvc + Mybatis + jsp + Jquery + Layui

使用说明

1.使用Navicati或者其它工具,在mysql中创建对应sq文件名称的数据库,并导入项目的sql文件;

2.使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;

3.将项目中config-propertiesi配置文件中的数据库配置改为自己的配置,然后运行;

运行指导

idea导入源码空间站顶目教程说明(Vindows版)-ssm篇:

http://mtw.so/5MHvZq

源码地址:http://codegym.top

运行截图

前端界面

微信截图_20240223190322

微信截图_20240223190349

微信截图_20240223190356

微信截图_20240223190403

微信截图_20240223190408

微信截图_20240223190414

微信截图_20240223190422

微信截图_20240223190438

后台界面

微信截图_20240223190524

微信截图_20240223190529

微信截图_20240223190535

微信截图_20240223190544

微信截图_20240223190557

微信截图_20240223190603

代码

PcIndexController

package com.work.controller.pc;import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.work.common.utils.BaseUtil;
import com.work.common.utils.JsonUtil;
import com.work.common.utils.Page;
import com.work.pojo.Adver;
import com.work.pojo.Banner;
import com.work.pojo.Chat;
import com.work.pojo.Forum;
import com.work.pojo.ForumReply;
import com.work.pojo.Notice;
import com.work.pojo.QueryVo;
import com.work.pojo.SystemUpset;
import com.work.pojo.User;
import com.work.pojo.Work;
import com.work.service.AdverService;
import com.work.service.BannerService;
import com.work.service.ChatService;
import com.work.service.ForumReplyService;
import com.work.service.ForumService;
import com.work.service.NoticeService;
import com.work.service.SystemUpsetService;
import com.work.service.UserService;
import com.work.service.WorkService;@Controller
@RequestMapping("/pc/index")
public class PcIndexController extends BaseUtil{@Autowiredprivate AdverService adverService;@Autowiredprivate NoticeService noticeService;@Autowiredprivate WorkService workService;@Autowiredprivate UserService userService;@Autowiredprivate ForumService forumService;@Autowiredprivate ChatService chatService;@Autowiredprivate BannerService bannerService;@Autowiredprivate SystemUpsetService systemUpsetService;@Autowiredprivate ForumReplyService forumReplyService;//公共头部@RequestMapping(value="/goHeader.action")public ModelAndView goHeader(HttpServletRequest request,ModelAndView mv,SystemUpset systemUpset){List<SystemUpset> systemUpsets = systemUpsetService.getSystemUpsetList(systemUpset, null, null);if(systemUpsets.size() > 0){mv.addObject("systemUpset", systemUpsets.get(0));}mv.setViewName("pc/header");return mv;}//公共尾部@RequestMapping(value="/goFooter.action")public ModelAndView goFooter(ModelAndView mv,SystemUpset systemUpset){List<SystemUpset> systemUpsets = systemUpsetService.getSystemUpsetList(systemUpset, null, null);if(systemUpsets.size() > 0){mv.addObject("systemUpset", systemUpsets.get(0));}mv.setViewName("pc/footer");return mv;}//去首页面@RequestMapping(value="/goIndex.action")public ModelAndView goLogin(HttpServletRequest request,ModelAndView mv, Work work, QueryVo vo){//判断滚动条String isScroll = "f";//获取兼职Page<Work> page=new Page<Work>();if(work.getWorkCategory() != null && !work.getWorkCategory().equals("")){isScroll = "t";
//			try {
//				work.setWorkCategory(new String(work.getWorkCategory().getBytes("ISO8859-1"),"UTF-8"));
//			} catch (UnsupportedEncodingException e) {
//				e.printStackTrace();
//			}}System.out.println(work.getWorkCategory());work.setIsEffect(1);work.setIsAuditing(1);if(vo.getSize()!=8){ vo.setSize(8);}if(vo.getPage()==null){vo.setPage(1);}//每页数page.setSize(vo.getSize());if (vo != null){//判断当前页if(vo.getPage() != null) {page.setPage(vo.getPage());vo.setStartRow((vo.getPage() -1)*vo.getSize());}page.setTotal(workService.getWorkListCount(work));page.setRows(workService.getWorkList(work, (vo.getPage()-1) * vo.getSize(), vo.getSize()));}mv.addObject("page", page);//系统配置SystemUpset systemUpset = new SystemUpset();List<SystemUpset> systemUpsets = systemUpsetService.getSystemUpsetList(systemUpset, null, null);if(systemUpsets.size() > 0){mv.addObject("systemUpset", systemUpsets.get(0));}//轮播图Banner banner = new Banner();banner.setIsEffect(1);List<Banner> banners = bannerService.getBannerList(banner, null, null);mv.addObject("banners", banners);User pcUser = (User) request.getSession().getAttribute("pcUser");mv.addObject("pcUser", pcUser);if(vo.getPage() != 1){isScroll = "t";}mv.addObject("isScroll", isScroll);mv.setViewName("pc/index");return mv;}//首页获取分类兼职@RequestMapping("/getWorkByWorkCate")public void getWorkByWorkCate(HttpServletResponse response,Work work){work.setIsEffect(1);work.setIsAuditing(1);Integer count = workService.getWorkListCount(work);List<Work> works = workService.getWorkList(work, 0, 8);SimpleDateFormat cTime = new SimpleDateFormat("yyyy-MM-dd");if(works.size() > 0){for(int i = 0; i<works.size(); i++){works.get(i).setCreateTimes(cTime.format(works.get(i).getCreateTime()));}}output(response,JsonUtil.buildJsonByTotalCount(works, count));}//查看兼职@RequestMapping(value="/goFindWork.action")public ModelAndView goFindWork(ModelAndView mv,Work work){SystemUpset systemUpset = new SystemUpset();List<SystemUpset> systemUpsets = systemUpsetService.getSystemUpsetList(systemUpset, null, null);if(systemUpsets.size() > 0){mv.addObject("systemUpset", systemUpsets.get(0));}work = workService.getWorkById(work.getId());mv.addObject("work", work);mv.setViewName("pc/find_work");return mv;}//查看用户资料@RequestMapping(value="/goFindUser.action")public ModelAndView goFindUser(HttpServletRequest request,ModelAndView mv,SystemUpset systemUpset,User user){List<SystemUpset> systemUpsets = systemUpsetService.getSystemUpsetList(systemUpset, null, null);if(systemUpsets.size() > 0){mv.addObject("systemUpset", systemUpsets.get(0));}user = userService.getUserById(user.getUserId());mv.addObject("user", user);User pcUser = (User) request.getSession().getAttribute("pcUser");mv.addObject("pcUser", pcUser);mv.setViewName("pc/user_info");return mv;}//去聊天页面@RequestMapping(value="/goChat.action")public ModelAndView goChat(HttpServletRequest request,ModelAndView mv,SystemUpset systemUpset,User user){List<SystemUpset> systemUpsets = systemUpsetService.getSystemUpsetList(systemUpset, null, null);if(systemUpsets.size() > 0){mv.addObject("systemUpset", systemUpsets.get(0));}user = userService.getUserById(user.getUserId());int userId = user.getUserId();mv.addObject("user", user);//Session信息User pcUser = (User) request.getSession().getAttribute("pcUser");mv.addObject("pcUser", pcUser);if(pcUser == null){mv.setViewName("pc/login");}else if(pcUser.getUserId() == userId){mv.addObject("updatePage", "y");mv.setViewName("pc/index");}else{//更新isLookChat chat = new Chat();chat.setUserIdFa(user.getUserId());chat.setUserIdJie(pcUser.getUserId());chat.setIsLook(1);chatService.updateChat(chat);mv.setViewName("pc/chat");}return mv;}//去论坛页面@RequestMapping(value="/goForum.action")public ModelAndView goForum(HttpServletRequest request,ModelAndView mv, QueryVo vo){User pcUser = (User) request.getSession().getAttribute("pcUser");mv.addObject("pcUser", pcUser);//获取广告Adver adver = new Adver();List<Adver> advers = adverService.getAdverList(adver, null, null);mv.addObject("advers", advers);//获取帖子Page<Forum> page=new Page<Forum>();Forum forum = new Forum();forum.setIsEffect(1);if(vo.getSize()!=10){ vo.setSize(10);}if(vo.getPage()==null){vo.setPage(1);}//每页数page.setSize(vo.getSize());if (vo != null){//判断当前页if(vo.getPage() != null) {page.setPage(vo.getPage());vo.setStartRow((vo.getPage() -1)*vo.getSize());}page.setTotal(forumService.getForumListCount(forum));page.setRows(forumService.getForumList(forum, (vo.getPage()-1) * vo.getSize(), vo.getSize()));}//获取评论ForumReply forumReply = new ForumReply();for(int i=0; i<page.getRows().size(); i++){forumReply.setForumId(page.getRows().get(i).getForumId());page.getRows().get(i).setForumReplys(forumReplyService.getForumReplyList(forumReply, null, null));}mv.addObject("page", page);mv.setViewName("pc/forum");return mv;}//去信箱页面@RequestMapping(value="/goMailbox.action")public ModelAndView goMailbox(HttpServletRequest request,ModelAndView mv,SystemUpset systemUpset){List<SystemUpset> systemUpsets = systemUpsetService.getSystemUpsetList(systemUpset, null, null);if(systemUpsets.size() > 0){mv.addObject("systemUpset", systemUpsets.get(0));}User pcUser = (User) request.getSession().getAttribute("pcUser");mv.addObject("pcUser", pcUser);if(pcUser == null){mv.setViewName("pc/login");}else{mv.setViewName("pc/mailbox");}return mv;}//去发布兼职@RequestMapping(value="/goPublishWork.action")public ModelAndView goPublishWork(HttpServletRequest request,ModelAndView mv,SystemUpset systemUpset){List<SystemUpset> systemUpsets = systemUpsetService.getSystemUpsetList(systemUpset, null, null);if(systemUpsets.size() > 0){mv.addObject("systemUpset", systemUpsets.get(0));}User pcUser = (User) request.getSession().getAttribute("pcUser");mv.addObject("pcUser", pcUser);if(pcUser == null){mv.setViewName("pc/login");}else{mv.setViewName("pc/publish_work");}return mv;}//去公告页面@RequestMapping(value="/goNotice.action")public ModelAndView goNotice(HttpServletRequest request, ModelAndView mv, QueryVo vo){//获取个公告Page<Notice> page=new Page<Notice>();Notice notice = new Notice();if(vo.getSize()!=12){ vo.setSize(12);}if(vo.getPage()==null){vo.setPage(1);}//每页数page.setSize(vo.getSize());if (vo != null){//判断当前页if(vo.getPage() != null) {page.setPage(vo.getPage());vo.setStartRow((vo.getPage() -1)*vo.getSize());}page.setTotal(noticeService.getNoticeListCount(notice));page.setRows(noticeService.getNoticeList(notice, (vo.getPage()-1) * vo.getSize(), vo.getSize()));}mv.addObject("page", page);mv.setViewName("pc/notice");return mv;}//获取公告@RequestMapping(value="/getNotice.action")public void getNotice(Notice notice,HttpServletRequest request,HttpServletResponse response){notice = noticeService.getNoticeById(notice.getId());SimpleDateFormat cTime = new SimpleDateFormat("yyyy-MM-dd");notice.setCreateTimes(cTime.format(notice.getCreateTime()));output(response,JsonUtil.objectToJson(notice));}
}

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

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

相关文章

研学活动报名平台系统功能清单

中小学生社会实践活动、研学旅行等素质教育活动报名与管理平台&#xff0c;功能包含&#xff1a;活动分类&#xff0c;活动管理&#xff0c;在线报名缴费&#xff0c;扫码核销&#xff0c;会员特权体系&#xff0c;在线商城&#xff0c;研学互动。系统支持入驻老师自行创建研学…

【Java程序员面试专栏 数据结构】一 高频面试算法题:数组

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊数组,包括数组合并,滑动窗口解决最长无重复子数组问题,图形法解下一个排列问题,以及一些常见的二维矩阵问题,所以放到一篇Blog中集中练习 题目…

如何在nginx增加健康检查接口

在docker中部署的nginx或者在nginx部署的nginx一般是需要一个健康检查接口的 这样的话&#xff0c;就可以确定容器当前的状态是否是健康的 那么&#xff0c;如何给nginx增加一个健康检查的接口呢&#xff1f; 接下来呢&#xff0c;我们就演示一个在nginx中如何增加健康检查的…

无人机竞赛常用目标检测方法--色块检测

本次开源计划主要针对大学生无人机相关竞赛的视觉算法开发。 开源代码仓库链接&#xff1a;https://github.com/zzhmx/Using-color-gamut-limitations-such-as-HSV-and-RGB-for-object-detection.git 主要使用传统算法&#xff0c;如果想要使用进阶版机器学习算法&#xff0c;请…

03 表数据基本操作

文章目录 插入(insert)查询(select)where子句更新表记录(update)删除表记录&#xff08;delete&#xff09;表字段的操作(alter)时间类型数据 插入(insert) insert into 表名 values(值1&#xff0c;值2...),(值1&#xff0c;值2...),...; insert into 表名 (字段1,...) value…

使用phpstudy搭建eXtplorer网站并结合内网穿透远程访问本地资源

文章目录 1. 前言2. eXtplorer网站搭建2.1 eXtplorer下载和安装2.2 eXtplorer网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1. 前言 通过互联网传输文件&#xff0c;是互联网最重要的应用之一&#xff0c;无论是…

定制红酒:如何开启定制红酒之旅,享受个性化服务

在追求品质生活的今天&#xff0c;人们越来越注重个性化的服务和产品。云仓酒庄洒派定制红酒&#xff0c;就是为满足消费者的这一需求而生。它提供了一个平台&#xff0c;让消费者可以根据自己的喜好和需求&#xff0c;定制专属的红酒&#xff0c;享受个性化的服务。那么&#…

【python】网络爬虫与信息提取--scrapy爬虫框架介绍

一、scrapy爬虫框架介绍 scrapy是一个功能强大的网络爬虫框架&#xff0c;是python非常优秀的第三方库&#xff0c;也是基于python实现网络爬虫的重要技术路线。scrapy不是哟个函数功能库&#xff0c;而是一个爬虫框架。 爬虫框架&#xff1a;是实现爬虫功能的一个软件结构和功…

VegaPrime 2013 VP2013

Vega Prime 2013 VegaPrime 2013 VP2013

ChatGPT回答模式

你发现了吗&#xff0c;ChatGPT的回答总是遵循这些类型方式。 目录 1.解释模式 2.类比模式 3.列举模式 4.限制模式 5.转换模式 6.增改模式 7.对比模式 8.翻译模式 9.模拟模式 10.推理模式 1.解释模式 ChatGPT 在回答问题或提供信息时&#xff0c;不仅仅给出…

文件上传漏洞--Upload-labs--Pass20--数组绕过

一、漏洞原理 漏洞来源&#xff1a;count()函数漏洞。 现自定义一个数组 arr[]&#xff0c;定义arr[0]1,arr[3]2, 此时count(arr)的值为2&#xff0c;则arr[count[arr]]即为arr[2]&#xff0c;但是arr[2]未定义&#xff0c;即为一个空值&#xff0c;若使用count()函数的本意是…

谷粒商城-nginx搭建域名访问环境性能压测

nginx搭建域名访问环境 正向代理与反向代理 正向代理&#xff1a;客户端向代理服务器发请求并指定目标服务器&#xff0c;代理向目标服务器转交请求并将获得的内容返回给客户端。 反向代理&#xff1a;用户直接访问反向代理服务器就可以获得目标服务器的资源。反向代理服务器…

主流的开发语言和开发环境介绍

个人浅见&#xff0c;不喜勿喷&#xff0c;谢谢 软件开发是一个涉及多个方面的复杂过程&#xff0c;其中包括选择合适的编程语言和开发环境。编程语言是软件开发的核心&#xff0c;它定义了程序员用来编写指令的语法和规则。而开发环境则提供了编写、测试和调试代码的工具和平台…

天锐绿盾 | 文件数据\资料防泄漏软件 \ 自动智能透明加密保护

怎么防止公司办公终端文件数据资料外泄? 防止公司办公终端文件数据资料外泄是非常重要的&#xff0c;以下是一些有效的措施&#xff1a; 限制访问权限&#xff1a;根据员工的职责和需求&#xff0c;设定文件和数据资料的访问权限。确保只有授权人员才能访问敏感信息。 加密存…

Codeforces Round 927 (Div. 3)

F. Feed Cats 题目大意 给一长度为的数轴&#xff0c;个区间在数轴上选取一些点作为特殊点在满足个区间中&#xff0c;每个区间内只能有一个特殊点问最多能选多少个特殊点 解题思路 对于每个点有放或不放两种状态考虑表示位置可能放或不放的最优结果若不放&#xff0c;若放…

java.lang.IllegalStateException: Promise already completed.

spark submit 提交作业的时候提示Promise already complete 完整日志如下 File "/data5/hadoop/yarn/local/usercache/processuser/appcache/application_1706192609294_136972/container_e41_1706192609294_136972_02_000001/py4j-0.10.6-src.zip/py4j/protocol.py"…

C#,动态规划(DP)丢鸡蛋问题(Egg Dropping Puzzle)的三种算法与源代码

1 扔鸡蛋问题 动态规划&#xff08;Dynamic Programming&#xff0c;DP&#xff09;是运筹学的一个分支&#xff0c;是求解决策过程最优化的过程。20世纪50年代初&#xff0c;美国数学家贝尔曼&#xff08;R.Bellman&#xff09;等人在研究多阶段决策过程的优化问题时&#xf…

猜谜“龘”人速来!网安人元宵灯谜有礼了

​​灯笼高挂&#xff0c;星光璀璨&#xff0c;品味糯叽叽的元宵&#xff0c;以灯谜为媒&#xff0c;亚信安全邀你共赴元宵佳节。 热辣滚烫的班先别上了&#xff0c;文末有奖竞猜&#xff0c;快来参与&#xff01; 喜闹元宵 谜面一&#xff1a;一路向上成大业&#xff1b; 谜…

进程的相关命令,进程的创建、调度、消亡,进程相关函数接口

我要成为嵌入式高手之2月23日Linux高编第八天&#xff01;&#xff01; 学习笔记 进程 一、进程基本概念 程序&#xff1a;存放在外存中的一段数据组成的文件 进程&#xff1a;是一个程序动态执行的过程&#xff0c;包括进程的创建、进程的调度、进程的消亡 二、进程相关…

虚拟列表【vue】等高虚拟列表/非等高虚拟列表

文章目录 1、等高虚拟列表2、非等高虚拟列表 1、等高虚拟列表 参考文章1 参考文章2 <!-- eslint-disable vue/multi-word-component-names --> <template><divclass"waterfall-wrapper"ref"waterfallWrapperRef"scroll"handleScro…