基于javaweb+mysql的ssm新闻管理系统(java+ssm+js+jsp+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM新闻管理系统(java+ssm+js+jsp+mysql)
项目介绍
管理员角色包含以下功能: 管理员登录,新闻管理,类别管理,用户管理,管理员管理,广告管理等功能。 用户角色包含以下功能: 新闻主页,新闻分类查看,查看新闻细节,用户登录,评论新闻等功能。
环境需要
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版本;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:HTML+CSS+JavaScript+jsp
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
/**
*
* 实现对管理员的管理
*/
@Controller
@RequestMapping("manager")
public class ManagerHandler{
@Autowired
ManagerService managerService;
// 添加管理员并重定向
@RequestMapping("addManager")
public String addManager(HttpServletRequest req){
String name=req.getParameter("managerName");
String pwd=req.getParameter("managerPassword");
Manager manager=new Manager();
manager.setMname(name);
manager.setPwd(pwd);
if(manager != null){
managerService.saveManager(manager);
}
return "redirect:ManagerInfo";
}
// 修改管理员信息
@RequestMapping("editManager")
public String editUser(HttpServletRequest req){
String id=req.getParameter("editManagerid");
String pwd=req.getParameter("editPassword");
//managerService.deleteManager(Integer.parseInt(id));
return "redirect:ManagerInfo";
}
// 查询所有管理员
@RequestMapping("getAllManager")
public String getAllUser(Model model){
List<Manager> manager = managerService.findAll();
model.addAttribute("managerList",manager);
return "houtai/allManager.jsp";
}
// 查询单个管理员
@RequestMapping("getManager")
public String getUser(int mid,Model model){
model.addAttribute("user", managerService.findUserById(mid));
return "editUser";
}
@RequestMapping("delManager")
public String deleteUser(HttpServletRequest req) {
Integer mid=Integer.parseInt(req.getParameter("id"));
managerService.deleteManager(mid);
return "redirect:ManagerInfo";
}
///分页查询管理员信息
@RequestMapping("ManagerInfo")
public String getUsers(@RequestParam(value="pn",defaultValue="1")Integer pn,Model model){
//从第一条开始 每页查询五条数据
PageHelper.startPage(pn, 5);
List<Manager> manager = managerService.findAll();
//将用户信息放入PageInfo对象里
PageInfo page = new PageInfo( manager,5);
model.addAttribute("pageInfo", page);
return "houtai/allManager.jsp";
/* return "houtai/test.jsp";*/
}
ntname=new String(ntname);
News_type t=new News_type();
t.setNtid(ntid);
t.setNtname(ntname);
int i=getnt.gaitp(t);
url="tpchshihua?flag=1";
return url;
}
@RequestMapping("delnt")
public String delnt(HttpServletRequest req){
String url="";
int i;
int ntid=Integer.parseInt(req.getParameter("ntid"));
List<News> list = getnews.findnewntid(ntid);
if(list.size()==0){
i=getnt.delnt(ntid);}
else{
i=0;
}
if(i==0){
req.getSession().setAttribute("shibai", 1);
}
url="tpchshihua?flag=2";
return url;
}
@RequestMapping("insertnt")
public String insertnt(HttpServletRequest req) throws UnsupportedEncodingException{
String url="";
String ntname= req.getParameter("tpname");
ntname=new String(ntname);
News_type r=new News_type();
r.setNtname(ntname);
int i= getnt.insertnt(r);
url="tpchshihua?flag=1";
return url;
}
//分类关键字查询
@RequestMapping("searchNews")
public String searchNews(HttpServletRequest request) throws UnsupportedEncodingException{
/**
*
*
*/
@Controller
public class pageHandler {
@Autowired
getNews getnews; // 获取到一个news的service
@Resource
NewsMapper newsMapper;
@RequestMapping("queryAllItems")
//该方法实现了新闻分类标题概览的分类显示功能
public ModelAndView Limitlist(HttpServletRequest request) {
String ntId=request.getParameter("ntid");
System.out.println("===NTID====="+ntId);
//request.getSession().setAttribute("ntid", Integer.parseInt(ntId));
request.getSession().setAttribute("ntid", Integer.parseInt(ntId));
int pageNum = 1;
if (request.getParameter("pageNum") == null
|| "".equals(request.getParameter("page"))) {
pageNum = 1;
} else {
pageNum = Integer.parseInt(request.getParameter("pageNum"));
}
ModelAndView modelAndView = new ModelAndView();
Integer ntid=(Integer)request.getAttribute("ntid");
ntname=new String(ntname);
News_type r=new News_type();
r.setNtname(ntname);
int i= getnt.insertnt(r);
url="tpchshihua?flag=1";
return url;
}
//分类关键字查询
@RequestMapping("searchNews")
public String searchNews(HttpServletRequest request) throws UnsupportedEncodingException{
String title=request.getParameter("title");
String type=request.getParameter("search-sort");
List<News> list ;
if(type.equals("0")){
list = getnews.listBysearchTitle_noPage(title);
}
else{
try {
int temp = Integer.parseInt(type);
list = getnews.findByTypeandTitle(temp, title);
} catch (Exception e) {
title = "的";
list = getnews.listBysearchTitle_noPage(title);
}
}
request.getSession().setAttribute("searchList", list);
return "houtai/design1.jsp";
}
@RequestMapping("moredel")
public String moredel(HttpServletRequest req){
String url="redirect:xinwenguanli";
List<News> list=getnews.selectNews();
for(int i=1;i<=list.size();i++){
int box=0;
if(req.getParameter("id"+i)!=null){
box=Integer.parseInt(req.getParameter("id"+i));}
if(box==1){
int nid=Integer.parseInt(req.getParameter("nid"+i));
List<regai> r=getr.findreviewBynid(nid);
if(r.size()!=0)
for(int j=0;j<r.size();j++){
getr.delreview(r.get(j).getRid());
}
int z=getnews.delnews(nid);
}
req.setAttribute("ntid", ntid);
List<News> listByNtid = newsMapper.listByNtid(Integer.parseInt(ntid.replace("'", "")));// 首先进行条件查询,返回一个news的list
// 将用户信息放入PageInfo对象里
PageInfo page = new PageInfo(listByNtid, 5);
model.addAttribute("pageInfo", page);
return "queryAllItems1.jsp";
}
// 返回后台首页
@RequestMapping("home")
public String index() {
/*return "redirect:index.jsp";*/
return "chushihuanewstype";
}
}
public class FileUploadUtils {
// 这个文件上传类主要是配合SpringMVC框架的
// 这里主要是把文件上传到本地Tomcat服务器的webapp下面 ,并返回web的文件访问地址
/**
* 文件上传
*
* @param request
* HTTP请求
* @param files
* 上传的文件
* @param folder
* 要建立的文件夹的名字
// 修改管理员信息
@RequestMapping("editManager")
public String editUser(HttpServletRequest req){
String id=req.getParameter("editManagerid");
String pwd=req.getParameter("editPassword");
String name=req.getParameter("editManagername");
Manager manager = managerService.findUserById(Integer.parseInt(id));
manager.setMname(name);
manager.setPwd(pwd);
managerService.updateUser(manager);
//managerService.deleteManager(Integer.parseInt(id));
return "redirect:ManagerInfo";
}
// 查询所有管理员
@RequestMapping("getAllManager")
public String getAllUser(Model model){
List<Manager> manager = managerService.findAll();
model.addAttribute("managerList",manager);
return "houtai/allManager.jsp";
}
// 查询单个管理员
@RequestMapping("getManager")
public String getUser(int mid,Model model){
model.addAttribute("user", managerService.findUserById(mid));
return "editUser";
}
@RequestMapping("delManager")
public String deleteUser(HttpServletRequest req) {
Integer mid=Integer.parseInt(req.getParameter("id"));
managerService.deleteManager(mid);
return "redirect:ManagerInfo";
/**
*
*/
@Controller
public class kaishi {
@Autowired
getNewtype getnt;
@Autowired
getNews getnews;
@Autowired
getReview getr;
@Autowired
getSupport getsupport;
@Autowired
SourceService sourceService;
@RequestMapping("chushihuanewstype")
public String chushihuanewstype(HttpServletRequest req){
String url="";
List<Source> findAllImg = sourceService.findAllImg();
if(findAllImg!=null)
req.getSession().setAttribute("slist", findAllImg);
req.getSession().setAttribute("size1", findAllImg.size());
if(req.getSession().getAttribute("loginUser")==null){
req.getSession().setAttribute("userid", 0);}else{
User u=(User)req.getSession().getAttribute("loginUser");
req.getSession().setAttribute("userid",u.getUid());
}
List<News_type> list=getnt.getnewstype();
req.getSession().setAttribute("newstypelist", list);
List<News> list1=getnews.findnewByhot(0);
List<News> list2=getnews.findnewByhot(0);
for(int i=0;i<list2.size();i++){
if(list2.get(i).getNtext().length()>200){
list2.get(i).setNtext((String) list2.get(i).getNtext().subSequence(0,200));
}
}
req.getSession().setAttribute("newshotlist", list1);
for(int i=0;i<list1.size()/2;i++){
News n=new News();
n=list1.get(i);
list1.set(i, list1.get(list1.size()-i-1));
}
/**
*
* 实现对管理员的管理
*/
@Controller
@RequestMapping("manager")
public class ManagerHandler{
@Autowired
ManagerService managerService;
// 添加管理员并重定向
@RequestMapping("addManager")
public String addManager(HttpServletRequest req){
String name=req.getParameter("managerName");
String pwd=req.getParameter("managerPassword");
Manager manager=new Manager();
manager.setMname(name);
manager.setPwd(pwd);
if(manager != null){
managerService.saveManager(manager);
}
return "redirect:ManagerInfo";
}
// 修改管理员信息
@RequestMapping("editManager")
/**
*
*实现对赞助的管理
*/
@Controller
@RequestMapping("support")
public class SupportHandler{
@Autowired
SupportService supportService;
//跳转到添加用户界面
@RequestMapping("toAddSupport")
public String toAddUser(){
return "houtai/allSupport.jsp";
}
// 添加赞助并重定向
@RequestMapping("addSupport")
public String addManager(HttpServletRequest req){
String name=req.getParameter("SupportName");
String money=req.getParameter("addMoney");
String text=req.getParameter("addText");
Support support=new Support();
support.setSname(name);
support.setSmoney(money);
support.setText(text);
if(support != null){
supportService.savaSupport(support);
}
return "redirect:SupportInfo";
}
// 修改赞助信息
@RequestMapping("editSupport")
public String editUser(HttpServletRequest req){
String name=req.getParameter("editSupportname");
String money=req.getParameter("editMoney");
String id=req.getParameter("editSupportId");
String text=req.getParameter("editText");
System.out.println("==="+name);
System.out.println("==="+money);
System.out.println("==="+id);
System.out.println("==="+text);
Support support = supportService.findSupportById(Integer.parseInt(id));
support.setSname(name);
support.setSmoney(money);
author=new String(author);
int ntid=Integer.parseInt(req.getParameter("type"));
News n=new News();
n.setAuthor(author);
n.setNtext(ntext);
n.setNtid(ntid);
n.setIsreview(isreview);
n.setTitle(title);
n.setHot(hot);
n.setNtime(new java.sql.Date(new java.util.Date().getTime()));
int x=getnews.insert(n);
url="redirect:xinwenguanli";
return url;
}
@RequestMapping("delnews")
public String delnews(HttpServletRequest req){
String url="";
int nid=Integer.parseInt(req.getParameter("nid"));
List<regai> r=getr.findreviewBynid(nid);
if(r.size()!=0)
for(int i=0;i<r.size();i++){
getr.delreview(r.get(i).getRid());
}
int i=getnews.delnews(nid);
url="redirect:xinwenguanli";
return url;
}
@RequestMapping("tpchshihua")
public String tpchushihua(HttpServletRequest req){
String url="";
List<News_type> list1=getnt.getnewstype();
req.getSession().setAttribute("ntp", list1);
List<News_type> list2=getnt.getnewstype();
req.getSession().setAttribute("ntp2", list2);
String flag=req.getParameter("flag");
if(flag==null){
url="redirect:fenglieguanli.jsp";
}else {
url="redirect:houtai/fenglieguanli.jsp";}
return url;
}
@RequestMapping("gaitp")
public String gaitp(HttpServletRequest req) throws UnsupportedEncodingException{
String url="";
req.setCharacterEncoding("utf-8");
int ntid=Integer.parseInt(req.getParameter("id"));
String ntname=req.getParameter("tpname");
ntname=new String(ntname);
/**
*
*实现对赞助的管理
*/
@Controller
@RequestMapping("support")
public class SupportHandler{
@Autowired
SupportService supportService;
//跳转到添加用户界面
@RequestMapping("toAddSupport")
public String toAddUser(){
return "houtai/allSupport.jsp";
}
// 添加赞助并重定向
@RequestMapping("addSupport")
public String addManager(HttpServletRequest req){
String name=req.getParameter("SupportName");
String money=req.getParameter("addMoney");
String text=req.getParameter("addText");
Support support=new Support();
support.setSname(name);
support.setSmoney(money);
*后台新闻管理和分类管理
*/
@Controller
public class kaihoutai {
@Autowired
getNewtype getnt;
@Autowired
getNews getnews;
@Autowired
getReview getr;
NewsMapper newsMapper;
@RequestMapping("xinwenguanli")
public String xinwenguanli(HttpServletRequest req){
String rul="";
List<News> list=getnews.selectNews();
req.getSession().setAttribute("newslist", list);
List<News_type> list1=getnt.getnewstype();
List<News_type> list2=getnt.getnewstype();
req.getSession().setAttribute("newstypelist1", list1);
req.getSession().setAttribute("newstypelist2", list2);
String flag = req.getParameter("flag");
if(flag==null)
rul="redirect:houtai/design.jsp";
else rul="redirect:design.jsp";
return rul;
}
@RequestMapping("gainews")
public String gainews(HttpServletRequest req){
String rul="";
List<News_type> list1=getnt.getnewstype();
req.getSession().setAttribute("newstypelist1", list1);
int nid=Integer.parseInt(req.getParameter("flag"));
News n=getnews.findnewsByID(nid);
req.getSession().setAttribute("gainews", n);
if(n.getIsreview()==1){
List<regai> list=getr.findreviewBynid(nid);
req.getSession().setAttribute("pinglun", list);}
rul="redirect:houtai/gaixinwen.jsp";
return rul;
}
@RequestMapping("delre")
public String delre(HttpServletRequest req){
String url="";
int rid=Integer.parseInt(req.getParameter("rid"));
int i=getr.delreview(rid);
url="gainews?flag="+flag;
return url;
}
@RequestMapping("yeswes")
public String yeswes(HttpServletRequest req){
String rul="";
List<News_type> list1=getnt.getnewstype();
req.getSession().setAttribute("newstypelist1", list1);
int nid=Integer.parseInt(req.getParameter("nid"));
String title=req.getParameter("title");
String ntext=req.getParameter("content");
int hot;
if(req.getParameter("hot")!=null)
hot=Integer.parseInt(req.getParameter("hot"));
else hot=1;
int isreview;
if(req.getParameter("isreview")!=null){
isreview=Integer.parseInt(req.getParameter("isreview"));}
else isreview=0;
String author=req.getParameter("author");
int ntid=Integer.parseInt(req.getParameter("typeid"));
News n=new News();
n.setNid(nid);
n.setAuthor(author);
n.setNtext(ntext);
n.setNtid(ntid);
n.setIsreview(isreview);
n.setTitle(title);
n.setHot(hot);
n.setNtime(new java.sql.Date(new java.util.Date().getTime()));
int x= getnews.gainews(n);
if(x>0){
req.getSession().setAttribute("sussion", "yes");
}else{req.getSession().setAttribute("sussion", "no");}
rul="redirect:houtai/design.jsp";
return rul;
}
@RequestMapping("jia")
public String jia(HttpServletRequest req){
List<News_type> list1=getnt.getnewstype();
req.getSession().setAttribute("newstypelist1", list1);
return "redirect:insert.jsp";
}
@RequestMapping("insert")
public String insert(HttpServletRequest req) throws UnsupportedEncodingException{
String url="";
@RequestMapping("index")
public String index(){
return "houtai/index.jsp";
}
//二级密码验证
@RequestMapping("check")
public String check(HttpServletRequest req){
String password=req.getParameter("managerPassword");
if("123456".equals(password)){
return "manager/ManagerInfo";
}
else {
return "houtai/index.jsp";
}
}
}
/**
* 验证码
*/
public class AuthImage extends HttpServlet {
u.setTel(Integer.parseInt(phone_number));
u.setEmail(email);
int i = userService.addUser(u);
String code = req.getParameter("code");
if (code.length() != 4) {
req.getSession().setAttribute("mesg1", "验证码错误!");
url = "redirect:register.jsp";
} else {
if (i > 0) {
url = "redirect:login.jsp";
} else
url = "redirect:register.jsp";
}
return url;
}
@RequestMapping("login")
// 用户登录
public String login(HttpServletRequest req, HttpServletResponse response)
throws IOException {
req.setCharacterEncoding("utf-8");
System.out.println("=========");
String url = "";
String u_name = req.getParameter("username");
String pwd = req.getParameter("password");
User u = new User();
u.setUname(u_name);
u.setPwd(pwd);
System.out.println(u.toString());
loginUser = userService.findUser(u);
if (loginUser == null) {
req.getSession().setAttribute("mesg", "用户名或密码错误!");
url = "redirect:login.jsp";
} else {
req.getSession().setAttribute("loginUser", loginUser);
url = "index.jsp";
}
return url;
}
@RequestMapping("Managerlogin")
// 管理员登录
public String Managerlogin(HttpServletRequest req,
HttpServletResponse response) throws IOException {
req.setCharacterEncoding("utf-8");
String url = "";
public class FileUploadUtils {
// 这个文件上传类主要是配合SpringMVC框架的
// 这里主要是把文件上传到本地Tomcat服务器的webapp下面 ,并返回web的文件访问地址
/**
* 文件上传
*
* @param request
* HTTP请求
* @param files
* 上传的文件
* @param folder
* 要建立的文件夹的名字
* @return
*/
public static Map<String, UploadFile> upLoadFile(
HttpServletRequest request, List<MultipartFile> files, String folder) {
Map<String, UploadFile> map = new HashMap<String, UploadFile>();
if (files != null && files.size() > 0) {
// 1.获取绝对路径
// request.getSession().getServletContext().getRealPath("/")==>
// E:\apache-tomcate-7.0\webapps\项目名
// getParentFile() ==>E:\apache-tomcate-7.0\webapps
File root = new File(request.getSession().getServletContext()
.getRealPath("/"))/*.getParentFile()*/;
// 2.定义图片保存在服务器的那个位置
// ==>E:\apache-tomcate-7.0\webapps\floder(你指定的文件夹名字)
File loaclFilePath = new File(root, folder);
// 3.通过http协议访问的路径 http://localhost:8080/floder(你指定的文件夹名字)
String webFileUrl = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ "/" + folder;
try {
for (MultipartFile file : files) {
// 文件的原始文件名
String originalFileName = file.getOriginalFilename();
if (file.isEmpty()) {
continue;
}
// 随机分配一个新的文件名字给上传的文件
// 29e6c3676c23466c8735bcc4d157ee08.xxx
String newFileName = randomFileName()
+ originalFileName.substring(originalFileName
.lastIndexOf("."));
// E:\apache-tomcate-7.0\webapps\floder(你指定的文件夹名字)\2017\02\25\
String dir = loaclFilePath.getAbsolutePath()