手機(jī)開(kāi)發(fā)網(wǎng)站教程如何做好一個(gè)品牌推廣
基于JavaWeb開(kāi)發(fā)的
🍅 作者主頁(yè) 網(wǎng)順技術(shù)團(tuán)隊(duì)
🍅 歡迎點(diǎn)贊 👍 收藏 ?留言 📝
🍅 文末獲取源碼聯(lián)系方式 📝
🍅 查看下方微信號(hào)獲取聯(lián)系方式 承接各種定制系統(tǒng) 📝
🚀🚀🚀精彩系列推薦
👇🏻 精彩專(zhuān)欄推薦訂閱👇🏻 不然下次找不到喲
Java畢設(shè)項(xiàng)目精品實(shí)戰(zhàn)案例《1000套》
感興趣的可以先收藏起來(lái),還有大家在畢設(shè)選題,項(xiàng)目以及論文編寫(xiě)等相關(guān)問(wèn)題都可以給我留言咨詢(xún),希望幫助更多的人
文章目錄
- 基于JavaWeb開(kāi)發(fā)的
- 主要功能模塊設(shè)計(jì):
- 主要技術(shù):
- 主要功能實(shí)現(xiàn)前端:
- 選課平臺(tái)首頁(yè):
- 登錄注冊(cè)管理:
- 選課推薦分類(lèi):
- 課程詳情信息:
- 我的個(gè)人中心:
- 主要功能實(shí)現(xiàn)后臺(tái):
- 系統(tǒng)主頁(yè)設(shè)計(jì):
- 選課類(lèi)型管理:
- 選課信息詳情管理:
- 通知公告信息:
- 用戶(hù)信息管理:
- 評(píng)論交流回復(fù)管理:
- 部分關(guān)鍵代碼展示:
- 登錄模塊:
- 配置模塊:
- 主要表設(shè)計(jì):
- 用戶(hù)表:
- 選課類(lèi)型表:
- 選課詳情表:
- 評(píng)論交流表:
- 回復(fù)信息表:
主要功能模塊設(shè)計(jì):
登錄注冊(cè)、首頁(yè)信息瀏覽、選課分類(lèi)查看、選課詳情查看、評(píng)論交流、收藏、瀏覽量、以及后臺(tái)數(shù)據(jù)管理、用戶(hù)管理、選課類(lèi)別管理、選課信息詳情管理、評(píng)論交流和回復(fù)管理、以及公告信息管理等
主要技術(shù):
Java、springmvc、mybatis、mysql、tomcat、jquery、layui、JavaScript、html、css、jsp、log4j等一些常見(jiàn)的基本技術(shù)。
主要功能實(shí)現(xiàn)前端:
選課平臺(tái)首頁(yè):
輸入http://localhost/訪(fǎng)問(wèn)選課推薦交流平臺(tái)首頁(yè)、可以查看輪播圖以及各類(lèi)信息、點(diǎn)擊進(jìn)入詳情頁(yè)面
登錄注冊(cè)管理:
選課推薦分類(lèi):
點(diǎn)擊查看分類(lèi)課程推薦信息、按照類(lèi)別查看課程信息、管理員可以在后臺(tái)添加課程分類(lèi)信息
以及根據(jù)訪(fǎng)問(wèn)量來(lái)進(jìn)行點(diǎn)擊排行、
課程詳情信息:
課程詳情可以查看課程詳情信息以及作者信息和瀏覽量等具體數(shù)據(jù)、也可以進(jìn)行評(píng)論和收藏等操作
我的個(gè)人中心:
包括我的個(gè)人信息和收藏夾信息、
主要功能實(shí)現(xiàn)后臺(tái):
系統(tǒng)主頁(yè)設(shè)計(jì):
主要功能模塊有首頁(yè)的信息統(tǒng)計(jì)、選課類(lèi)型管理、選課詳情管理、用戶(hù)管理、評(píng)論和公告管理等數(shù)據(jù)維護(hù)。
選課類(lèi)型管理:
選課信息詳情管理:
列表信息查看添加修改刪除以及檢索等操作
詳情信息
通知公告信息:
數(shù)據(jù)列表查看和添加修改刪除等操作
用戶(hù)信息管理:
評(píng)論交流回復(fù)管理:
評(píng)論和回復(fù)的數(shù)據(jù)管理
部分關(guān)鍵代碼展示:
登錄模塊:
package com.longwang.controller;import com.longwang.entity.Article;
import com.longwang.entity.Classify;
import com.longwang.entity.User;
import com.longwang.service.ArticleService;
import com.longwang.service.ClassifyService;
import com.longwang.service.NoticeService;
import com.longwang.service.UserService;
import com.longwang.util.DateUtil;
import com.longwang.util.StringUtil;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Value;
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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.util.*;/*** 根路徑以及其他請(qǐng)求處理* * @author 李楊勇**/
@Controller
public class IndexController {@Value("${imageFilePath}")private String imageFilePath; // 文件路徑@Resourceprivate NoticeService noticeService;@Resourceprivate UserService userService;@Resourceprivate ArticleService articleService;@Resourceprivate ClassifyService classifyService;@RequestMapping("/")public String index(HttpSession session) {// 查詢(xún)公告session.setAttribute("noticeList", noticeService.list(0, 5));return "index";// 跳轉(zhuǎn)到index.html}@RequestMapping("/delete")public Map<String, Object> delete(Integer userId) {Map<String, Object> resultMap = new HashMap<String, Object>();userService.delete(userId);resultMap.put("errorNo", 0);return resultMap;}/*** 登錄頁(yè)面* * @return*/@RequestMapping("/login")public String login() {return "login";}/*** 前臺(tái)登錄頁(yè)面* * @return*/@RequestMapping("/webLogin")public String webLogin() {return "webLogin";}/*** 注冊(cè)* * @return*/@RequestMapping("/regist")public String regist() {return "regist";}/*** 保存注冊(cè)信息* * @param user* @return*/@RequestMapping("/saveUser")public String saveUser(User user) {List<Article> randomArticle = articleService.getRandomArticle(3);String ids="";for (int i = 0; i < randomArticle.size(); i++) {Integer articleId = randomArticle.get(i).getArticleId();ids+=articleId+",";}ids = ids.substring(0, ids.length() -1);user.setArticleIds(ids);userService.save(user);return "webLogin";}/*** 退出登錄* * @param request* @return*/@RequestMapping("/quit")public String quit(HttpServletRequest request) {HttpSession session = request.getSession();session.removeAttribute("user");return "index";}/*** 退出登錄* * @param request* @return*/@RequestMapping("/quitAdmin")public String quitAdmin(HttpServletRequest request) {HttpSession session = request.getSession();session.removeAttribute("user");return "login";}/*** 驗(yàn)證登錄** @param user* @param request* @return*/@RequestMapping("/checkLogin")public ModelAndView checkLogin(User user, HttpServletRequest request) {ModelAndView mav = new ModelAndView();HttpSession session = request.getSession();User u = userService.findByUsernameAndPassword(user.getUsername(), user.getPassword());if (u == null) {mav.addObject("user", user);mav.addObject("errorInfo", "用戶(hù)名或者密碼錯(cuò)誤!");mav.setViewName("webLogin");} else {u.setLatelyLoginTime(new Date());userService.save(u);session.setAttribute("user", u);mav.addObject("username", u.getUsername());mav.addObject("user", u);mav.addObject("success", true);mav.setViewName("/index");}return mav;}/*** 查看個(gè)人信息* * @return*/@RequestMapping("viewPerson")public ModelAndView viewPerson(HttpServletRequest request) {User user = (User) request.getSession().getAttribute("user");ModelAndView mav = new ModelAndView();User u = userService.findById(user.getUserId());mav.addObject("user", u);mav.setViewName("/viewPerson");return mav;}/*** 查看個(gè)人課程收藏夾* * @return*/@RequestMapping("viewCollection")public ModelAndView viewCollection(HttpServletRequest request, HttpSession session) {User user = (User) request.getSession().getAttribute("user");ModelAndView mav = new ModelAndView();User u = userService.findById(user.getUserId());String artIds = u.getArticleIds();List<String> result = new ArrayList<>();if (StringUtils.isNotBlank(artIds)) {result = Arrays.asList(StringUtils.split(artIds, ","));}List<Integer> retIds = new ArrayList<>();for (String temp : result) {retIds.add(Integer.valueOf(temp).intValue());}List<Article> retArt = articleService.findByListId(retIds);session.setAttribute("noticeList", noticeService.list(0, 5));mav.addObject("retArt", retArt);mav.addObject("user", u);mav.setViewName("/viewCollection");return mav;}/*** 查看個(gè)人關(guān)注用戶(hù)* * @return*/@RequestMapping("viewFocusUser")public ModelAndView viewFocusUser(HttpServletRequest request, HttpSession session) {User user = (User) request.getSession().getAttribute("user");ModelAndView mav = new ModelAndView();User u = userService.findById(user.getUserId());String userIds = u.getUserIds();List<String> result = new ArrayList<>();if (StringUtils.isNotBlank(userIds)) {result = Arrays.asList(StringUtils.split(userIds, ","));}List<Integer> retIds = new ArrayList<>();for (String temp : result) {retIds.add(Integer.valueOf(temp).intValue());}List<User> retArt = userService.findByListId(retIds);session.setAttribute("noticeList", noticeService.list(0, 5));mav.addObject("retArt", retArt);mav.addObject("user", u);mav.setViewName("/viewFocusUser");return mav;}/*** 保存用戶(hù)信息* * @param user* @return*/@RequestMapping("/save")public ModelAndView save(User user) {ModelAndView mav = new ModelAndView();userService.save(user);mav.setViewName("/index");return mav;}/*** 寫(xiě)筆記頁(yè)面* * @param request* @return*/// @RequestMapping("notePage")// public String notePage(HttpServletRequest request, Model model) {// User user = (User) request.getSession().getAttribute("user");// if (user == null) {// return "webLogin";// }// List<Classify> list = classifyService.findAll();// model.addAttribute("list", list);// return "one";// }@RequestMapping("notePage")public ModelAndView notePage(HttpServletRequest request) {ModelAndView mav = new ModelAndView();User user = (User) request.getSession().getAttribute("user");if (user == null) {mav.setViewName("/webLogin");return mav;}List<Classify> list = classifyService.findAll();mav.addObject("list", list);mav.setViewName("/one");return mav;}/*** 保存筆記* * @param article* @param request* @return*/@RequestMapping("addNote")public ModelAndView addNote(Article article, HttpServletRequest request) {ModelAndView mav = new ModelAndView();// 獲取當(dāng)前用戶(hù)信息User user = (User) request.getSession().getAttribute("user");article.setUserId(user.getUserId());article.setPublishDate(new Date());article.setClick(0);article.setCommentNum(0);article.setContentNoTag(StringUtil.Html2Text(article.getContent()));articleService.save(article);mav.setViewName("/index");return mav;}@RequestMapping("saveNote")public ModelAndView saveNote(Article article, HttpServletRequest request) {ModelAndView mav = new ModelAndView();Article a = articleService.findById(article.getArticleId());article.setPublishDate(a.getPublishDate());// 獲取當(dāng)前用戶(hù)信息articleService.save(article);mav.setViewName("/index");return mav;}/*** 查看筆記* * @return*/@RequestMapping("viewNote")public String viewNote(HttpSession session) {session.setAttribute("noticeList", noticeService.list(0, 5));return "mylist";}@RequestMapping("/delete/{id}")public String delete(@PathVariable(value = "id") String id) throws Exception {articleService.delete(Integer.parseInt(id));return "mylist";}/*** 查看個(gè)人筆記加載數(shù)據(jù)列表* * @param article* @param publishDates* @param page* @param pageSize* @return*/@RequestMapping("/mylist")public Map<String, Object> list(Article article,@RequestParam(value = "publishDates", required = false) String publishDates,@RequestParam(value = "page", required = false) Integer page,@RequestParam(value = "pageSize", required = false) Integer pageSize, HttpServletRequest request) {Map<String, Object> resultMap = new HashMap<String, Object>();// User user = (User) request.getSession().getAttribute("user");// article.setUserId(user.getUserId());String s_bPublishDate = null; // 開(kāi)始時(shí)間String s_ePublishDate = null; // 結(jié)束時(shí)間if (StringUtil.isNotEmpty(publishDates)) {String[] strs = publishDates.split(" - "); // 拆分時(shí)間段s_bPublishDate = strs[0];s_ePublishDate = strs[1];}Long total = articleService.getCount(article, s_bPublishDate, s_ePublishDate);int totalPage = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1); // 總頁(yè)數(shù)resultMap.put("totalPage", totalPage);resultMap.put("errorNo", 0);resultMap.put("data", articleService.list(article, s_bPublishDate, s_ePublishDate, page - 1, pageSize));resultMap.put("total", total);return resultMap;}/*** 后臺(tái)默認(rèn)首頁(yè)* * @return*/@RequestMapping("/index")public String root() {return "/common/index";}/*** 博主信息頁(yè)面* * @return*/@RequestMapping("/blogger")public String blogger() {return "/blogger/index";}/*** 圖片上傳處理 @Title: ckeditorUpload @param file 圖片文件 @return 參數(shù)說(shuō)明 @return* Map<String,Object> 返回類(lèi)型 @throws*/@ResponseBody@RequestMapping("/upload")public Map<String, Object> ckeditorUpload(@RequestParam("file") MultipartFile file) {Map<String, Object> resultMap = new HashMap<String, Object>();Map<String, Object> resultMap1 = new HashMap<String, Object>();String fileName = file.getOriginalFilename(); // 獲取文件名String suffixName = fileName.substring(fileName.lastIndexOf(".")); // 獲取文件的后綴String newFileName = "";try {newFileName = DateUtil.getCurrentDateStr() + suffixName; // 新文件名FileUtils.copyInputStreamToFile(file.getInputStream(), new File(imageFilePath + newFileName)); // 上傳} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}resultMap.put("code", 0);resultMap1.put("filePath", newFileName);resultMap.put("data", resultMap1);return resultMap;}}
配置模塊:
server: port: 80servlet:context-path: /spring: datasource: driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/choosing_courses?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456jpa:hibernate:ddl-auto: updateshow-sql: truedatabase-platform: org.hibernate.dialect.MySQLDialectthymeleaf:cache: falsethymeleaf:prefix: classpath:/templates/MD5Salt: longwangimageFilePath: C:\\Users\\Administrator\\Desktop\\choosingCourses\\src\\main\\webapp\\static\\images\\
downloadImagePath: C:\\Users\\Administrator\\Desktop\\choosingCourses\\src\\main\\webapp
lucenePath: C:\\Users\\Administrator\\Desktop\\choosingCourses\\lucene
主要表設(shè)計(jì):
用戶(hù)表:
CREATE TABLE `NewTable` (
`user_id` int(11) NOT NULL AUTO_INCREMENT ,
`head_portrait` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`lately_login_time` datetime NULL DEFAULT NULL ,
`nickname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`registration_date` datetime NULL DEFAULT NULL ,
`sex` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`open_id` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`article_ids` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`birthday` date NULL DEFAULT NULL ,
`momo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`user_ids` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`user_id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=20
ROW_FORMAT=COMPACT
;
選課類(lèi)型表:
CREATE TABLE `NewTable` (
`classify_id` int(11) NOT NULL AUTO_INCREMENT ,
`classify_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ,
PRIMARY KEY (`classify_id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci
AUTO_INCREMENT=27
ROW_FORMAT=COMPACT
;
選課詳情表:
CREATE TABLE `NewTable` (
`article_id` int(11) NOT NULL AUTO_INCREMENT ,
`author` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ,
`click` int(11) NULL DEFAULT NULL ,
`comment_num` int(11) NULL DEFAULT NULL ,
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL ,
`image_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL ,
`is_original` int(11) NULL DEFAULT NULL ,
`is_top` int(11) NULL DEFAULT NULL ,
`publish_date` datetime NULL DEFAULT NULL ,
`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ,
`classify_id` int(11) NULL DEFAULT NULL ,
`user_id` int(11) NULL DEFAULT NULL ,
PRIMARY KEY (`article_id`),
FOREIGN KEY (`classify_id`) REFERENCES `t_classify` (`classify_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
INDEX `FKo4fros4yfq1m9ay7sgtlcvbc4` (`classify_id`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci
AUTO_INCREMENT=58
ROW_FORMAT=COMPACT
;
評(píng)論交流表:
CREATE TABLE `NewTable` (
`comment_id` int(11) NOT NULL AUTO_INCREMENT ,
`comment_date` datetime NULL DEFAULT NULL ,
`content` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL ,
`article_id` int(11) NULL DEFAULT NULL ,
`user_id` int(11) NULL DEFAULT NULL ,
PRIMARY KEY (`comment_id`),
FOREIGN KEY (`article_id`) REFERENCES `t_article` (`article_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (`user_id`) REFERENCES `t_user` (`user_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
INDEX `FKlsvvc2ob8lxg2m9qqry15ru0y` (`article_id`) USING BTREE ,
INDEX `FKtamaoacctq4qpko6bvtv0ke1p` (`user_id`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci
AUTO_INCREMENT=15
ROW_FORMAT=COMPACT
;
回復(fù)信息表:
CREATE TABLE `NewTable` (
`reply_id` int(11) NOT NULL AUTO_INCREMENT ,
`content` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL ,
`reply_date` datetime NULL DEFAULT NULL ,
`comment_id` int(11) NULL DEFAULT NULL ,
`user_id` int(11) NULL DEFAULT NULL ,
PRIMARY KEY (`reply_id`),
FOREIGN KEY (`comment_id`) REFERENCES `t_comment` (`comment_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (`user_id`) REFERENCES `t_user` (`user_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
INDEX `FKk4ydp71wampdbnguly8iks4rf` (`comment_id`) USING BTREE ,
INDEX `FKslt6r79iw1p9cbxns09erjv6v` (`user_id`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci
AUTO_INCREMENT=6
ROW_FORMAT=COMPACT
;
獲取源碼:
總體來(lái)說(shuō)這個(gè)項(xiàng)目功能相對(duì)還是比較簡(jiǎn)單優(yōu)秀的、適合初學(xué)者作為課程設(shè)計(jì)和畢業(yè)設(shè)計(jì)參考
🍅 查看下方微信號(hào)獲取聯(lián)系方式 承接各種定制系統(tǒng) 📝
🚀🚀🚀精彩系列推薦
Java畢設(shè)項(xiàng)目精品實(shí)戰(zhàn)案例《1000套》
感興趣的可以先收藏起來(lái),還有大家在畢設(shè)選題,項(xiàng)目以及論文編寫(xiě)等相關(guān)問(wèn)題都可以給我留言咨詢(xún),希望幫助更多的人