一款基於SSM框架技術的全棧Java web項目(已部署可直接體驗)

概述

此項目基於SSM框架技術的Java Web項目,是全棧項目,涉及前端、後端、插件、上線部署等各個板塊,項目全部的代碼都是本身編碼所得,每一步、部分都有清晰的註釋,徹底不用擔憂代碼混亂,能夠輕鬆、簡單、放心全面學習(也不須要版本控制配置)。下載後遇到任何問題,我將全力進行解答。 此項目:快編(kuaib)是一款方便快速全能的編輯系統,不遺餘力地將編寫、查找、比對、修改、文件下載、上傳、查重等全部功能整合於單個頁面操做綜合操做系統。--另外,此項目已部署:http://yws233.cn:8080/kuaib/,可直接訪問體驗--。

詳細

 

注:因爲項目直接下載後,只要符合部署環境,保證可運行,而且已經上線部署運行測試(無需maven等版本控制)。此外,因爲項目代碼數量巨大,此處已對文件結構及詳細進行說明,故只貼登陸控制層(LoginController)爲例。下載後有任何問題都可與我聯繫(郵箱:yws_ssh@163.com),或者直接點擊http://yws233.cn:8080/kuaib/(項目部署網址進行體驗)查看系統功能詳細說明。html

此外,因爲該項目耗費做者半年左右時間、心血,是純粹的原創,版權徹底歸做者全部,僅供我的學習交流使用,如要用於其餘商業、分享、建議等行爲,請務必與做者聯繫。前端

1、代碼實現過程java

1.項目技術說明mysql

前端:HTML5 + CSS3 + JS + jQuery + ajax + fastjson + xhEditer + pdf.jsweb

後端:SpringMVC + Spring + Mybatis + POIXMLDocument + SimHashajax

數據庫:MySQL + Redis(緩存後期)spring

服務器:Tomcat9.02 + aliyun + jdk1.8sql

文件處理:POI + PDFBOX + JDOM + itextpdf數據庫

開發環境:ubuntu16.04 + IDEA17.2apache

2.配置文件部分

  1. MySQL數據庫配置 -----> database.properties

  2. LOG4J配置文件-----------> log4j.properties

  3. Mybatis----------------------> mybatis-config.xml

  4. SpringMVC配置文件-----> springmvc-servlet.xml

  5. Spring配置文件------------> applicationContext-mybatis.xml

database.png

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";
}
}

 

選區_012.png

Dao層,Service層等

選區_016.png

4.前端部分

其中pdf和xhEditer爲插件,可在官網瞭解。

選區_013.png

jsp及lib包

選區_015.png

2、代碼實現過程

1.總體項目下載後,解壓後導入IDEA:

all.png

2.數據庫及SSM配置文件(修改你本身的用戶名密碼)

database.png

3.核心控制層

controller.png

4.前端web層

web.png

3、演示效果

 

1.登陸頁

login.png

2.主頁(各區域文件上傳顯示圖)

選區_004.png

 

3.交換系統

class.png

 

4.註冊頁

register.png

 

5.密碼找回

backpass.png

注:本文著做權歸做者,由demo大師發表,拒絕轉載,轉載須要做者受權

相關文章
相關標籤/搜索