最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之校園一卡通系統(tǒng)的實(shí)現(xiàn)

 更新時(shí)間:2022年01月26日 16:27:48   作者:OldWinePot  
這是一個(gè)使用了java+Springboot+Maven+mybatis+Vue+mysql+wd開發(fā)的校園一卡通系統(tǒng),是一個(gè)畢業(yè)設(shè)計(jì)的實(shí)戰(zhàn)練習(xí),具有校園一卡通系統(tǒng)該有的所有功能,感興趣的朋友快來看看吧

一、項(xiàng)目簡述(+需求文檔+PPT)

功能:卡管理,卡消費(fèi),卡充值,圖書借閱,消費(fèi),記錄,注銷等等功能。

二、項(xiàng)目運(yùn)行

環(huán)境配置:

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

項(xiàng)目技術(shù):

JSP + Servlet + html+ css + JavaScript + JQuery + Ajax 等等

用戶管理操作控制層:

/**
 * 用戶管理操作
 */
@Controller
@RequestMapping("/user")
public class UserController {
 
    @Autowired
    private UserService userService;
 
    /**
     * 用戶添加頁面
     * @return
     */
    @GetMapping("/add")
    public String create() {
        return "user/add";
    }
 
    /**
     * 用戶添加操作
     * @param user
     * @return
     */
    @PostMapping("/add")
    @ResponseBody
    public Map<String, Object> add(@RequestBody User user) {
        if(StringUtils.isEmpty(user.getUserName())){
            return MapControl.getInstance().error("請?zhí)顚懹脩裘?).getMap();
        }
        if(StringUtils.isEmpty(user.getName())){
            return MapControl.getInstance().error("請?zhí)顚懨Q").getMap();
        }
        if(StringUtils.isEmpty(user.getUserPwd())){
            return MapControl.getInstance().error("請?zhí)顚懨艽a").getMap();
        }
        int result = userService.create(user);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }
 
    /**
     * 根據(jù)id刪除
     * @param id
     * @return
     */
    @PostMapping("/delete/{id}")
    @ResponseBody
    public Map<String, Object> delete(@PathVariable("id") Integer id) {
        int result = userService.delete(id);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }
 
    //批量刪除
    @PostMapping("/delete")
    @ResponseBody
    public Map<String, Object> delete(String ids) {
        int result = userService.delete(ids);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }
 
    /**
     * 編輯用戶信息操作
     * @param user
     * @return
     */
    @PostMapping("/edit")
    @ResponseBody
    public Map<String, Object> edit(@RequestBody User user) {
        if(StringUtils.isEmpty(user.getUserName())){
            return MapControl.getInstance().error("請?zhí)顚懹脩裘?).getMap();
        }
        if(StringUtils.isEmpty(user.getName())){
            return MapControl.getInstance().error("請?zhí)顚懨Q").getMap();
        }
        if(StringUtils.isEmpty(user.getUserPwd())){
            return MapControl.getInstance().error("請?zhí)顚懨艽a").getMap();
        }
        int result = userService.update(user);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }
 
    /**
     * 根據(jù)id查詢,跳轉(zhuǎn)修改頁面
     * @param id
     * @param modelMap
     * @return
     */
    @GetMapping("/edit/{id}")
    public String edit(@PathVariable("id") Integer id, ModelMap modelMap) {
        User user = userService.detail(id);
        modelMap.addAttribute("user", user);
        return "user/edit";
    }
 
    //查詢所有
    @PostMapping("/query")
    @ResponseBody
    public Map<String, Object> query(@RequestBody User user) {
        List<User> list = userService.query(user);
        Integer count = userService.count(user);
        return MapControl.getInstance().success().page(list, count).getMap();
    }
 
    //跳轉(zhuǎn)列表頁面
    @GetMapping("/list")
    public String list() {
        return "user/list";
    }
 
}

登錄控制層:

@Controller
public class LoginController {
 
    @Autowired
    private UserService userService;
    @Autowired
    private TeacherService teacherService;
    @Autowired
    private StudentService studentService;
 
    //跳轉(zhuǎn)登錄頁面
    @GetMapping("/login")
    public String login() {
        return "login";
    }
 
    //登錄操作
    @PostMapping("/login")
    @ResponseBody
    public Map<String, Object> login(String userName, String password, String captcha, String type, HttpSession session) {
        //判斷用戶名、密碼、用戶類型、驗(yàn)證碼是否為空
        if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password) || StringUtils.isEmpty(captcha) || StringUtils.isEmpty(type)) {
            return MapControl.getInstance().error("用戶名或密碼不能為空").getMap();
        }
        //獲取系統(tǒng)生成的驗(yàn)證碼
        String _captcha = (String) session.getAttribute("captcha");
        //先判斷驗(yàn)證碼是否正確
        if (!(captcha.toLowerCase()).equals(_captcha.toLowerCase())) {
            //驗(yàn)證碼錯(cuò)誤
            return MapControl.getInstance().error("驗(yàn)證碼錯(cuò)誤").getMap();
        }
 
        //判斷用戶類型
        if ("1".equals(type)) { //管理員驗(yàn)證登錄
            User user = userService.login(userName, MD5Utils.getMD5(password)); //對密碼進(jìn)行加密處理,因?yàn)閿?shù)據(jù)庫中存儲的是加密后的密碼
            if (user != null) {
                session.setAttribute("user", user);
                session.setAttribute("type", 1);
                return MapControl.getInstance().success().add("data", user).getMap();
            } else {
                return MapControl.getInstance().error("用戶名或密碼錯(cuò)誤").getMap();
            }
        }
        if ("2".equals(type)) { //老師驗(yàn)證登錄
            Teacher teacher = teacherService.login(userName, MD5Utils.getMD5(password));
            if (teacher != null) {
                session.setAttribute("user", teacher);
                session.setAttribute("type", "2");
                return MapControl.getInstance().success().add("data", teacher).getMap();
            } else {
                return MapControl.getInstance().error("用戶名或密碼錯(cuò)誤").getMap();
            }
        }
        if ("3".equals(type)) { //學(xué)生驗(yàn)證登錄
            Student student = studentService.login(userName, MD5Utils.getMD5(password));
            if (student != null) {
                session.setAttribute("user", student);
                session.setAttribute("type", "3");
                return MapControl.getInstance().success().add("data", student).getMap();
            } else {
                return MapControl.getInstance().error("用戶名或密碼錯(cuò)誤").getMap();
            }
        }
        return MapControl.getInstance().getMap();
    }
 
}

生成驗(yàn)證碼:

@Controller
@RequestMapping("/captcha")
public class CaptchaController {
 
    private char[] codeSequence = {'A', '1', 'B', 'C', '2', 'D', '3', 'E', '4', 'F', '5', 'G', '6', 'H', '7', 'I', '8', 'J',
            'K', '9', 'L', '1', 'M', '2', 'N', 'P', '3', 'Q', '4', 'R', 'S', 'T', 'U', 'V', 'W',
            'X', 'Y', 'Z'};
 
    @RequestMapping("/code")
    public void getCode(HttpServletResponse response, HttpSession session) throws IOException {
        int width = 80;
        int height = 37;
        Random random = new Random();
        //設(shè)置response頭信息
        //禁止緩存
        response.setHeader("Pragma", "No-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
 
        //生成緩沖區(qū)image類
        BufferedImage image = new BufferedImage(width, height, 1);
        //產(chǎn)生image類的Graphics用于繪制操作
        Graphics g = image.getGraphics();
        //Graphics類的樣式
        g.setColor(this.getColor(200, 250));
        g.setFont(new Font("Times New Roman", 0, 28));
        g.fillRect(0, 0, width, height);
        //繪制干擾線
        for (int i = 0; i < 40; i++) {
            g.setColor(this.getColor(130, 200));
            int x = random.nextInt(width);
            int y = random.nextInt(height);
            int x1 = random.nextInt(12);
            int y1 = random.nextInt(12);
            g.drawLine(x, y, x + x1, y + y1);
        }
 
        //繪制字符
        String strCode = "";
        for (int i = 0; i < 4; i++) {
            String rand = String.valueOf(codeSequence[random.nextInt(codeSequence.length)]);
            strCode = strCode + rand;
            g.setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110)));
            g.drawString(rand, 13 * i + 6, 28);
        }
        //將字符保存到session中用于前端的驗(yàn)證
        session.setAttribute("captcha", strCode.toLowerCase());
        g.dispose();
 
        ImageIO.write(image, "JPEG", response.getOutputStream());
        response.getOutputStream().flush();
    }
 
    public Color getColor(int fc, int bc) {
        Random random = new Random();
        if (fc > 255)
            fc = 255;
        if (bc > 255)
            bc = 255;
        int r = fc + random.nextInt(bc - fc);
        int g = fc + random.nextInt(bc - fc);
        int b = fc + random.nextInt(bc - fc);
        return new Color(r, g, b);
    }
 
}

到此這篇關(guān)于Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之校園一卡通系統(tǒng)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java 校園一卡通系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 云服務(wù)器環(huán)境搭建及部署(jdk、mysql、redis、nginx環(huán)境搭建)詳細(xì)步驟

    云服務(wù)器環(huán)境搭建及部署(jdk、mysql、redis、nginx環(huán)境搭建)詳細(xì)步驟

    這篇文章主要給大家介紹了關(guān)于云服務(wù)器環(huán)境搭建及部署(jdk、mysql、redis、nginx環(huán)境搭建)詳細(xì)步驟的相關(guān)資料,要在云服務(wù)器上搭建JDK、MySQL、Redis和Nginx的環(huán)境,可以按照以下步驟進(jìn)行操作,需要的朋友可以參考下
    2024-01-01
  • springboot整合mongodb使用詳解

    springboot整合mongodb使用詳解

    MongoDB是一個(gè)文檔數(shù)據(jù)庫(以?JSON?為數(shù)據(jù)模型),由C++語言編寫,旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案,本文就給大家介紹一下詳細(xì)介紹一下springboot整合mongodb使用,需要的朋友可以參考下
    2023-07-07
  • java如何消除太多的if else判斷示例代碼

    java如何消除太多的if else判斷示例代碼

    這篇文章主要介紹了java如何消除太多的if else判斷,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • java枚舉enum,根據(jù)value值獲取key鍵的操作

    java枚舉enum,根據(jù)value值獲取key鍵的操作

    這篇文章主要介紹了java枚舉enum,根據(jù)value值獲取key鍵的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 很多人竟然不知道Java線程池的創(chuàng)建方式有7種

    很多人竟然不知道Java線程池的創(chuàng)建方式有7種

    本文主要介紹了很多人竟然不知道Java線程池的創(chuàng)建方式有7種,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • springboot整合mybatis的超詳細(xì)過程(配置模式+注解模式)

    springboot整合mybatis的超詳細(xì)過程(配置模式+注解模式)

    這篇文章主要介紹了springboot整合mybatis的詳細(xì)過程(配置模式+注解模式),這里我使用的是配置模式+注解模式所以需要配置全局文件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Java整數(shù)和字符串相互轉(zhuǎn)化實(shí)例詳解

    Java整數(shù)和字符串相互轉(zhuǎn)化實(shí)例詳解

    這篇文章主要介紹了Java整數(shù)和字符串相互轉(zhuǎn)化實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 用Java生成二維碼并附帶文字信息

    用Java生成二維碼并附帶文字信息

    這篇文章主要介紹了用Java生成二維碼并附帶文字信息,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • java實(shí)現(xiàn)mongodb的數(shù)據(jù)庫連接池

    java實(shí)現(xiàn)mongodb的數(shù)據(jù)庫連接池

    這篇文章主要介紹了基于java實(shí)現(xiàn)mongodb的數(shù)據(jù)庫連接池,Java通過使用mongo-2.7.3.jar包實(shí)現(xiàn)mongodb連接池,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 詳解Java如何向http/https接口發(fā)出請求

    詳解Java如何向http/https接口發(fā)出請求

    這篇文章主要為大家詳細(xì)介紹了Java如何實(shí)現(xiàn)向http/https接口發(fā)出請求,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-01-01

最新評論

隆昌县| 通城县| 湖州市| 合水县| 东阳市| 辛集市| 手游| 余干县| 萝北县| 建阳市| 全椒县| 克山县| 江城| 六枝特区| 莫力| 剑河县| 石城县| 彰化县| 绥宁县| 顺平县| 县级市| 盐源县| 江山市| 景宁| 汕尾市| 禹州市| 油尖旺区| 蓝山县| 娄烦县| 榕江县| 白沙| 锡林郭勒盟| 中阳县| 始兴县| 高邑县| 上饶县| 屯昌县| 务川| 巴林左旗| 阳高县| 新河县|