精华内容
下载资源
问答
  • 最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScript和PHP,数据库用到了MySQL。麻雀虽小,五脏俱全。算是对这些知识的一次总结吧。2.源码工程包括5个php文件:index.php,负责首页展现;...

    (∩_∩)

    1.概述

    学了php的一些基础,包括HTML,php,pdo,mysql操作等,一直都没有将它们有机结合。最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScript和PHP,数据库用到了MySQL。麻雀虽小,五脏俱全。算是对这些知识的一次总结吧。

    2.源码

    工程包括5个php文件:

    index.php,负责首页展现;

    menu.php,负责前台的菜单实现;

    add.php,负责添加页面的实现;

    edit.php,负责编辑页面的实现;

    action.php,负责对增删查改操作的实现。

    index.php

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.png

    1

    2

    3

    4

    学生信息管理

    5

    6 functiondoDel(id) {7 if (confirm("确定要删除么?")) {8 window.location = 'action.php?action=del&id='+id;9 }10 }11

    12

    13

    14

    15 <?php16 include_once "menu.php";17 ?>

    18

    浏览学生信息

    19

    20

    21

    ID

    22

    姓名

    23

    性别

    24

    年龄

    25

    班级

    26

    操作

    27

    28 <?php29 //1.连接数据库

    30 try{31 $pdo = new PDO("mysql:host=localhost;dbname=test;", "root", "");32 } catch (PDOException $e) {33 die("数据库连接失败" . $e->getMessage());34 }35 //2.解决中文乱码问题

    36 $pdo->query("SET NAMES 'UTF8'");37 //3.执行sql语句,并实现解析和遍历

    38 $sql = "SELECT * FROM stu ";39 foreach ($pdo->query($sql) as $row) {40 echo "

    ";41 echo "{$row['id']}";42 echo "{$row['name']}";43 echo "{$row['sex']}";44 echo "{$row['age']}";45 echo "{$row['classid']}";46 echo "47 删除48 修改49 ";50 echo "";51 }52

    53 ?>

    54

    55

    56

    57

    58

    59

    展开全文
  • 这是一个用PHP和JavaScript编写的基于Web的简单开源软件。 这是专门为学校或教育组织编写的。 您可以轻松地将此系统安装在自己的服务器中。 如果发现任何错误或添加了新功能,请随时发送请求请求。 如果您有任何...
  • 然后我们需要创建一个路径为/stu/accept的Servlet用来接收浏览器发送来的查看学生信息的请求,其中/stu可以用${pageContext.page.contextPath}来代替,这样可以确保模块路径名改变的情况下正常运行 &

    功能

    • (1)添加学生信息,
    • (2)修改学生信息,
    • (3)删除学生信息,
    • (4)查询学生信息

    (1)(2)(3)都在(4)的基础上编写,通过查询学生信息的页面的按钮来进行跳转,

    前端代码(jsp页面)

    首页

    点击查看学生信息可以直接跳转到可以显示学生信息列表的页面
    然后我们需要创建一个路径为/stu/accept的Servlet用来接收浏览器发送来的查看学生信息的请求,其中/stu可以用${pageContext.page.contextPath}来代替,这样可以确保模块路径名改变的情况下正常运行

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
      欢迎进入学生管理系统
      <a href="${pageContext.request.contextPath}/accept">查看学生信息</a>
      </body>
    </html>
    
    显示学生信息列表

    ps:表格样式是别人弄的,哈哈
    在这里插入图片描述

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <!DOCTYPE html>
    <!-- 网页使用的语言 -->
    <html lang="zh-CN">
    <head>
        <!-- 指定字符集 -->
        <meta charset="utf-8">
        <!-- 使用Edge最新的浏览器的渲染方式 -->
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- viewport视口:网页可以根据设置的宽度自动进行适配,在浏览器的内部虚拟一个容器,容器的宽度与设备的宽度相同。
        width: 默认宽度与设备的宽度相同
        initial-scale: 初始的缩放比,为1:1 -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
        <title>用户信息管理系统</title>
    
        <!-- 1. 导入CSS的全局样式 -->
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <!-- 2. jQuery导入,建议使用1.9以上的版本 -->
        <script src="js/jquery-2.1.0.min.js"></script>
        <!-- 3. 导入bootstrap的js文件 -->
        <script src="js/bootstrap.min.js"></script>
        <style type="text/css">
            td, th {
                text-align: center;
            }
        </style>
    </head>
    <body>
    <div class="container">
        <h3 style="text-align: center">用户信息列表</h3>
        <table border="1" class="table table-bordered table-hover">
            <tr class="success">
                <th>编号</th>
                <th>姓名</th>
                <th>性别</th>
                <th>年龄</th>
                <th>籍贯</th>
                <th>QQ</th>
                <th>邮箱</th>
                <th>操作</th>
            </tr>
            <c:forEach items="${list}" var="ele">
                <tr>
                <!--属性名和getset方法里的要一样-->
                    <td>${ele.id}</td>
                    <td>${ele.name}</td>
                    <td>${ele.sex}</td>
                    <td>${ele.age}</td>
                    <td>${ele.address}</td>
                    <td>${ele.QQnumber}</td>
                    <td>${ele.email}</td>
                    <!--将要修改的学生id传入request域中,让系统后台知道要修改的学生的对象是哪个,并回显到修改页面-->
                    <td><a class="btn btn-default btn-sm" href="/stu/bcs?name=${ele.id}" >修改</a>&nbsp;
                        <a class="btn btn-default btn-sm" href="javascript:deletebyid(${ele.id})" >删除</a></td>
                </tr>
            </c:forEach>
            <tr>
                <td colspan="8" align="center"><a class="btn btn-primary" href="addstu.jsp">添加联系人</a></td>
            </tr>
            <!--收集域中的错误信息并显示出来,没有则不显示-->
            ${msg}
        </table>
    </div>
    <script>
        function deletebyid(id) {
        <!--弹窗询问-->
            if (confirm("确定删除该学生吗")) {
                location.href = "${pageContext.request.contextPath}/removestu?name="+id;
            }
        }
    </script>
    </body>
    </html>
    
    添加学生页面

    效果图
    在这里插入图片描述

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <!DOCTYPE html>
    <!-- 网页使用的语言 -->
    <html lang="zh-CN">
    <head>
        <!-- 指定字符集 -->
        <meta charset="utf-8">
        <!-- 使用Edge最新的浏览器的渲染方式 -->
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- viewport视口:网页可以根据设置的宽度自动进行适配,在浏览器的内部虚拟一个容器,容器的宽度与设备的宽度相同。
        width: 默认宽度与设备的宽度相同
        initial-scale: 初始的缩放比,为1:1 -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
        <title>添加用户</title>
    
        <!-- 1. 导入CSS的全局样式 -->
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <!-- 2. jQuery导入,建议使用1.9以上的版本 -->
        <script src="js/jquery-3.2.1.min.js"></script>
        <script>
            $(function () {
                $("#num").blur(function () {
                    $.ajax({
                        url: "${pageContext.request.contextPath}/stuname",
                        data: "num=" + $(this).val(),
                        success: function (resp) {
                        //若输入的学号在库中有重复的,则输入框会变红色,没有则是绿色
                            if (resp == 1) {
                                $("#num").removeAttr("style");
                                $("#num").css("border", "3px solid green");
                            } else {
                                $("#num").removeAttr("style");
                                $("#num").css("border", "3px solid red");
                            }
                        }
                    });
                });
            })
        </script>
        <!-- 3. 导入bootstrap的js文件 -->
    </head>
    <body>
    <div class="container">
        <center><h3>添加联系人页面</h3></center>
        <form action="/stu/addstuser" method="post">
            <div class="form-group">
                <input type="hidden" class="form-control" id="do" name="do" value="addstudent" readonly>
            </div>
            <div class="form-group">
                <label for="num">学号:</label>
                <input type="text" class="form-control" id="num" name="num" placeholder="请输入学号">
            </div>
            <div class="form-group">
                <label for="name">姓名:</label>
                <input type="text" class="form-control" id="name" name="name" placeholder="请输入姓名">
            </div>
    
            <div class="form-group">
                <label>性别:</label>
                <input type="radio" name="sex" id="sex_man" value="男" checked="checked"/><label for="sex_man"></label>
                <input type="radio" name="sex" id="sex_woman" value="女"/><label for="sex_woman"></label>
            </div>
    
            <div class="form-group">
                <label for="age">年龄:</label>
                <input type="text" class="form-control" id="age" name="age" placeholder="请输入年龄">
            </div>
    
            <div class="form-group">
                <label for="address">籍贯:</label>
                <select name="address" class="form-control" id="jiguan">
                    <option value="广东">广东</option>
                    <option value="广西">广西</option>
                    <option value="湖南">湖南</option>
                </select>
            </div>
    
            <div class="form-group">
                <label for="qq">QQ:</label>
                <input type="text" class="form-control" name="qq" placeholder="请输入QQ号码"/>
            </div>
    
            <div class="form-group">
                <label for="email">Email:</label>
                <input type="text" class="form-control" name="email" placeholder="请输入邮箱地址"/>
            </div>
    
            <div class="form-group" style="text-align: center">
                <input class="btn btn-primary" type="submit" value="提交"/>
                <input class="btn btn-default" type="reset" value="重置"/>
                <input class="btn btn-default" type="button" onclick="javascript:goback()" value="返回"/>
            </div>
            ${msg}
        </form>
    </div>
    <script>
        function goback() {
            location.href="${pageContext.request.contextPath}/accept"
        }
    </script>
    </body>
    </html>
    
    修改学生信息页面

    在这里插入图片描述

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <!DOCTYPE html>
    <!-- 网页使用的语言 -->
    <html lang="zh-CN">
    <head>
        <!-- 指定字符集 -->
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>修改用户</title>
    
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <script src="js/jquery-2.1.0.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
    
    </head>
    <body>
    <div class="container" style="width: 400px;">
        <h3 style="text-align: center;">修改联系人</h3>
        <form action="/stu/change" method="post">
            <div class="form-group">
                <label for="name">姓名:</label>
                <input type="text" class="form-control" id="name" name="name"  readonly="readonly" placeholder="请输入姓名" value="${student.name}"/>
            </div>
    
            <div class="form-group">
                <label>性别:</label>
                <input type="radio" name="sex" value="男" ${student.sex == "男"?"checked":""}/><input type="radio" name="sex" value="女" ${student.sex == "女"?"checked":""}/></div>
    
            <div class="form-group">
                <label for="age">年龄:</label>
                <input type="text" class="form-control" id="age"  name="age" placeholder="请输入年龄" value="${student.age}"/>
            </div>
    
            <div class="form-group">
                <label for="address">籍贯:</label>
                <select id = "address"name="address" class="form-control" >
                <!--想多加可以复制粘贴改名即可-->
                    <option value="广东">广东</option>
                    <option value="广西">广西</option>
                    <option value="湖南">湖南</option>
                </select>
            </div>
    
    
            <div class="form-group">
                <label for="qq">QQ:</label>
                <input  id = "qq" type="text" class="form-control" name="qq" placeholder="请输入QQ号码" value="${student.QQnumber}"/>
            </div>
    
            <div class="form-group">
                <label for="email">Email:</label>
                <input id = "email"type="text" class="form-control" name="email" placeholder="请输入邮箱地址" value="${student.email}"/>
            </div>
    
            <div class="form-group" style="text-align: center">
                <input class="btn btn-primary" type="submit" value="提交" />
                <input class="btn btn-default" type="reset" value="重置" />
                <input class="btn btn-default" type="button" onclick="javascript:goback()" value="返回"/>
            </div>
        </form>
        ${msg}
    </div>
    <script>
        <!--将籍贯的下拉栏进行回显-->
        document.querySelectorAll("[value='${student.address}']")[0].selected=true;
        function goback() {
            location.href="${pageContext.request.contextPath}/accept"
        }
    </script>
    </body>
    </html>
    

    首先我们先定义一个学生类,7个属性,有无参构造,getter&setter还有tostring()方法:

    学生类_java
    public class Student {
        /*<>编号<姓名<>性别<>年龄<>籍贯<>QQ<>邮箱<>操作<>*/
        String id;
        String name;
        String sex;
        String age;
        String address;
        String QQnumber;
        String email;
    
        public Student(String id, String name, String sex, String age, String address, String QQnumber, String email) {
            this.id = id;
            this.name = name;
            this.sex = sex;
            this.age = age;
            this.address = address;
            this.QQnumber = QQnumber;
            this.email = email;
        }
    
        public Student() {
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", sex='" + sex + '\'' +
                    ", age=" + age +
                    ", address='" + address + '\'' +
                    ", QQnumber='" + QQnumber + '\'' +
                    ", email='" + email + '\'' +
                    '}';
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        public void setAge(String age) {
            this.age = age;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    
        public void setQQnumber(String QQnumber) {
            this.QQnumber = QQnumber;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        public String getId() {
            return id;
        }
    
        public String getName() {
            return name;
        }
    
        public String getSex() {
            return sex;
        }
    
        public String getAge() {
            return age;
        }
    
        public String getAddress() {
            return address;
        }
    
        public String getQQnumber() {
            return QQnumber;
        }
    
        public String getEmail() {
            return email;
        }
    }
    
    过滤类(解决全局的中文乱码问题)

    之后在编写其他程序之前,需要保证其他的程序在运行时不会检测到中文乱码,所以事先创建一个过滤类,将编码都转为"utf-8":

    import javax.servlet.*;
    import javax.servlet.annotation.WebFilter;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    @WebFilter(filterName = "CharFilter", value = "/*", dispatcherTypes = {DispatcherType.FORWARD, DispatcherType.REQUEST})
    public class CharFilter implements Filter {
        public void destroy() {
        }
    
        public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
            HttpServletRequest request = (HttpServletRequest) req;
            HttpServletResponse response = (HttpServletResponse) resp;
            if ("post".equalsIgnoreCase(request.getMethod())) {
                request.setCharacterEncoding("utf-8");
            }
            chain.doFilter(req, resp);
        }
        public void init(FilterConfig config) throws ServletException {
        }
    }
    
    import com.itheima.stu_system.domain.Student;
    
    import java.io.*;
    import java.util.ArrayList;
    import java.util.List;
    
    public class StudentDao {
        
        public void writeAll(List<Student> studentList) {
    
            try {
                BufferedWriter bw = new BufferedWriter(new FileWriter("H:\\JAVA_WORD\\Web_newclass\\student_system\\students.txt"));
                //遍历集合,得到每一个学生对象
    
                for (Student student : studentList) {
                    //把学生对象的数据拼接成指定格式的字符串
                    String stu_text = student.getId()+","+student.getName()+","+student.getSex()+","+student.getAge()+","+student.getAddress()+","+student.getQQnumber()+","+student.getEmail();
                    //调用字符缓冲输出流对象的方法写数据
                    bw.write(stu_text);
                    bw.newLine();
                    bw.flush();
                }
                //释放资源
                bw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        public List<Student> findAll() {
            List<Student> userList =new ArrayList<>();
            try {
            	//因为暂时还没学那种可变的路径的写法,所以用绝对路径
            	File file = new File("H:\\JAVA_WORD\\Web_newclass\\student_system\\students.txt");
                if (!file.exists()) {
                    file.createNewFile();
                }
                BufferedReader br = new BufferedReader(new FileReader("H:\\JAVA_WORD\\Web_newclass\\student_system\\students.txt"));
                String readLine ;
                //读取文件生成学生对象
                while ((readLine=br.readLine()) != null) {
                    String[] split = readLine.split(",");
                    Student student = new Student();
                    student.setId(split[0]);
                    student.setName(split[1]);
                    student.setSex(split[2]);
                    student.setAge(split[3]);
                    student.setAddress(split[4]);
                    student.setQQnumber(split[5]);
                    student.setEmail(split[6]);
                    //将学生对象加入到集合中
                    userList.add(student);
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }
            return userList;
        }
    }
    
    ServiceServlet

    做增删改查操作的地方,拿数据库的信息和前面传入的信息进行操作,之后数据库的返回数据库,传入的信息处理后返回一个返回值

    import com.itheima.stu_system.domain.Student;
    
    import java.util.List;
    
    public class ServiceServlet {
        StudentDao studentDao = new StudentDao();
        
        /*
            查找所有学生信息
        */
        public List<Student> findAll() {
    
            List<Student> studentList=studentDao.findAll();
            return studentList;
        }
        
        /*
            添加学生信息
        */
        public List<Student> addStudent(Student student) {
            List<Student> studentList = studentDao.findAll();
            studentList.add(student);
            studentDao.writeAll(studentList);
            return studentList;
        }
    
        /*
            删除学生信息
        */
        public List<Student> remove(String id) {
            StudentDao studentDao = new StudentDao();
            List<Student> studentList = studentDao.findAll();
            for (Student student : studentList) {
                if (student.getId().equals(id)) {
                    studentList.remove(student);
                    break;
                }
            }
            studentDao.writeAll(studentList);
            return studentList;
        }
        
        /*
            修改学生信息
        */
        public List<Student> changeStudent(Student student) {
            StudentDao studentDao = new StudentDao();
            List<Student> students = studentDao.findAll();
            String id = student.getId();
            
            for (int i = 0; i < students.size(); i++) {
                Student stu = students.get(i);
                if (stu.getId().equals(id)) {
                    student.setName(stu.getName());
                    student.setId(id);
                    students.set(i, student);
                    break;
                }
            }
            studentDao.writeAll(students);
            return students;
        }
        
        /*
            查重
        */
        
        public boolean judge(String id) {
            StudentDao studentDao = new StudentDao();
            List<Student> students = studentDao.findAll();
            for (Student student : students) {
                if (student.getId().equals(id)) {
                    return false;
                }
            }
            return true;
        }
        
        /*
            根据查找对应学生对象
        */
        public Student getStudent(String id) {
            StudentDao studentDao = new StudentDao();
            List<Student> all = studentDao.findAll();
            for (Student student : all) {
                if (id.equals(student.getId())) {
                    return student;
                }
            }
            return new Student();
        }
    }
    

    以上是针对全局的

    accept页面:

    在这里可以事先在idea设置里设置一下doGet和doPost方法

    import com.itheima.stu_system.domain.Student;
    import com.itheima.stu_system.utils.ServiceServlet;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.io.IOException;
    import java.util.List;
    
    public class AcceptServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //接收到查看学生信息的请求
            //创建service对应类的对象
            ServiceServlet serviceServlet = new ServiceServlet();
            //获得session域的对象
            HttpSession session = request.getSession();
            //调用service对应类的有查找功能的方法
            List<Student> studentList = serviceServlet.findAll();
            //将上一步调用方法得到的学生列表的集合传入session域中
            session.setAttribute("list", studentList);
            //之后重定向回学生信息列表的页面
            response.sendRedirect("http://localhost:2333${pageContext.request.contextPath}/studentlist.jsp");
        }
    }
    
    添加学生信息

    首先先要从request域中获取到学生的各项信息,之后进行判断信息是否合规,若不合规要弹回添加页面并提示用户,合规的话继续进行赋值,并在赋值后将学生对象传给serviceServlet进行添加处理,得到一个添加后的集合对象,将该对象传入域中,最后跳回学生列表页面

    查重

    在鼠标移开输入学号一栏时进行判断数据库中是否有一样的,之后传给添加学生的jsp页面

    import com.itheima.stu_system.utils.ServiceServlet;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.xml.ws.Service;
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    
    public class DetectionServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
        /*
            查重复id
        */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            try {
                String num = request.getParameter("num");
                ServiceServlet serviceServlet = new ServiceServlet();
                Boolean flag = serviceServlet.judge(num);
                response.getWriter().print(flag?1:0);
    
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
    }
    
    添加学生信息
    import com.itheima.stu_system.domain.Student;
    import com.itheima.stu_system.utils.ServiceServlet;
    import com.itheima.stu_system.utils.StudentDao;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.io.IOException;
    import java.util.List;
    /*
        添加学生信息
    */
    public class AddStudentServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            
            Student student = new Student();
            /*从request域中获取id之后,传入serviServlet中进行查重,若数据库中已有改id则返回页面提示用户该id不可用*/
            String id = request.getParameter("num");
            ServiceServlet serviceServlet = new ServiceServlet();
            boolean flag = serviceServlet.judge(id);
            if (!flag) {
                request.setAttribute("msg", "该学号已存在,请确认后重试");
                request.getRequestDispatcher("/addstu.jsp").forward(request, response);
            } else {
            //若不重复,从request域中获取各种name的value值,并将value值设置给学生对象各变量值
                student.setId(id);
                student.setName(request.getParameter("name"));
                student.setSex(request.getParameter("sex"));
                //判断年龄的数字或用户输入的格式是否正确,若不正确,则弹回原页面
                if (!(Integer.parseInt(request.getParameter("age")) < 150 && Integer.parseInt(request.getParameter("age")) > 0)) {
                    request.setAttribute("msg", "请输入正确的年龄(阿拉伯数字)");
                    request.getRequestDispatcher("/addstu.jsp").forward(request,response);
                } else {
                //若正确,继续对学生对象进行赋值                student.setAge(request.getParameter("age"));
                    student.setAddress(request.getParameter("address"));
                    student.setQQnumber(request.getParameter("qq"));
                    student.setEmail(request.getParameter("email"));
    
                    //将封装好的学生对象通过方法交给ServiceServlet处理,返回一个进行添加操作后的学生集合
                    List<Student> studentList_add = serviceServlet.addStudent(student);
                    //获取session域的对象
                    HttpSession session = request.getSession();
                    //将返回的进行添加操作后的学生集合对象添加到session域中并返回(转发回)学生列表页面
                    session.setAttribute("list", studentList_add);
                    response.sendRedirect("http://localhost:2333/stu/studentlist.jsp");
                }
            }
        }
    }
    
    
    修改学生信息
    回显
    import com.itheima.stu_system.domain.Student;
    import com.itheima.stu_system.utils.ServiceServlet;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.io.IOException;
    /*
        回显修改学生的信息
    */
    public class BeforeChangeServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //从request域中获取到用户想要修改的学生的id
            String id = request.getParameter("name");
            ServiceServlet serviceServlet = new ServiceServlet();
            //利用getStudent方法拿到数据库中的id对应的学生对象
            Student student =serviceServlet.getStudent(id);
            //获取context域的对象
            ServletContext servletContext = request.getServletContext();
            //将该学生对象的id传入context域中
            servletContext.setAttribute("changeid",id);
            //将student对象传入context域中
            servletContext.setAttribute("student",student);
            //重定向到修改页面(回显)
            response.sendRedirect("http://localhost:2333/stu/update.jsp");
        }
    }
    
    修改学生信息
    import com.itheima.stu_system.domain.Student;
    import com.itheima.stu_system.utils.ServiceServlet;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.io.IOException;
    import java.util.List;
    
    /*
        修改学生信息
    */
    public class ChangeServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            
            Student student = new Student();
            //获取context域对象
            ServletContext servletContext = request.getServletContext();
            //从context域中获取学生id
            String changeid = (String) servletContext.getAttribute("changeid");
            
            //对学生对象赋值
            student.setId(changeid);
            student.setName("待添加");
            student.setSex(request.getParameter("sex"));
            if (!(Integer.parseInt(request.getParameter("age")) < 150 && Integer.parseInt(request.getParameter("age")) > 0)) {
                request.setAttribute("msg", "请输入正确的年龄(阿拉伯数字)");
                request.getRequestDispatcher("/update.jsp");
            }
            student.setAge(request.getParameter("age"));
            student.setAddress(request.getParameter("address"));
            student.setQQnumber(request.getParameter("qq"));
            student.setEmail(request.getParameter("email"));
    
            
            ServiceServlet serviceServlet = new ServiceServlet();
            //交给serviceServlet处理后得到一个修改后的集合对象
            List<Student> studentList_change = serviceServlet.changeStudent(student);
            HttpSession session = request.getSession();
            //将集合对象传入session域中
            session.setAttribute("list", studentList_change);
            //重定向回学生列表页面
            response.sendRedirect("http://localhost:2333/stu/studentlist.jsp");
        }
    }
    
    删除学生信息
    import com.itheima.stu_system.domain.Student;
    import com.itheima.stu_system.utils.ServiceServlet;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.io.IOException;
    import java.util.List;
    /*
        删除学生信息
    */
    
    public class RemoveStudentsServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String id = request.getParameter("name");
            ServiceServlet serviceServlet = new ServiceServlet();
            //调用删除方法,传入id
            List<Student> studentList = serviceServlet.remove(id);
    
            HttpSession session = request.getSession();
            //向域中传入删除信息后的集合,并转回学生列表页面
            session.setAttribute("list",studentList);
            request.getRequestDispatcher("studentlist.jsp").forward(request,response);
        }
    }
    
    展开全文
  • 上次写了一个学生成功管理系统,有个老铁说不会运行,我答应给他写一个项目,并且附上运行的文档,于是这几天就利用摸鱼时间、晚上休息时间、中午午休时间写了这个宿舍管理系统,从表的设计和代码的编写都是自己弄的...

    引言:

    上次写了一个学生成绩管理系统,有个老铁说不会运行,我答应给他写一个项目,并且附上运行的文档,于是这几天就利用摸鱼时间、晚上休息时间、中午午休时间写了这个宿舍管理系统,表的设计、代码编写都是自己弄的,数据库用mysql,web容器用 tomcat,开发工具用eclipse\myeclipse,java方面入口都是用servlet,数据库连接用c3p0,总之都是用比较基础的东西来写的,简单易懂,对于正在做毕业设计和刚入门时间不长的兄弟们来说,应该是比较好的学习代码了,希望对大家有所帮助。

    一张界面图:

    角色介绍

    1.超级管理员 

    超级管理员是权限最大的角色,拥有系统所有的权限。

    2.宿舍管理员

    权限:学生管理、宿舍管理、考勤管理、修改密码。

    注意:宿舍管理员所管理的这几个模块,都是超级管理员给他指定权限范围,他才能操作,比如:admin被分配了管理1号楼和2号楼,那么1、2号楼的宿舍他可以管理,添加的学生也只能安排在这两个楼里面,考勤也只能操作属于这两个楼的。

    3.学生

    学生是权限最小的角色,仅有修改密码、考勤管理权限(仅仅查询)。

     

    表结构介绍

    用户表

    //用户表
    CREATE TABLE `user` (
      `id` int(11) NOT NULL auto_increment COMMENT '主键',
      `name` varchar(20) not NULL COMMENT '名字',
      `password` varchar(20) not NULL COMMENT '密码',
      `no` varchar(20) default NULL COMMENT '账号-学生一般用学号',
      `dorm_no` varchar(20) default NULL COMMENT '宿舍编号',
      `build_id` int(11) default NULL COMMENT '宿舍楼id',
      `sex` varchar(20) default NULL COMMENT '性别',
      `phone` varchar(20) default NULL COMMENT '电话',
      `role_id` int(11) default NULL COMMENT '角色 0超级管理员,1管理员,2学生',
      `creator` int(11) default NULL COMMENT '创建人id',
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    宿舍楼表

    //宿舍楼
    CREATE TABLE `build` (
      `id` int(11) NOT NULL auto_increment COMMENT '主键',
      `name` varchar(20) NOT NULL COMMENT '名字',
      `remark` varchar(50) default NULL COMMENT '备注',
      `isValid` varchar(4) default 'Y' COMMENT '是否有效,Y有效,其他无效',
      PRIMARY KEY  (`id`)
    )  ENGINE=InnoDB DEFAULT CHARSET=utf8;

    宿舍楼与管理员关系表(用来指定 宿舍管理员所拥有的宿舍楼权限)

    //宿舍楼与管理员关系表
    CREATE TABLE `manage_build_rel` (
      `id` int(11) NOT NULL auto_increment COMMENT '主键',
      `user_id` int(11) default NULL COMMENT '管理员id',
      `build_id` int(11) default NULL COMMENT '宿舍楼id',
      PRIMARY KEY  (`id`)
    )  ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    宿舍表

    //宿舍
    CREATE TABLE `dorm` (
      `id` int(11) NOT NULL auto_increment COMMENT '主键',
      `name` varchar(20) NOT NULL COMMENT '名字',
      `remark` varchar(50) default NULL COMMENT '备注',
      `build_id` int(11) default NULL COMMENT '宿舍楼id',
      `max_num` int(11) default 0 COMMENT '最大人数',
      PRIMARY KEY  (`id`)
    )  ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    考勤表

    // 考勤表
    CREATE TABLE `record` (
     `id` int(11) NOT NULL auto_increment COMMENT '主键',
      `student_id` int(11) default NULL COMMENT '学生id',
      `date` date default NULL COMMENT '考勤日期',
      `record_type` varchar(2) default '1' COMMENT '考勤类型',
      `remark` varchar(50) default NULL COMMENT '备注',
      PRIMARY KEY  (`id`)
    )  ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    功能菜单表

    CREATE TABLE `menu` (
      `id` int(11) NOT NULL,
      `menuCode` varchar(8) default NULL COMMENT '菜单编码',
      `menuName` varchar(16) default NULL COMMENT '菜单名字',
      `menuLevel` varchar(2) default NULL COMMENT '菜单级别',
      `menuParentCode` varchar(8) default NULL COMMENT '菜单的父code',
      `menuClick` varchar(16) default NULL COMMENT '点击触发的函数',
      `menuRight` varchar(8) default NULL COMMENT '权限2表示学生,1表示管理员,0超级管理员,可以用逗号组合使用',
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    菜单表和用户表需初始配置的数据脚本(用户表只插入超级管理员的即可)

    INSERT INTO `menu` VALUES ('1', '001', '宿舍管理员管理', '1', null, 'adminManage', '0');
    INSERT INTO `menu` VALUES ('2', '002', '学生管理', '1', null, 'studentManage', '0,1');
    INSERT INTO `menu` VALUES ('3', '003', '宿舍楼管理', '1', null, 'buildManage', '0');
    INSERT INTO `menu` VALUES ('4', '004', '宿舍管理', '1', null, 'dormManage', '0,1');
    INSERT INTO `menu` VALUES ('5', '005', '考勤管理', '1', null, 'recordManage', '0,1,2');
    INSERT INTO `menu` VALUES ('6', '006', '修改密码', '1', null, 'modPwd', '0,1,2');
    
    INSERT INTO `user` VALUES ('1', '超级管理员1', '123456', 'sa', null, null, '1', '123445', '0', null);

     

    系统模块介绍

    宿舍管理员管理

    超级管理员才有的权限,可以增加宿舍管理员,并且分配宿舍楼,让其对指定的宿舍楼有对应的操作权限,也可以修改、删除。

    学生管理

    超级管理员和宿舍管理员均可以操作,区别是超级管理操作所有,而宿舍管理员只能查询、维护 自己所管理的宿舍楼里面的学生。

    宿舍楼管理

    超过管理员才有的权限

    宿舍管理

    超级管理员和宿舍管理员均可以操作,区别是超级管理操作所有,而宿舍管理员只能维护自己管理宿舍楼的房间。

    考勤管理

    3个角色都有权限,但学生只有查询权限,没有维护权限。

    修改密码

    代码的话是没办法讲了,内容有点多,有兴趣的自己去下载看看咯。

    可能存在的问题

    1.表设计可能不是特别完善、并且有些功能没加,离校太久有点想不起来了。

    2.难免会有些bug吧,不过也不是上线用的,参考学习的话我觉得是足够了。

    3.文档我是不会写的,哈哈,运行文档写一个吧,放到源码里面。

     

    看到这里的大佬,动动发财的小手 点赞 + 回复 + 收藏 ,能关注一波就更好了。

    源码下载

    方式1:完整代码下载、需少量积分

    方式2:关注下方公众号,回复 【 sushe 】 下载代码

     更多源码

    ♥ 学生成绩管理系统

    展开全文
  • 基于asp.net的学生信息管理系统Web

    千次阅读 多人点赞 2020-08-09 09:56:09
    需要指出的是,用Visual Studio 2019编写基于asp.net的Web程序时,页面布置并不像开发基于.net的Windows桌面应用程序那样方便和简单,若想要一个美观的布局,就需要用到css以及控件table等工具用心布置,在这个项目...

    新建项目

    如图:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在最后选择时选中空,然后在右侧添加文件夹和核心引用下勾选Web窗体,点击创建即可。
    在这里插入图片描述
    进入项目之后,右键单击项目名,点击新建项,新建一个Web窗体,我们就可以在其中布置页面、编写代码啦!
    需要指出的是,用Visual Studio 2019编写基于asp.net的Web程序时,页面布置并不像开发基于.net的Windows桌面应用程序那样方便和简单,若想要一个美观的布局,就需要用到css以及控件table等工具用心布置,在这个项目中由于时间关系我只美化了登录界面。

    控件使用与事件添加

    基本控件的使用与开发Windows桌面应用程序时类似,可参考我的文章:
    基于.Net框架的学生信息管理系统(Windows桌面应用程序)
    (在此项目中用到的数据库表也和这篇文章相同)

    以登录界面为例:
    在这里插入图片描述
    我设计了一个样式,除此之外的其他部分主要控件就是Label、Textbox、Button和CheckBox。
    对这一界面的事件处理代码如下,其中涉及到用Cookie记住用户名和密码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using MySql.Data.MySqlClient;
    
    namespace WebStuMag
    {
        public partial class Login : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
            private void tbUser_TextChanged(object sender, EventArgs e)
            {
                
            }
            protected void log_Click(object sender, EventArgs e)
            {
                if (Request.Cookies["username"].Value.ToString() == tbUser.Text && Request.Cookies["password"] != null)
                {
                    tbPassword.Text = Request.Cookies["password"].Value.ToString();
                }
                MySqlConnection connection = new MySqlConnection("Database=student;Data Source=127.0.0.1;User Id = root; Password = li; pooling = false; CharSet = utf8; port = 3306");
                try
                {
                    connection.Open();
                    String sql = "select password from adacount where name='" + tbUser.Text + "'";
                    MySqlCommand command = new MySqlCommand(sql, connection);
                    MySqlDataReader reader = command.ExecuteReader();
                    if (reader.Read())
                    {
                        if (reader.GetString(0) == tbPassword.Text)
                        {
                            Session.Add("login", "Yes");
                            Session.Add("username", tbUser.Text);
                            if (CheckBox1.Checked == true)//判断登录名和密码是否正确和是否选择了记住用户名和密码的复选框
                            {
                                //判断客户端浏览器是否存在该Cookie 存在就先清除
    
                                if (Request.Cookies["username"] != null && Request.Cookies["password"] != null)
                                {
                                    Response.Cookies["username"].Expires = System.DateTime.Now.AddSeconds(-1);//Expires过期时间
                                    Response.Cookies["password"].Expires = System.DateTime.Now.AddSeconds(-1);
                                }
                                else
                                {
                                    //向客户端浏览器加入Cookie
                                    HttpCookie UserName = new HttpCookie("username");
                                    UserName.Expires = System.DateTime.Now.AddDays(7);
                                    UserName.Value = tbUser.Text;
                                    HttpCookie Password = new HttpCookie("password");
                                    Password.Expires = System.DateTime.Now.AddDays(7);
                                    Password.Value = tbPassword.Text;
                                    Response.Cookies.Add(hcUserName);
                                    Response.Cookies.Add(hcPassword);
                                }
                            }
                            Response.Redirect("MainPage.aspx");
                        }
                        else
                        {
                            Session.Add("login", "No");
                            Response.Write("<script>alert('用户名或密码错误!')</script>");
                        }
                    }
                    else
                    {
                        Session.Add("login", "No");
                        Response.Write("<script>alert('用户名不存在!')</script>");
                    }
    
    
                }
                catch (MySqlException ee)
                {
                    Response.Write("<script>alert(ee.Message)</script>");
                }
                finally
                {
                    connection.Close();
                }
        }
        }
    }
    

    数据处理与显示

    数据的处理和显示也与Windows桌面应用程序有所不同,asp.net没有提供像DataGridView一样的强大的控件,它提供的是GridView这个控件,需要我们手动添加操作:
    在这里插入图片描述
    加入GridView之后,可通过点击其右上角的小三角打开字段对话框:
    在这里插入图片描述
    在此可添加列,注意去掉“自动生成字段”勾选。我添加的是5个BoundField用于显示和1个CommandField用于操作。
    在这里插入图片描述
    添加完后,如上图,可点击添加的字段,在右侧“数据”一栏下的DataField内绑定表内字段,我的数据库的表内保存编号的一列叫“id”,因此我把id填到里面。
    之后,就是在对应的.aspx.cs下添加代码了,在此界面我的代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using MySql.Data.MySqlClient;
    using System.Data;
    
    namespace WebStuMag
    {
        public partial class QueStuBas : System.Web.UI.Page
        {
            DatabaseEx.DD dd = new DatabaseEx.DD();
            static string sql = "";
            static string sqlWhere = "1=1 ";
            protected void Page_Load(object sender, EventArgs e)
            {
                if (Session["login"] == null || Session["login"].ToString() != "Yes")
                {
                    Response.Redirect("JupBack.aspx");
                }
            }
            protected void btQue_Click(object sender, EventArgs e)
            {
                sql = "select id,name,birthday,telnum,gender from bsdata ";
                sqlWhere = "1=1 ";
                if (tbName.Text.Trim() != "") sqlWhere = sqlWhere + $"and name like '%{tbName.Text.Trim()}%'";
                if (tbGender.Text.Trim() != "") sqlWhere = sqlWhere + $"and gender='{tbGender.Text.Trim()}'";
                if (sqlWhere.Length > 0) sql = sql + "where " + sqlWhere;
                bind(sql);
    
            }
            public void bind(string sqlstr)
            {
                MySqlDataAdapter myda = new MySqlDataAdapter(sqlstr, dd.mySqlCon);
                DataSet myds = new DataSet();
    
                myda.Fill(myds, "bsdata");
                GridView1.DataSource = myds;
                GridView1.DataKeyNames = new string[] { "id" };//主键
                GridView1.DataBind();
    
            }
    
            protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
            {
                GridView1.EditIndex = -1; 
                bind(sql);
            }
    
            protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
            {
                int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
                String sqlTemp = "delete from bsdata where id='" + id + "'";
    
                MySqlCommand com = new MySqlCommand(sqlTemp, dd.mySqlCon);
                com.ExecuteNonQuery();
                bind(sql);
            }
    
            protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
            {
                GridView1.EditIndex = e.NewEditIndex;
                bind(sql);
            }
    
            protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
            {
                String name = (GridView1.Rows[e.RowIndex].Cells[1].Controls[0] as TextBox).Text.ToString();
                String birthday = (GridView1.Rows[e.RowIndex].Cells[2].Controls[0] as TextBox).Text.ToString();
                String telnum = (GridView1.Rows[e.RowIndex].Cells[3].Controls[0] as TextBox).Text.ToString();
                String gender = (GridView1.Rows[e.RowIndex].Cells[4].Controls[0] as TextBox).Text.ToString();
                int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
    
                String sqlTemp = "update bsdata set name='" + name + "',birthday='" + birthday + "',telnum='" + telnum + "',gender='" + gender + "' where id='" + id + "'";
    
                MySqlCommand com = new MySqlCommand(sqlTemp, dd.mySqlCon);
                com.ExecuteNonQuery();
                GridView1.EditIndex = -1;
                bind(sql);
            }
        }
    }
    

    其中,DD是封装好的类文件,用于简化数据库有关操作:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using MySql.Data.MySqlClient;
    
    namespace DatabaseEx
    {
        class DD
        {
            public MySqlConnection mySqlCon;
            public Dao()
            {
                String mysqlStr = "Database=student;Data Source=127.0.0.1;User Id=root;Password=li20010309;pooling=false;CharSet=utf8;port=3306";
                this.mySqlCon = new MySqlConnection(mysqlStr);
                this.mySqlCon.Open();
            }
            
            public MySqlConnection getMySqlCon()
            {
                return mySqlCon;
            }
    
            // 建立执行命令语句对象
            public static MySqlCommand getSqlCommand(String sql, MySqlConnection mysql)
            {
                MySqlCommand mySqlCommand = new MySqlCommand(sql, mysql);
                return mySqlCommand;
            }
    }
    

    添加好连接数据库、取数据、处理数据、填充表格等代码后,就可以运行程序了。

    利用Session记录登录状态并实现跳转页面

    因为我们编写的界面是互相独立的,如果用户处于未登录状态即访问学生信息管理界面,将会出现一些问题,因此我们需要检测用户的登录状态,若未登录且试图访问其他界面,我们会直接将其强制跳转到登录界面。
    事实上,在前面的登录界面代码中,我已添加了Session记录(若没没注意,可回去查看),下面,我们只需新建一个跳转界面,检测session中是否有内容即可:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JupBack.aspx.cs" Inherits="WebStuMag.JupBack" %>
    
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>跳转页面</title>
        <script type="text/javascript">
            var i = 5;//设置跳转的时间
            window.onload = function page_cg() {
                document.getElementById("time").innerText = i;
                i--;
                if (i == 0) {
                    window.location.href ='login.aspx';  //跳转到指定页面
                }
                setTimeout(page_cg, 1000);
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <br />
                  您未登录,5秒后自动跳转到登录页面<a href="login.aspx"></a>...还剩<span id="time" style="font-weight: bold; color: red"></span>秒!
                <br />
            </div>
        </form>
    </body>
    </html>
    
    
    

    未登录时跳转界面显示如下:
    在这里插入图片描述

    这样,一个基本的开发步骤差不多完成了,其他界面与之前提到的相似。但若想开发更高级的功能和更美观的界面,由于本人水平有限,暂且做不到,读者可以继续探索。

    下面附几张部分界面的运行截图:
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 这是一个比较完善的毕业设计管理信息系统,采用J2EE语言和MYSQL数据库编写,里面包括源代码、数据库、等所需材料
  • 文件名称: jsp下载 收藏√ [5 4 3 2 1]开发工具: HTML文件大小: 4609 KB上传时间: 2013-04-25下载次数: 8提 供 者: 谢超群详细说明:这是一个完整的在线作业管理系统。用html语言来编写,里面有学生基本情况,教师...
  • 2、实验内容和要求开发一个学生管理系统,完成学生信息的查看、增加、删除和修改等功能。 对于客户端增加和修改信息页面,要使用 javascript 进行必要的数据的非空验证。 自行添加一些 css,使得页面...
  • ​ 在学校做的最多的就是xx管理系统,例如学生管理系统,要求可以在网页上显示学生信息,查询学生信息等,也就是要实现一系列的基本增删改查。 解决方案: ​ 方案一.从0到1,从头开始自己搭建一个java web的框架...
  • PAGE PAGE 36 WEB数据库技术与应用复习大纲及课后习题 P123 6.15 建立一个Access数据库DB1和数据表Student,它包含的字段如下表所示: 字段名 数据类型 说明 Stno 文本 学号 Stname 文本 姓名 Sex 文本 性别 Age 数字 ...
  • WEB学生成绩管理

    2014-06-12 13:44:38
    1,WEB学生成绩管理系统; 2,至少实现一个数据表的CRUD操作、支持综合查询; 二. 设计思路 在项目中编写Defaluct.aspx,编辑界面,添加数据库,实现数据的添加,查询,删除,修改功能。 核心代码: Default...
  • Java图书管理系统,jsp+Servlet利用mvc...这是一个学生学习开发java web的源码(代码编写不易,1分资源不过分),里面是jsp+Servlet利用mvc模式写的一个后台图书管理系统,里面有数据库sql,直接添加就可以。 J2EE开发
  • 文章来源:淘论文网 发布者:毕业设计浏览量:本毕业设计所描述的web学生成绩管理系统是采用php作为网络编程框架,Mysql作为数据库编写一个B/S模式的系统。系统主要实现了:批量注册;用户管理;上课提问记录;考勤...
  • 设计学生学籍管理系统

    热门讨论 2009-07-05 18:28:22
    对于学生的学籍管理工作更是落后,可以说目前的学校对于学生的学籍管理都是进行手工的操作,这样的操作对于学生的管理非常不便,因此,考虑到这种情况,迫切需要开发一个学籍管理系统来进行这一项工作。 学生的学籍...
  • 这是一个学生学习开发java web的源码(代码编写不易,1分资源不过分),里面是jsp+Servlet利用mvc模式写的一个后台图书管理系统,里面有数据库sql,直接添加就可以。
  • 学生档案管理系统asp+sql

    热门讨论 2010-01-26 16:27:07
    《数动学生档案管理系统》 1.引言 自学电脑已经三年了,总希望能派上用处,前段时间看见学校用Excel管理学生档案于是想在网上下载一个档案管理软件,却发现是付费软件,后来咨询档案管理的老师才知道免费的软件功能...
  • 这是一个基于java web学生信息管理系统,功能齐全,代码编写易懂,有注释,很适合毕业设计的学生用。
  • ssm学生信息管理.zip

    2020-05-13 15:02:43
    设计一个简单的学生信息管理系统,要求使用SSM框架技术整合实现,用户登录后能够通过Web页面添加、删除、修改和查询学生信息。数据库的名称为“db_你的名字首字母组合”(如“db_gbl”),建表的SQL语句为: CREATE ...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 205
精华内容 82
关键字:

web编写一个学生管理系统