基于javaweb的学院社团管理系统(idea+servlet+jsp)

news2024/11/6 9:30:07

一、系统简介

本项目采用idea工具开发,jsp+servlet+jquery技术编写,数据库采用的是mysql,navicat开发工具。

系统一共分为3个角色分别是:管理员,学生,社长

获取方式:基于javaweb的学院社团管理系统(idea+servlet+jsp) - 九鸟网

二、模块简介

管理员

1、个人信息管理

2、社团活动管理

3、社团报名管理

4、学生管理

5、社长管理

6、公告管理

7、登录

学生

1、登录注册

2、个人信息管理

3、社团报名管理

4、社团报名历史记录查询

5、公告管理

社长

1、登录

2、我的社团报名管理

3、个人信息维护

4、公告管理

项目简介
难度等级:✩✩✩
用户类型:3角色(管理员,学生,社长)
设计模式:MVC
项目架构:B/S架构
开发语言:Java语言
前端技术:HTML、CSS、JS、JQuery等
后端技术:JSP、servlet框架
运行环境:Windows7或10、JDK1.8
运行工具:本系统采用idea开发,仅支持idea运行,不支持MyEclipse和eclipse运行,因为三者的骨架不一样,强行导入打开运行可能会导致出现未知的错误。
数  据  库:MySQL5.5/5.7/8.0版本
运行服务器:Tomcat7.0/8.0/8.5/9.0等版本
是否基于Maven环境:否
是否采用框架:是
数据库表数量:7张表
JSP页面数量:20多张
是否有分页:有分页

相关截图


 

相关代码

登录

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<jsp:include page="/WEB-INF/common/header.jsp"/>
<body>
<div class="row lyear-wrapper">
  <div class="lyear-login">
    <div class="login-center">
      <div class="login-header text-center">
        <a href=""> <h4  style="color: #15c377;">学院社团管理系统</h4></a>
      </div>
      <form action="" method="post" >
        <div class="form-group has-feedback feedback-left">
          <input type="text" placeholder="请输入邮箱" class="form-control" name="email" id="email" />
          <span class="mdi mdi-account form-control-feedback" aria-hidden="true"> </span>
         <span id="msg" style="color:red;"></span>
        </div>
        <div class="form-group has-feedback feedback-left">
          <input type="password" placeholder="请输入密码" class="form-control" id="password" name="password" />
          <span class="mdi mdi-lock form-control-feedback" aria-hidden="true"></span>
           <span id="msg2" style="color:red;"></span>
        </div>
        <div class="form-group has-feedback feedback-left row">

            <div class="col-xs-12">
                <select class="form-control" id="type" name="example-select" size="1">
                    <option value="1">请选择角色</option>
                    <option value="1">学生</option>
                    <option value="2">社长</option>
                    <option value="3">管理员</option>

                </select>
            </div>
        </div>
          <font  color="red">${message}</font>
        <div class="form-group"><!-- onclick="location.href='index.html'" -->
          <button class="btn btn-block btn-primary" type="button" id="login"  >立即登录</button>
           
        </div>
      </form>
       <button class="btn btn-block btn-primary" type="button" onclick="location.href='UserServlet?action=toRegsite'">去注册</button>
      <hr>
      <footer class="col-sm-12 text-center">
      </footer>
    </div>
  </div>
</div>

<script type="text/javascript">
    layui.use(['layer', 'form','jquery'], function(){
        var layer = layui.layer
            ,form = layui.form
            ,jquery=layui.jquery;
        $("#login").on("click", function() {
            var email = $("#email").val().trim(); // trim()去除空格
            var password = $("#password").val().trim();
            var type = $("#type").val();
            if(!email) {
                $("#msg").html("邮箱不能为空!");
                $("#email").focus(); // 聚焦
                return false;
            } else {
                if(!password) {
                    $("#msg").html("密码不能为空!");
                    $("#password").focus(); // 聚焦
                    return false;
                } else {
                    $("#msg").html("");
                }
            }

            $.ajax({
                type: "post", // post或get
                url: "${pageContext.request.contextPath}/UserServlet?action=login", // 提交路径
                data: {
                    email: email,
                    password: password,
                    type:type,
                },
                // dataType: "json", // 指定后台传来的数据是json格式
                success: function(data) {

                    if (data == "ok") {
                        layer.msg('登陆成功!', {icon: 6});
                        // 延迟跳转
                        window.setTimeout("window.location='${pageContext.request.contextPath}/UserServlet?action=toMain'",900);
                    } else if(data=="error"){
                        layer.tips('邮箱或密码错误!', '#login', {
                            tips: [2, '#FF5722'],
                            time: 4000

                        });

                    }else if(data=="error1"){
                        layer.msg("邮箱和类型不匹配",function () {3000})
                    }

                },

                error: function(err) {}

            })

        })



    });
</script>

</body>
</html>
  /**
     * 登录
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    public void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//处理登录
        //清空登录记录
        request.getSession().invalidate();
        //进行登录操作
        String email = request.getParameter("email");
        String password = request.getParameter("password");
        String type = request.getParameter("type");
        Admin admin = new Admin();
        User user = new User();
        Student student = new Student();
        if(type != null && type.equals("1")){
            student.setEmail(email);
            student.setPwd(password);
            Student stu = us.selectStudent(student);
            if(stu != null){
                response.getWriter().print("ok");
                request.getSession().setAttribute("student",stu);
                request.getSession().setAttribute("flag",1);
            }else{
                response.getWriter().print("error");
            }
        }else if(type != null && type.equals("2")){
            user.setEmail(email);
            user.setPwd(password);
            User user1 = us.selectUser(user);
            if(user1 != null){
                response.getWriter().print("ok");
                request.getSession().setAttribute("user",user1);
                request.getSession().setAttribute("flag",2);
            }else{
                response.getWriter().print("error");
            }
        }else if(type != null && type.equals("3")){
            admin.setEmail(email);
            admin.setPwd(password);
            Admin admin1 = us.selectAdmin(admin);
            if(admin1 != null){
                response.getWriter().print("ok");
                request.getSession().setAttribute("admin",admin1);
                request.getSession().setAttribute("flag",3);
            }else{
                response.getWriter().print("error");
            }
        }else{
            response.getWriter().print("error1");
        }

    }

非开源!!!!!!
项目截图中的数据,很多是用来测试的,需求自行添加合适的数据图片


喜欢的朋友的点赞加关注,感兴趣的同学可以研究!!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/128190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VisualStudio2015安装不上的解决方法_选择对应msi_依然报错继续选择---VisualStudio2015工作笔记001

这个visualstudio网上竟然有卖的,真的是太~咱啥也不说了~ 好了说解决办法吧; 1.这里完整版大小挺大的6G多,但是这里我们找的有可能是只有3.8G左右的,这个版本的就是有文件损坏...但是这个版本是可以装上的,也不耽误用的,我亲自测试了. 2.因为很久没写vb.net程序了,想写个小程…

Docker中安装宝塔

1、docker拉取ubuntu系统 docker pull ubuntudocker pull ubuntu 2、运行容器 docker run -i -t -d --name bt -p 2000:20 -p 2100:21 -p 8000:80 -p 4430:443 -p 8880:888 -p 8888:8888 --privilegedtrue -v /d/baota:/www/wwwroot ubuntu -v后的/d/baota代表本地D盘的bao…

【LeetCode】二叉树中的最大路径和 [H](递归)

124. 二叉树中的最大路径和 - 力扣&#xff08;LeetCode&#xff09; 一、题目 路径 被定义为一条从树中任意节点出发&#xff0c;沿父节点-子节点连接&#xff0c;达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一…

擎创技术流 | ClickHouse实用工具—ckman教程(8)

2022年即将迎来终点&#xff0c;各大公司和网站开始出“年终使用报告”了&#xff0c;而关于ClickHouse系列分享也来到了尾期。本系列最初一共规划了10期内容&#xff0c;一转眼就只剩最后2期了&#xff0c;初衷就是单纯的技术分享&#xff0c;如果你能从中得到启发&#xff0c…

圣诞节来临,TikTok上圣诞相关产品销量突破5万单丨超店有数

12月25日&#xff0c;圣诞节正式来临。TikTok卖家和达人如何把握住这个一年一度的「西方春节」&#xff0c;如何实现精准选品&#xff0c;快速爆单。凡事预则立&#xff0c;不预则废。快人一步&#xff0c;掌握趋势&#xff0c;抢占先机。 从谷歌趋势观察&#xff0c;一周内「…

图说Netty服务端启动过程

我们知道Netty是一个基于JDK的nio实现的网络编程框架&#xff0c;那Netty的服务端是怎么启动的呢&#xff0c;包括他是何时register 的&#xff0c;何时 bind 端口的&#xff0c;以及何时开始读取网络中的数据的&#xff1f; 让我们带着这个疑问&#xff0c;通过一个官方的例子…

webRTC 实现人脸识别

首先我们需要先了解一下什么是webRTC 他能做什么 webRTC主要是帮我们处理多媒体应用&#xff0c;如音视频通话&#xff0c;屏幕共享都可以实现&#xff0c;主要基于浏览器API调用&#xff0c;其底层浏览器会调用native C 等一些库帮我们实现的&#xff0c;而我们在应用层掉API …

欧科云链荣获人民网匠心技术奖,科技创新共造企业发展“强引擎”

什么是匠心精神&#xff1f; 是简单的事情重复做 重复的事情用心做 是对自己热爱的事物 不断坚持、不断钻研的精神 昨日&#xff0c;由人民网主办的“2022人民财经高峰论坛”成功举办&#xff0c;论坛还公布了“第十九届人民匠心奖”获奖名单。欧科云链携旗下“链上天眼”产品荣…

第三十七章 数论——博弈论

第三十七章 数论——博弈论一、Nim游戏1、题目2、结论3、结论验证4、代码二、台阶——Nim游戏1、问题2、思路2、代码三、集合——Nim游戏1、问题2、思路—SG()函数2、代码实现&#xff08;记忆化搜索&#xff09;一、Nim游戏 1、题目 2、结论 这里直接说结论&#xff1a; 假设…

vue导入私有组件和注册全局组件

目录先下载并配置插件导入私有组件注册全局组件先下载并配置插件 导入的时候需要路径,有个符号,但不能提示路径,需要手打路径,会发现很麻烦,这时候可以通过vscode插件来解决 vscode搜索Path Autocomplete 配置插件,点击插件设置—扩展设置,点开任意一个setting.json中编辑,打开…

Yield Guild Games 和 Axie Infinity:迄今为止的旅程

2022 年&#xff0c;菲律宾被认为是全球应用 web3 的中心&#xff0c;在 Chainalysis 的全球加密货币应用指数中排名第二&#xff0c;在拥有最多 MetaMask 用户的国家中排名第三。虽然该国作为 Coins.ph 和 BloomX 等开创性数字资产交易所以及对加密货币友好的 UnionBank 的所在…

Flutter生命周期

一、组件生命周期 flutter组件只有两种&#xff1a;有状态和无状态组件。由于无状态组件效率高&#xff0c;如果不涉及到组件内部的数据存储&#xff0c;尽量多的使用无状态组件 1、StatelessWidget build&#xff1a;组件渲染 调用次数&#xff1a;1次 StatelessWidget是无状…

MYSQL索引和sql优化

基本 索引是帮助数据高效查询的有序数据结构&#xff0c;没有索引进行查询就会进行全表扫描myisam中的.MYI和innodb中的.idb都是存放索引的文件。索引提高查询效率的同时&#xff0c;也降低了更新表的数据&#xff0c;因为数据库中删改查会维护索引的结构。一般提到的索引就是…

安装mysqlclient失败解决办法

简介 系统&#xff1a;MAC 前因&#xff1a;django使用mysql数据库报错django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.Django使用MySQL数据库需要加载 MySQLdb模块&#xff0c;需要安装 mysqlclient&#xff08;django2.2以前安装pymysql&#…

ipsec 建立正常后业务端口测试通过但是业务访问故障

某公司ipsec 分支和总部对接成功后&#xff0c;检查发现两端业务测试正常。分支和总部服务器可以互访&#xff0c;分支测试总部服务器80端口开放正常&#xff0c;排除两侧因策略的影响。但是总部服务器web业务和数据库业务均出现无法访问&#xff0c;web页面打不开&#xff0c;…

Es初步检索命令

1、_cat GET /_cat/nodes&#xff1a;查看所有节点 请求 &#xff1a; http://192.168.107.129:9200/_cat/nodes 响应 &#xff1a; 127.0.0.1 15 95 8 0.19 0.16 0.24 dilm * 32bb46713f1b GET /_cat/health&#xff1a;查看 es 健康状况 请求 &#xff1a; http://192.16…

kali - 通过抓包获取FTP连接密码

数据来源 开始实验 实验目标&#xff1a;在win2003主机部署一台FTP服务器&#xff0c;然后winXP通过账户密码连接2003主机的FTP服务器&#xff0c;kali虚拟机抓取数据包获取密码。 实验拓补图 实验流程&#xff1a; 1、开启虚拟机并配置IP 我这里开了一台Kali、一台window…

elmentUI组建中el-date-picker实现限制时间范围精确到小时

elmentUI组建中el-date-picker实现限制时间范围精确到小时 需求要求 时间选择器只能选择今天之前的日期.默认时间是前一天00点~23点后台返回的最小时间和最大时间时间精度限制到小时 开始想着用type"datetimerange"来实现,后来发现控制时间禁用无法实现,后改变思路…

SkyEye助力飞控软件Debug

​01.Debug是什么&#xff1f; 1947年9月9日&#xff0c;美国著名科学家格蕾丝.霍普&#xff08;Grace Hopper&#xff09;与其同伴在对Mark II计算机进行研究时发现&#xff0c;导致计算机无法正常工作的罪魁祸首居然是一只粘在继电器上的小飞蛾。格蕾丝用镊子将飞蛾夹出&…

在腾讯、阿里、字节技术岗工作十年能挣普通公务员一辈子的钱吗?

在腾讯、阿里、字节技术岗工作十年&#xff0c;能挣到普通公务员一辈子的钱&#xff0c;但不一定能存到普通公务员一辈子的钱。 大厂程序员 VS 普通公务员谁更香&#xff0c;一直是争论不断的话题&#xff0c;让我们站在程序员的角度&#xff0c;来回答这一问题。 大厂程序员V…