本网站主要是后台新闻发布和管理,包括:发布新闻,新闻管理,用户管理等;
新闻管理、用户管理,主要是增删改查,新闻管理超级用户对新闻的删除,修改等管理,用户管理也是增删改查。
注册功能:采用的表单提交注册,注册验证是用的ajax异步验证,注册成功后,就可以进行登录。
登录功能:采用session中保存用户名和密码。
该系统基于jsp、servlet技术,前端使用html、js、bootdtrap等技术,基于MVC模式,数据库使用Mysql,服务器采用Tomcat8,Java环境为JDK8。包含源码,数据库,演示视频,功能讲解(典型的两三个功能讲解)。
系统演示中文章、分类、名称等均为临时添加,自己购买后都可以自行替换为自己需要的名字,另外在了解系统的基础上,也可以增加修改系统模块。该系统适用于信息发布系统,比如改成娱乐新闻、热点新闻等,自己可以随意修改。
代码已经上传github,下载地址:https://github.com/21503882/news
ROLE_USER:普通用户,ROLE_USER_S:二级用户,ROLE_ADMIN:管理员
普通用户:只能浏览和改自己的密码
二级用户:可以发新闻,相当于记者(需要审核)
管理员:可以增删改查新闻,用户,更改用户权限最高只能改为二级用户
SpringBoot
使用SpringSecurity配置来进行权限控制
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled=true)
数据库使用Jpa来操纵
public interface FileRepository extends JpaRepository<File,Long>{
}
前端使用了Bootstrap框架,富文本编辑器使用百度的ueditor,使用模版引擎thymeleaf。
springboot+ueditor参考了 参考文章
部分截图:
新闻首页1 用户信息修改 新闻首页2 后台管理系统 文章管理
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
<title th:text="鸡天新闻-首页"></title>
<head th:replace="~{fragments/header :: header}" >
</head>
<style type="text/css">
*{
font-family: 微软雅黑;
}
</style>
<body>
<div class="container">
<div class="row">
<div class="col-md-6">
<div class="panel panel-warning ">
<div class="panel-heading">
<h5>国 内 新 闻<span class="badge badge-danger">hot</span></h5>
</div>
<div class="panel-body">
<div class="list-group" th:each="news:${list1}">
<a th:href="@{'~/news/detail/'+${news.getnewsId()}}" class="list-group-item">
<h6 th:text="${news.getnewsTitle()}"></h6>
<p th:text="${news.getnewsWord()}"></p>
</a>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="panel panel-danger ">
<div class="panel-heading">
<h5>国 际 新 闻</h5>
</div>
<div class="panel-body">
<div class="list-group" th:each="news:${list2}">
<a th:href="@{'~/news/detail/'+${news.getnewsId()}}" class="list-group-item">
<h6 th:text="${news.getnewsTitle()}"></h6>
<p th:text="${news.getnewsWord()}"></p>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="panel panel-warning ">
<div class="panel-heading">
<h5>本 地 新 闻</h5>
</div>
<div class="panel-body">
<div class="list-group" th:each="news:${list3}">
<a th:href="@{'~/news/detail/'+${news.getnewsId()}}" class="list-group-item">
<h6 th:text="${news.getnewsTitle()}"></h6>
<p th:text="${news.getnewsWord()}"></p>
</a>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="panel panel-danger ">
<div class="panel-heading">
<h5>娱 乐 新 闻</h5>
</div>
<div class="panel-body">
<div class="list-group" th:each="news:${list4}">
<a th:href="@{'~/news/detail/'+${news.getnewsId()}}" class="list-group-item">
<h6 th:text="${news.getnewsTitle()}"></h6>
<p th:text="${news.getnewsWord()}"></p>
</a>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="panel panel-danger ">
<div class="panel-heading">
<h5>政 要 新 闻</h5>
</div>
<div class="panel-body">
<div class="list-group" th:each="news:${list5}">
<a th:href="@{'~/news/detail/'+${news.getnewsId()}}" class="list-group-item">
<h6 th:text="${news.getnewsTitle()}"></h6>
<p th:text="${news.getnewsWord()}"></p>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
<footer th:replace="~{fragments/footer :: footer}">...</footer>
</html>