Java毕业设计MVC:基于SSM实现计算机硬件评测交流平台(一)https://developer.aliyun.com/article/1423250
四,核心代码展示
package com.liuyanzhao.ssm.blog.controller.admin; import com.liuyanzhao.ssm.blog.entity.Article; import com.liuyanzhao.ssm.blog.entity.Comment; import com.liuyanzhao.ssm.blog.entity.User; import com.liuyanzhao.ssm.blog.service.ArticleService; import com.liuyanzhao.ssm.blog.service.CommentService; import com.liuyanzhao.ssm.blog.service.UserService; import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import static com.liuyanzhao.ssm.blog.util.MyUtils.getIpAddr; /** * @author znz */ @Controller public class AdminController { @Autowired private UserService userService; @Autowired private ArticleService articleService; @Autowired private CommentService commentService; /** * 后台首页 * * @return */ @RequestMapping("/admin") public String index(Model model) { //文章列表 List<Article> articleList = articleService.listRecentArticle(5); model.addAttribute("articleList",articleList); //评论列表 List<Comment> commentList = commentService.listRecentComment(5); model.addAttribute("commentList",commentList); return "Admin/index"; } /** * 登录页面显示 * * @return */ @RequestMapping("/login") public String loginPage() { return "Admin/login"; } /** * 登录验证 * * @param request * @param response * @return */ @RequestMapping(value = "/loginVerify",method = RequestMethod.POST) @ResponseBody public String loginVerify(HttpServletRequest request, HttpServletResponse response) { Map<String, Object> map = new HashMap<String, Object>(); String username = request.getParameter("username"); String password = request.getParameter("password"); String rememberme = request.getParameter("rememberme"); User user = userService.getUserByNameOrEmail(username); if(user==null) { map.put("code",0); map.put("msg","用户名无效!"); } else if(!user.getUserPass().equals(password)) { map.put("code",0); map.put("msg","密码错误!"); } else { //登录成功 map.put("code",1); map.put("msg",""); //添加session request.getSession().setAttribute("user", user); //添加cookie if(rememberme!=null) { //创建两个Cookie对象 Cookie nameCookie = new Cookie("username", username); //设置Cookie的有效期为3天 nameCookie.setMaxAge(60 * 60 * 24 * 3); Cookie pwdCookie = new Cookie("password", password); pwdCookie.setMaxAge(60 * 60 * 24 * 3); response.addCookie(nameCookie); response.addCookie(pwdCookie); } user.setUserLastLoginTime(new Date()); user.setUserLastLoginIp(getIpAddr(request)); userService.updateUser(user); } String result = new JSONObject(map).toString(); return result; } /** * 退出登录 * * @param session * @return */ @RequestMapping(value = "/admin/logout") public String logout(HttpSession session) { session.removeAttribute("user"); session.invalidate(); return "redirect:/login"; } }
package com.znz.ssm.blog.controller.admin; import cn.hutool.http.HtmlUtil; import com.github.pagehelper.PageInfo; import com.znz.ssm.blog.dto.ArticleParam; import com.znz.ssm.blog.entity.Article; import com.znz.ssm.blog.service.ArticleService; import com.znz.ssm.blog.service.CategoryService; import com.znz.ssm.blog.service.TagService; import com.znz.ssm.blog.entity.Category; import com.znz.ssm.blog.entity.Tag; import com.znz.ssm.blog.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; 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.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpSession; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * @author znz */ @Controller @RequestMapping("/admin/article") public class BackArticleController { @Autowired private ArticleService articleService; @Autowired private TagService tagService; @Autowired private CategoryService categoryService; /** * 后台文章列表显示 * * @return modelAndView */ @RequestMapping(value = "") public String index(@RequestParam(required = false, defaultValue = "1") Integer pageIndex, @RequestParam(required = false, defaultValue = "10") Integer pageSize, @RequestParam(required = false) String status, Model model) { HashMap<String, Object> criteria = new HashMap<>(1); if (status == null) { model.addAttribute("pageUrlPrefix", "/admin/article?pageIndex"); } else { criteria.put("status", status); model.addAttribute("pageUrlPrefix", "/admin/article?status=" + status + "&pageIndex"); } PageInfo<Article> articlePageInfo = articleService.pageArticle(pageIndex, pageSize, criteria); model.addAttribute("pageInfo", articlePageInfo); return "Admin/Article/index"; } /** * 后台添加文章页面显示 * * @return */ @RequestMapping(value = "/insert") public String insertArticleView(Model model) { List<Category> categoryList = categoryService.listCategory(); List<Tag> tagList = tagService.listTag(); model.addAttribute("categoryList", categoryList); model.addAttribute("tagList", tagList); return "Admin/Article/insert"; } /** * 后台添加文章提交操作 * * @param articleParam * @return */ @RequestMapping(value = "/insertSubmit", method = RequestMethod.POST) public String insertArticleSubmit(HttpSession session, ArticleParam articleParam) { Article article = new Article(); //用户ID User user = (User) session.getAttribute("user"); if (user != null) { article.setArticleUserId(user.getUserId()); } article.setArticleTitle(articleParam.getArticleTitle()); //文章摘要 int summaryLength = 150; String summaryText = HtmlUtil.cleanHtmlTag(articleParam.getArticleContent()); if (summaryText.length() > summaryLength) { String summary = summaryText.substring(0, summaryLength); article.setArticleSummary(summary); } else { article.setArticleSummary(summaryText); } article.setArticleContent(articleParam.getArticleContent()); article.setArticleStatus(articleParam.getArticleStatus()); //填充分类 List<Category> categoryList = new ArrayList<>(); if (articleParam.getArticleChildCategoryId() != null) { categoryList.add(new Category(articleParam.getArticleParentCategoryId())); } if (articleParam.getArticleChildCategoryId() != null) { categoryList.add(new Category(articleParam.getArticleChildCategoryId())); } article.setCategoryList(categoryList); //填充标签 List<Tag> tagList = new ArrayList<>(); if (articleParam.getArticleTagIds() != null) { for (int i = 0; i < articleParam.getArticleTagIds().size(); i++) { Tag tag = new Tag(articleParam.getArticleTagIds().get(i)); tagList.add(tag); } } article.setTagList(tagList); articleService.insertArticle(article); return "redirect:/admin/article"; } /** * 删除文章 * * @param id 文章ID */ @RequestMapping(value = "/delete/{id}") public void deleteArticle(@PathVariable("id") Integer id) { articleService.deleteArticle(id); } /** * 编辑文章页面显示 * * @param id * @return */ @RequestMapping(value = "/edit/{id}") public ModelAndView editArticleView(@PathVariable("id") Integer id) { ModelAndView modelAndView = new ModelAndView(); Article article = articleService.getArticleByStatusAndId(null, id); modelAndView.addObject("article", article); List<Category> categoryList = categoryService.listCategory(); modelAndView.addObject("categoryList", categoryList); List<Tag> tagList = tagService.listTag(); modelAndView.addObject("tagList", tagList); modelAndView.setViewName("Admin/Article/edit"); return modelAndView; } /** * 编辑文章提交 * * @param articleParam * @return */ @RequestMapping(value = "/editSubmit", method = RequestMethod.POST) public String editArticleSubmit(ArticleParam articleParam) { Article article = new Article(); article.setArticleId(articleParam.getArticleId()); article.setArticleTitle(articleParam.getArticleTitle()); article.setArticleContent(articleParam.getArticleContent()); article.setArticleStatus(articleParam.getArticleStatus()); //文章摘要 int summaryLength = 150; String summaryText = HtmlUtil.cleanHtmlTag(article.getArticleContent()); if (summaryText.length() > summaryLength) { String summary = summaryText.substring(0, summaryLength); article.setArticleSummary(summary); } else { article.setArticleSummary(summaryText); } //填充分类 List<Category> categoryList = new ArrayList<>(); if (articleParam.getArticleChildCategoryId() != null) { categoryList.add(new Category(articleParam.getArticleParentCategoryId())); } if (articleParam.getArticleChildCategoryId() != null) { categoryList.add(new Category(articleParam.getArticleChildCategoryId())); } article.setCategoryList(categoryList); //填充标签 List<Tag> tagList = new ArrayList<>(); if (articleParam.getArticleTagIds() != null) { for (int i = 0; i < articleParam.getArticleTagIds().size(); i++) { Tag tag = new Tag(articleParam.getArticleTagIds().get(i)); tagList.add(tag); } } article.setTagList(tagList); articleService.updateArticleDetail(article); return "redirect:/admin/article"; } }
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"; } }
五,项目总结
目前在移互联网的冲击下,传统的互联网在线沟通的方式似乎已经处于消亡的边缘,替而代之的是现在火爆的即时聊天,在线视频等等工具。而这种通过语音和视频进行聊天沟通的方式虽然简洁方便,但更适合于个体间的一对一交流,虽然相寻找共同的社群群体来讲,如果想就某一主题进行持续性讨论,并自主发表自己的意见,传统的社区交流论坛形式仍然是不可或缺的。
在最早的时候,论坛社区仅是起到公布一些股市以及公司即时信息的作用,但随着时代的发展,现在的它,内容已经达到了无所不含的程度,上到国家大事、专业领域,下到日常生活,衣食住行,各式各样的交流论坛让人目不暇接,其适用范围的广泛使其成为了当今交流社区的核心。由静态到动态的发展让社区论坛[4]更好的实现了用户之间的交流。