一款基於SSM框架技術的全棧Java web項目(已部署可直接體驗)
概述
此項目基於SSM框架技術的Java Web項目,是全棧項目,涉及前端、後端、插件、上線部署等各個板塊,項目所有的代碼都是自己編碼所得,每一步、部分都有清晰的註釋,完全不用擔心代碼混亂,可以輕松、簡單、放心全面學習(也不需要版本控制配置)。下載後遇到任何問題,我將全力進行解答。 此項目:快編(kuaib)是一款方便快速全能的編輯系統,竭盡全力地將編寫、查找、比對、修改、文件下載、上傳、查重等所有功能整合於單個頁面操作綜合操作系統。--另外,此項目已部署:http://yws233.cn:8080/kuaib/,可直接訪問體驗--。詳細
代碼下載:http://www.demodashi.com/demo/12947.html
註:由於項目直接下載後,只要符合部署環境,保證可運行,並且已經上線部署運行測試(無需maven等版本控制)。此外,由於項目代碼數量巨大,此處已對文件結構及詳細進行說明,故只貼登錄控制層(LoginController)為例。下載後有任何問題均可與我聯系(郵箱:[email protected]),或者直接點擊http://yws233.cn:8080/kuaib/(項目部署網址進行體驗)查看系統功能詳細說明。
此外,由於該項目耗費作者半年左右時間、心血,是純粹的原創,版權完全歸作者所有,僅供個人學習交流使用,如要用於其他商業、分享、建議等行為,請務必與作者聯系。
一、代碼實現過程
1.項目技術說明
前端:HTML5 + CSS3 + JS + jQuery + ajax + fastjson + xhEditer + pdf.js
後端:SpringMVC + Spring + Mybatis + POIXMLDocument + SimHash
數據庫:MySQL + Redis(緩存後期)
服務器:Tomcat9.02 + aliyun + jdk1.8
文件處理:POI + PDFBOX + JDOM + itextpdf
開發環境:ubuntu16.04 + IDEA17.2
2.配置文件部分
-
MySQL數據庫配置 -----> database.properties
-
LOG4J配置文件-----------> log4j.properties
-
Mybatis----------------------> mybatis-config.xml
-
SpringMVC配置文件-----> springmvc-servlet.xml
-
Spring配置文件------------> applicationContext-mybatis.xml
3.核心控制層
BaseController(基礎過濾層)
LoginController(登錄控制層)
UserController(主頁控制層)
下貼登錄層代碼為例:
/* * 登錄控制層 * */ package cn.kuaib.controller; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import com.mysql.jdbc.StringUtils; import org.apache.log4j.Logger; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import cn.kuaib.pojo.User; import cn.kuaib.service.UserService; import cn.kuaib.tools.Constants; import org.springframework.web.bind.annotation.ResponseBody; import java.text.SimpleDateFormat; import java.util.Date; @Controller public class LoginController { private Logger logger = Logger.getLogger(LoginController.class); @Resource private UserService userService; @RequestMapping(value="/login.html") public String login(){ logger.debug("LoginController welcome Kuaib=================="); // 隨機顯示登錄頁文字 return "login"; } @RequestMapping(value="/dologin.html",method=RequestMethod.POST) public String doLogin(@RequestParam String userCode,@RequestParam String userPassword,HttpServletRequest request,HttpSession session) throws Exception{ logger.debug("doLogin===================================="); //調用service方法,進行用戶匹配 User user = userService.login(userCode,userPassword); String loginPic = request.getParameter("picconfirm"); //獲取驗證值 Boolean confirm = loginPic.equals("驗證成功!"); logger.info("######piccccccccccccccccccc:" + loginPic); logger.info("######piccccccccccccccccccc:" + confirm); if (null != user){ if(user.getUserCode() != "" && user.getUserCode() != null && user.getUserPassword() != null && user.getUserPassword() != "" && loginPic.equals("驗證成功!")){//登錄成功 //放入session session.setAttribute(Constants.USER_SESSION, user); //放入密碼,文件上傳使用 session.setAttribute(Constants.USER_PASS,user); return "redirect:/sys/main.html"; //進入攔截器進行驗證 } }else{ //頁面跳轉(login.jsp)帶出提示信息--轉發 request.setAttribute("error", "*用戶名或密碼不正確"); return "login"; } return "login"; } /* * 用戶註冊 * */ @RequestMapping(value = "adduser.html", method = RequestMethod.POST) public String addUser(User user, HttpSession session){ try { if (userService.addReg(user) == true){ session.setAttribute("regtrue", "註冊成功!"); //放置註冊成功提示 return "redirect:/login.html"; } } catch (Exception e) { e.printStackTrace(); } return "register"; } /* * 異步判斷註冊用戶是否重名 * */ @RequestMapping(value = "/userCodeExist.html") @ResponseBody //異步處理結果直接寫入HTTP ResponseBody中 public Object userCodeIsExist(@RequestParam String userCode){ logger.info("///////////*****************////////////進入異步判斷"); /*HashMap<String, String> resultMap = new HashMap<String, String>();*/ String cjson = null; logger.debug("userCodeIsExit userCode===================== "+userCode); if (StringUtils.isNullOrEmpty(userCode)){ /*resultMap.put("userCode", "exist");*/ //如果用戶已經存在 logger.info("//////************************進入null:"); return "nullcode"; }else { try { User user = userService.registerUser(userCode); if (null != user){ cjson = "exist"; //用戶不為空則已存在 }else { // 註冊用戶長度不能長於10 int len = userCode.length(); if (len >= 10){ cjson = "toolen"; //用戶輸入的長度超過10則提示 }else { cjson = "noexist"; //用戶為空,則可以註冊 } } } catch (Exception e) { e.printStackTrace(); } } /*logger.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>" + JSONArray.toJSONString(resultMap)); return JSONArray.toJSONString(resultMap);*/ logger.info("//////************************cjson:" + cjson); return cjson; } /* * 異步判斷用戶郵箱是否存在 * */ @RequestMapping(value = "/userpwdexist.html") @ResponseBody public String userPasswordExist(@RequestParam String email){ logger.info("進入郵箱異步判斷>>>>>>>>>>>>>>>>>>>>>>>>>>>"); String ejson = null; if (StringUtils.isNullOrEmpty(email)){ return "nullpwd"; }else { User user = userService.backPassword(email); if (null != user){ ejson = "existpwd"; }else { ejson = "noexistpwd"; } } logger.info("//////************************cjson:" + ejson); return ejson; } /* * 跳轉至找回密碼頁面 * */ @RequestMapping(value = "back.html") public String back(){ return "forget"; } /* * 找回密碼 * */ @RequestMapping(value = "backpassword.html",method = RequestMethod.POST) public String backPass(@RequestParam String email, HttpSession session){ User user = userService.backPassword(email); if (user != null){ session.setAttribute(Constants.PASSWORD,user.getUserPassword()); return "backpwd"; } session.setAttribute(Constants.SYS_MESSAGE,"*您的郵箱不存在,請先註冊"); return "forget"; } /* * 跳轉到登錄頁面 * */ @RequestMapping(value = "backlogin.html") public String backLogin(){ return "login"; } @RequestMapping(value = "register.html") public String skipRegister(){ return "register"; } @RequestMapping(value="/sys/main.html") public String main(HttpSession session){ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//設置日期格式 session.setAttribute(Constants.DATA_NOW,df.format(new Date())); return "main"; } }
Dao層,Service層等
4.前端部分
其中pdf和xhEditer為插件,可在官網了解。
jsp及lib包
二、代碼實現過程
1.整體項目下載後,解壓後導入IDEA:
2.數據庫及SSM配置文件(修改你自己的用戶名密碼)
3.核心控制層
4.前端web層
三、演示效果
1.登錄頁
2.主頁(各區域文件上傳顯示圖)
3.交換系統
4.註冊頁
5.密碼找回
代碼下載:http://www.demodashi.com/demo/12947.html
註:本文著作權歸作者,由demo大師發表,拒絕轉載,轉載需要作者授權
一款基於SSM框架技術的全棧Java web項目(已部署可直接體驗)