Java项目:SSM企业门户网站

news2024/11/24 12:45:11

作者主页:源码空间站2022

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

文末获取源码

项目介绍

本项目分为前后台,前台主要用于官网展示,后台主要为管理员管理,

管理员角色包含以下功能:
管理员登录,文章分类管理,文章列表管理,友情链接管理,招聘管理,留言管理,滚动图片管理,联系我们,关于我们,网站管理员管理,日志管理等功能。

用户角色包含以下功能:

用户首页,关于我们,服务领域发布,新闻动态,诚聘英才,在线留言,联系我们等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 

5.数据库:MySql 5.7版本;

6.是否Maven项目:是;

技术栈

1. 后端:Spring+SpringMVC+Mybatis

2. 前端:JSP+CSS+JavaScript+bootstrap+jquery

使用说明

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

2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;

3. 将项目中conf.properties配置文件中的数据库配置改为自己的配置;

4. 运行项目,输入localhost:8080/ 登录

运行截图

前台界面

管理端页面

代码相关

文章管理控制器

@Controller("frontArticleController")
@RequestMapping("/")
public class ArticleAction extends BaseController<Article>{
    private static final String page_toList = "/front/article/articleList";
    private static final String page_toEdit = "/front/article/articleInfo";

    @Autowired
    private ArticleService articleService;
    @Override
    public Services<Article> getService() {
        return articleService;
    }
    public ArticleAction(){
        super.page_toList = page_toList;
        super.page_toEdit = page_toEdit;
    }

    /**
     * 跳转到文章列表
     * @param request
     * @param article
     * @return
     * @throws Exception
     */
    @RequestMapping("article")
    public String article(HttpServletRequest request, @ModelAttribute("e") Article article) throws Exception {

        this.initPageSelect();
        setParamWhenInitQuery(article);
        int offset = 0;
        if(request.getParameter("pager.offset")!=null){
            offset = Integer.parseInt(request.getParameter("pager.offset"));
        }
        if(offset < 0){
            offset=0;
        }
        article.setOffset(offset);

        PageModel page = getService().selectPageList(article);
        if(page == null){
            page = new PageModel();
        }
        page.setPageSize(10);    //设置单页数据为10
        page.setPagerSize((page.getTotal() + page.getPageSize() - 1)
                / page.getPageSize());
        selectListAfter(page);
        page.setPagerUrl("article");
        request.setAttribute("pager", page);
        return page_toList;
    }


    /**
     * 文章详情
     * @param code
     * @param model
     * @return
     * @throws Exception
     */
    @RequestMapping("article/{code}")
    public String selectOne(HttpServletRequest request,@ModelAttribute("code")@PathVariable("code") String code,@ModelAttribute("e") Article article, ModelMap model) throws Exception {
        if(isInteger(code)) {   //如果是数字   则为id   按id进行文章查询
            Article e = articleService.selectById(Integer.parseInt(code));
            e.setHit(String.valueOf(Integer.parseInt(e.getHit())+1));
            articleService.update(e);       //更新浏览量     --优化建议:可使用缓存或者redis暂存  然后再刷入数据库
            Article next = articleService.selectNext(Integer.parseInt(code));
            if(next==null){
                next = new Article();
            }
            Article previous = articleService.selectPrevious(Integer.parseInt(code));
            if(previous==null){
                previous = new Article();
            }
            model.addAttribute("e", e);
            model.addAttribute("next", next);
            model.addAttribute("previous", previous);
            return page_toEdit;
        }else{//不是数字,则为分类编码
            for(ArticleCategory item: SystemManage.getInstance().getArticleCategory()){ //遍历分类缓存
                if(code.equals(item.getCode())){        //当编码相等时
                    article.setCategoryId(String.valueOf(item.getId()));    //把相等编码里的分类id值赋予文章中catagroyId中
                    break;  //跳出循环
                }
            }
            setParamWhenInitQuery(article);
            int offset = 0;
            if(request.getParameter("pager.offset")!=null){
                offset = Integer.parseInt(request.getParameter("pager.offset"));
            }
            if(offset < 0){
                offset=0;
            }
            article.setOffset(offset);
            PageModel page = getService().selectPageList(article);
            if(page == null){
                page = new PageModel();
            }
            page.setPageSize(10);    //设置单页数据为10
            page.setPagerSize((page.getTotal() + page.getPageSize() - 1)
                    / page.getPageSize());
            selectListAfter(page);
            page.setPagerUrl(code);
            request.setAttribute("pager", page);
            request.setAttribute("code", code);
            return page_toList;
        }

    }

    /**
     *判断是不是数字
     * @param code
     * @return
     */
    public static boolean isInteger(String code){
        try {
            Integer.parseInt(code);
            return true;
        }catch (NumberFormatException e){
            return false;
        }
    }
}

如果也想学习本系统,下面领取。关注并回复:069ssm 

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

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

相关文章

Rook Ceph浅谈

storageclass是最省心的&#xff0c;上面三种删除了容器存储还在 下图是管理员定义pv&#xff0c;用户不知道这些细节 PersistentVolume pv会跟后端的存储rbd对接 用户通过PVC调用PV ,根据10G容量去pv里找相匹配的自动关联 上图就叫 pvc-demo StorageClass 更厉害 管理员…

PostgreSQL 内核可观测性体系

文章目录背景Metricspgstat指标展示指标统计相关的guc 参数pgstat 实现pg_stat_statements基本用法及指标内容pg_stat_statements 实现Trace总结背景 PG 作为一个演讲30多年历史的TP 数据库&#xff0c;其复杂度极高&#xff0c;如果帮助DBA 在线上分析复杂查询的问题或者构建…

Nexus私服(二)

(一) SpringBoot配置Maven发布至Nexus私服 Nexus默认会带有四常用个仓库&#xff0c;maven-central、maven-public、maven-releases、maven-snapshotsmaven-central类型是proxy代理类型&#xff0c;地址是指向maven中央仓库地址https://repo1.maven.org/maven2/maven-releases、…

空间复杂度(Space Complexity)

预计阅读时间&#xff1a;10分钟 一、简介 随着计算机空间的发展&#xff0c;空间复杂度逐渐变得不那么重要了&#xff0c;但它在比赛中仍然存在。 推导方法&#xff1a; 用常数1取代运行时间中的所有加法常数。 在修改后的运行次数函数中&#xff0c;只保留最高阶项。…

[附源码]Python计算机毕业设计Django旅游网的设计与实现

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

2013-2020年全国31省数字经济信息化基础数据

2013-2020年全国31省数字经济信息化基础 1、时间&#xff1a;2013-2020年 2、来源&#xff1a;国家统计J和统计NJ 3、范围&#xff1a;31省 4、指标包括&#xff1a; "光缆线路长度(公里)、移动电话基站&#xff08;万个&#xff09;、信息传输、软件和信息技术服务业…

基于模糊BP神经网络轨迹跟踪(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

【VUE Cli脚手架软件安装篇】

目录 1. 搭建开发环境 1.1. 安装Node.js 1.2. 配置npm源 2. 安装VUE Cli 3. 创建第1个VUE CLI工程 3.1. 创建工程 3.2. 启动服务 3.3. 停止服务 3.4. 重启服务 1. 搭建开发环境 1.1. 安装Node.js 首先需要下载Node.js安装包&#xff0c;下载地址可参考&#xff1a;ht…

【数据结构】顺序表的概念及实现

顺序表1、顺序表概念2、初始化顺序表3、销毁顺序表4、判断顺序表是否为空5、打印顺序表6、检查顺序表的容量&#xff08;同时充当扩容任务&#xff09;7、顺序表的尾插8、顺序表的头插9、顺序表的尾删10、顺序表的头删11、查找顺序表中某个数的位置12、在顺序表pos位置插入数字…

光环:元宇宙概念及生态发展现状与研判——张子良

摘要&#xff1a;文章内容主要来源于光环国际2022年第三届中国科创者大会张子良老师的分享&#xff0c;原分享名称为"元宇宙行业应用实践探索"。讲述了元宇宙的理论知识、元宇宙生态圈及当前发展的情况。提出来看一个概念是否相同可以从引入时间、内容两个方面去界定…

【用python的标准库画出显示实时时间的数码管】

&#x1f935;‍♂️ 个人主页老虎也淘气 个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f44d;&#x1f3fb; 收藏…

Java项目:SSM电影售票管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 管理员角色包含以下功能&#xff1a; 管理员登陆,管理员用户管理,新闻公告增删改查,电影类型增删改查,影院信息增删改查,电影信息增删改查,订单…

计算机网络学习笔记(II)——应用层

文章目录第二章—应用层2.1、应用层原理网络应用的体系结构客服—服务器&#xff08;C/S&#xff09;体系结构对等体&#xff08;P2P&#xff09;体系结构C/S和P2P体系的混合结构进程通信分布式进程通信需要解决的问题应用层协议Internet传输层提供的服务UDP存在的必要性2.2、W…

【Android插件化框架】插件APK中的动态代理

在 Android 中实现插件化框架&#xff0c;需要解决的问题主要如下&#xff1a; 资源和代码的加载Android 生命周期的管理和组件的注册宿主 APK 和插件 APK 资源引用的冲突解决 下面分析几个目前主流的开源框架 DL 动态加载框架 ( 2014 年底) 是基于代理的方式实现插件框架&…

渗透测试 | APP信息收集

0x00 免责声明 本文仅限于学习讨论与技术知识的分享&#xff0c;不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;本文作者不为此承担任何责任&#xff0c;一旦造成后果请自行承担…

【学习笔记76】认识ajax和ajax的请求

一、认识前后端交互 1、前后端交互 前端向后端发送请求, 索要数据因为前端没有办法存储大量数据, 所以数据都存储在后端当前端需要数据时, 需要向后端发送请求, 得到想要的数据 2、什么是ajax ajax全名async javascript and XML(异步JavaScript和XML)是前后台交互的能⼒&#…

手摸手带你撸一个拖拽效果

目录 前言 准备 创建所需要结构 编写样式 js编写拖拽效果 解释方法 所有代码 结尾 前言 最近看见一个拖拽效果的视频&#xff0c;看好多人评论说跟着敲也没效果&#xff0c;还有就是作者也不回复大家提出的一些疑问&#xff0c;本着知其然必要知其所以然的心理&#xf…

【疯狂世界杯】css 动画实现跳动的足球

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;…

python T检验

T检验通常分为三种&#xff1a;单样本T检验、双样本T检验、配对样本T检验原理可以参考&#xff1a;一文详解t检验本文主要介绍使用python实现T检验的过程&#xff0c;内容主要是参考这篇博文&#xff1a;利用python库stats进行t检验 文章目录一、单样本T检验二、独立样本t检验&…

二、Git本地仓库基本操作——创建Git仓库、提交更新或删除文件

1. 创建本地工作仓库 创建本地工作仓库有两种方法&#xff1a; git init 在本地初始化一个git仓库git clone 直接克隆一个远程的git仓库 方法一&#xff1a; 我们在其中一个目录下&#xff0c;点击鼠标右键&#xff0c;然后启动git bash。输入下面命令&#xff1a; git in…