随笔 - 352  文章 - 0  评论 - 3  阅读 - 63340

学生选课系统--管理员功能实现

学生选课系统--管理员功能实现

笔记:

学生选课系统笔记1 - yuanse - 博客园 (cnblogs.com)

学生选课系统--管理员--修改信息功能 - yuanse - 博客园 (cnblogs.com)

学生选课系统--管理员--删除功能 - yuanse - 博客园 (cnblogs.com)

代码...复制都不想复制了...

1.相关配置文件、实体类、工具类等

学生选课系统--配置文件+工具类+实体类+登录选择页面+登录的账户密码检查 - yuanse - 博客园 (cnblogs.com)

2.admin.jsp(管理者页面)

复制代码
<%--
  Created by IntelliJ IDEA.
  User: 22466
  Date: 2022/11/13
  Time: 0:53
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>admin.jsp</title>
</head>
<%--管理员选择页面:问题:很多会出现重复--%>
<body>
<h3>欢迎${uname}登录</h3>
<a href="addstu.jsp">添加学生基本信息</a>   <br>
<a href="selectstu.jsp">修改学生基本信息</a><br>
<a href="selectstu.jsp">删除学生基本信息</a> <br>
<a href="addtea.jsp">添加教师基本信息</a> <br>
<a href="selecttea.jsp">修改教师基本信息</a><br>
<a href="selecttea.jsp">删除教师基本信息</a><br>
<a href="addcla.jsp">新添课程基本信息</a><br>
<a href="selectcla.jsp">修改课程基本信息</a><br>
<a href="selectcla.jsp">删除课程基本信息</a><br>
<a href="selectupwd.jsp">密码重置</a><br>
</body>
</html>
View Code点击查看代码
复制代码

3.addstu.jsp(添加学生信息页面)

复制代码
<%--
  Created by IntelliJ IDEA.
  User: 22466
  Date: 2022/11/13
  Time: 1:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>addstu.jsp</title>
</head>
<body>
<h2 align="center">添加学生信息</h2>
<table align="center" width="800" border="1">
    <form method="post" action="addstuServlet">
        <tr>
            <td>学号</td>
            <td>系统自动生成</td>
        </tr>
        <tr>
            <td>姓名</td>
            <td><input type="text" name="name" id="name"></td>
        </tr>
        <tr>
            <td>性别</td>
            <td>
                <input type="radio" name="sex" value="男" checked><input type="radio" name="sex" value="女"></td>
        </tr>
        <tr>
            <td>年龄</td>
            <td><input type="text" name="age" id="age"></td>
        </tr>
        <tr>
            <td>专业</td>
            <td>
                <input type="radio" name="pro" value="计算机科学与技术" checked>计算机科学与技术<br>
                <input type="radio" name="pro" value="软件工程">软件工程<br>
                <input type="radio" name="pro" value="网络工程">网络工程<br>
                <input type="radio" name="pro" value="数字媒体技术">数字媒体技术<br>
            </td>
        </tr>
        <tr>
            <td>班级</td>
            <td><input type="text" name="cla" id="cla"></td>
        </tr>
        <tr align="center">
            <td colspan="2"><button>添加</button></td>
        </tr>
    </form>
</table>
</body>
</html>
View Code点击查看代码
复制代码

4.addstuServlet.java(添加学生信息Servlet接收)

复制代码
package com.xxxx.servlet;

import com.xxxx.entity.Stu;
import com.xxxx.mapper.StuMapper;
import com.xxxx.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/addstuServlet")
public class addstuServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
         String name=request.getParameter("name");         ;//姓名
         String sex=request.getParameter("sex");         ;//性别
         int  age= Integer.parseInt(request.getParameter("age"));    ;//年龄
         String pro=request.getParameter("pro");        ;//专业
         String cla=request.getParameter("cla");               ;//班级
        Stu stu=new Stu(name,sex,age,pro,cla);
        SqlSession sqlSession = GetSqlSession.CreateSqlSession();
        StuMapper stuMapper = sqlSession.getMapper(StuMapper.class);
        stuMapper.add(stu);
        response.getWriter().write("添加成功");
        response.getWriter().close();
        sqlSession.close();
    }
}
View Code点击查看代码
复制代码

5.selectstu.jsp(浏览学生信息,方便修改、删除操作)

复制代码
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="com.xxxx.util.GetSqlSession" %>
<%@ page import="com.xxxx.mapper.StuMapper" %>
<%@ page import="com.xxxx.entity.Stu" %><%--
  Created by IntelliJ IDEA.
  User: 22466
  Date: 2022/11/14
  Time: 23:41
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>selectstu.jsp</title>
</head>
<%--浏览所有学生,方便选择修改信息或者删除信息,超链接--%>
<body>
<table align="center" border="1" width="800">

    <tr>
        <td>学生学号</td><td>学生姓名</td><td>性别</td><td>年龄</td><td>专业</td><td>班级</td><td></td>
    </tr>
<%
    SqlSession sqlSession = GetSqlSession.CreateSqlSession();
    StuMapper stuMapper = sqlSession.getMapper(StuMapper.class);
    Stu[] stus=stuMapper.selectAll();
    for (Stu stu:stus) {
%>
        <tr>
            <td><%=stu.getId()%></td><td><%=stu.getName()%></td><td><%=stu.getSex()%></td><td><%=stu.getAge()%></td><td><%=stu.getPro()%></td><td><%=stu.getCla()%></td>
            <td><a href="upstu.jsp?id=<%=stu.getId()%>">修改</a> &nbsp; <a href="destuServlet?id=<%=stu.getId()%>">删除</a>  </td>
        </tr>
<%
    }
        sqlSession.close();
%>
</table>
</body>
</html>
View Code点击查看代码
复制代码

6.upstu.jsp(修改学生信息页面)

复制代码
<%--
  Created by IntelliJ IDEA.
  User: 22466
  Date: 2022/11/13
  Time: 1:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>upstu.jsp</title>
</head>
<%--不符合*录入格式*,不可修改,,没完成--%>
<body>
<%
    String id=request.getParameter("id");//获取超链接传过来的id
    request.getSession().setAttribute("id",id);//设置域对象
%>
<h2 align="center">修改学生信息</h2>
<table align="center" width="800" border="1">
    <form method="post" action="upstuServlet">
        <tr>
            <td>学号</td>
            <td><%=id%></td>
        </tr>
        <tr>
            <td>姓名</td>
            <td><input type="text" name="name" id="name"></td>
        </tr>
        <tr>
            <td>性别</td>
            <td>
                <input type="radio" name="sex" value="男" checked><input type="radio" name="sex" value="女"></td>
        </tr>
        <tr>
            <td>年龄</td>
            <td><input type="text" name="age" id="age"></td>
        </tr>
        <tr>
            <td>专业</td>
            <td>
                <input type="radio" name="pro" value="计算机科学与技术" checked>计算机科学与技术<br>
                <input type="radio" name="pro" value="软件工程">软件工程<br>
                <input type="radio" name="pro" value="网络工程">网络工程<br>
                <input type="radio" name="pro" value="数字媒体技术">数字媒体技术<br>
            </td>
        </tr>
        <tr>
            <td>班级</td>
            <td><input type="text" name="cla" id="cla"></td>
        </tr>
        <tr align="center">
            <td colspan="2"><button>修改</button></td>
        </tr>
    </form>
</table>
</body>
</html>
View Code点击查看代码
复制代码

7.upstuServlet.java(接收修改页面的信息)

复制代码
package com.xxxx.servlet;

import com.xxxx.entity.Stu;
import com.xxxx.mapper.StuMapper;
import com.xxxx.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/upstuServlet")
public class upstuServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        int id= Integer.valueOf((String) request.getSession().getAttribute("id"));//获取要修改的id写int会出错**
        String name=request.getParameter("name");                    //姓名
        String sex=request.getParameter("sex");                     //性别
        int  age= Integer.parseInt(request.getParameter("age"));    //年龄
        String pro=request.getParameter("pro");                     //专业
        String cla=request.getParameter("cla");                     //班级
        Stu stu=new Stu(id,name,sex,age,pro,cla);
        SqlSession sqlSession = GetSqlSession.CreateSqlSession();
        StuMapper stuMapper = sqlSession.getMapper(StuMapper.class);
        stuMapper.update(stu);
        response.getWriter().write("修改成功");
        response.getWriter().close();
        sqlSession.close();
    }
}
View Code点击查看代码
复制代码

8.destuServlet.java(删除学生信息)

复制代码
package com.xxxx.servlet;

import com.xxxx.mapper.StuMapper;
import com.xxxx.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/destuServlet")
public class destuServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        String id=request.getParameter("id");
        SqlSession sqlSession = GetSqlSession.CreateSqlSession();
        StuMapper stuMapper = sqlSession.getMapper(StuMapper.class);
        stuMapper.deleteById(id);
        response.getWriter().write("删除成功");
        response.getWriter().close();
        sqlSession.close();
    }
}
View Code点击查看代码
复制代码

9.addtea.jsp

复制代码
<%--
  Created by IntelliJ IDEA.
  User: 22466
  Date: 2022/11/13
  Time: 1:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>addtea.jsp</title>
</head>
<%--工号和院需要校验
    不要忘记return!!
    <td colspan="2"><button type="button" id="addBtn">添加</button></td>注意要写type,不然自动提交
--%>
<body>
<h2 align="center">添加教师信息</h2>
<table align="center" width="800" border="1">
    <form method="post" action="addteaServlet" id="addForm">
        <tr>
            <td>工号</td>
            <td><input type="text" name="id" id="id"><span id="msg1" style="font-size: 16px;color: red"></span> </td>
        </tr>
        <tr>
            <td>姓名</td>
            <td><input type="text" name="name" id="name"></td>
        </tr>
        <tr>
            <td>职称</td>
            <td>
                <input type="radio" name="pro" value="助教">助教<br>
                <input type="radio" name="pro" value="讲师">讲师<br>
                <input type="radio" name="pro" value="副教授">副教授<br>
                <input type="radio" name="pro" value="教授">教授<br>
            </td>
        </tr>
        <tr>
            <td>所属学院</td>
            <td>
                <select name="yuan" id="yuan">
                    <option value="信息" >信息</option>
                    <option value="土木" >土木</option>
                    <option value="机械" >机械</option>
                    <option value="电气" >电气</option>
                    <option value="交通" >交通</option>
                </select>
            </td>
        </tr>
        <tr align="center">

            <td colspan="2"><span id="msg2" style="font-size: 16px;color: red"></span><br><button type="button" id="addBtn">添加</button></td>
        </tr>
    </form>
</table>
<%--使用js校验
            先验证工号格式,6位数字,前两位01-05
            再看院系和工号是否对应
            格式都正确,就提交表单
        注意:不要忘记return
        问题:如果第一次是工号和院系不匹配,弹出错误信息之后,下一次不刷新进行修改,这个错误信息会一直存在!
--%>
<script type="text/javascript" src="js/jquery-3.6.1.js"></script>
<script type="text/javascript">
    $("#addBtn").click(function(){
        var id=$("#id").val();
        var yuan=$("#yuan").val();
        //先验证工号格式,6位数字,前两位01-5
        if(isNaN(id)|| id.length!=6){
             $("#msg1").html("工号格式错误1");return;//不要忘记return
        }
        else{
            if(id[0]!='0'||id[1]>5||id[1]<1){//***
                //工号错误
                $("#msg1").html("工号格式错误2");return;
            }
            else {
                //工号正确了-->判断工号和院系是否对应
                if((id[1]==1&&yuan!="信息")||(id[1]==2&&yuan!="土木")||(id[1]==3&&yuan!="机械")||(id[1]==4&&yuan!="电气")||(id[1]==5&&yuan!="交通")){
                    //工号和院系不匹配
                    $("#msg2").html("工号和院系不匹配");return;
                }
                else{
                    //所有条件都满足了
                    $("#addForm").submit();
                }
            }
        }
    });
</script>
</body>
</html>
View Code点击查看代码
复制代码

10.addteaServlet(添加教师Servlet)

复制代码
package com.xxxx.servlet;

import com.xxxx.entity.Stu;
import com.xxxx.entity.Tea;
import com.xxxx.mapper.StuMapper;
import com.xxxx.mapper.TeaMapper;
import com.xxxx.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/addteaServlet")
public class addteaServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        int id     = Integer.parseInt(request.getParameter("id"));//工号
        String name=request.getParameter("name")     ;//姓名
        String pro =request.getParameter("pro")        ;//职位
        String yuan=request.getParameter("yuan")        ;//所属院
        Tea tea=new Tea(id,name,pro,yuan);
        SqlSession sqlSession = GetSqlSession.CreateSqlSession();
        TeaMapper teaMapper = sqlSession.getMapper(TeaMapper.class);
        teaMapper.add(tea);
        response.getWriter().write("添加成功");
        response.getWriter().close();
        sqlSession.close();
    }
}
View Code点击查看代码
复制代码

11.selecttea.jsp(查询全部教师信息)

复制代码
<%@ page import="com.xxxx.entity.Tea" %>
<%@ page import="com.xxxx.mapper.TeaMapper" %>
<%@ page import="com.xxxx.util.GetSqlSession" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %><%--
  Created by IntelliJ IDEA.
  User: 22466
  Date: 2022/11/15
  Time: 10:19
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>selecttea.jsp</title>
</head>
<%--浏览所有教师,方便选择修改信息或者删除信息,超链接--%>
<body>
<table align="center" border="1" width="800">
    <tr>
        <td>工号</td><td>姓名</td><td>职位</td><td>所属院</td><td></td>
    </tr>
        <%
    SqlSession sqlSession = GetSqlSession.CreateSqlSession();
    TeaMapper teaMapper = sqlSession.getMapper(TeaMapper.class);
    Tea[] teas=teaMapper.selectAll();
    for (Tea tea:teas) {
%>
    <tr>
        <td><%=tea.getId()%></td><td><%=tea.getName()%></td><td><%=tea.getPro()%></td><td><%=tea.getYuan()%></td>
        <td><a href="uptea.jsp?id=<%=tea.getId()%>">修改</a> &nbsp; <a href="deteaServlet?id=<%=tea.getId()%>&teaname=<%=tea.getName()%>">删除</a>  </td>
    </tr>
        <%
    }
        sqlSession.close();
%>
</body>
</html>
View Code点击查看代码
复制代码

12.uptea.jsp(修改教师信息页面)

复制代码
<%--
  Created by IntelliJ IDEA.
  User: 22466
  Date: 2022/11/13
  Time: 1:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>uptea.jsp</title>
</head>
<body>
<%
    String eid=request.getParameter("id");//获取超链接传过来的id
    request.getSession().setAttribute("eid",eid);//设置域对象
%>
<h2 align="center">修改教师信息</h2>
<table align="center" width="800" border="1">
    <form method="post" action="upteaServlet" name="upForm" id="upForm">
        <tr>
            <td>工号</td>
            <td><input type="text" name="id" id="id"><span id="msg1" style="font-size: 16px;color: red"></span> </td>
        </tr>
        <tr>
            <td>姓名</td>
            <td><input type="text" name="name" id="name"></td>
        </tr>
        <tr>
            <td>职称</td>
            <td>
                <input type="radio" name="pro" value="助教">助教<br>
                <input type="radio" name="pro" value="讲师">讲师<br>
                <input type="radio" name="pro" value="副教授">副教授<br>
                <input type="radio" name="pro" value="教授">教授<br>
            </td>
        </tr>
        <tr>
            <td>所属学院</td>
            <td>
                <select name="yuan" id="yuan">
                    <option value="信息" >信息</option>
                    <option value="土木" >土木</option>
                    <option value="机械" >机械</option>
                    <option value="电气" >电气</option>
                    <option value="交通" >交通</option>
                </select>
            </td>
        </tr>
        <tr align="center">
            <td colspan="2"><button type="button" id="upBtn">修改</button></td>
        </tr>
    </form>
</table>
</body>
<script type="text/javascript" src="js/jquery-3.6.1.js"></script>
<script type="text/javascript">
    $("#upBtn").click(function(){
        var id=$("#id").val();
        var yuan=$("#yuan").val();
        //先验证工号格式,6位数字,前两位01-5
        if(isNaN(id)|| id.length!=6){
            $("#msg1").html("工号格式错误1");return;//不要忘记return
        }
        else{
            if(id[0]!='0'||id[1]>5||id[1]<1){//***
                //工号错误
                $("#msg1").html("工号格式错误2");return;
            }
            else {
                //工号正确了-->判断工号和院系是否对应
                if((id[1]==1&&yuan!="信息")||(id[1]==2&&yuan!="土木")||(id[1]==3&&yuan!="机械")||(id[1]==4&&yuan!="电气")||(id[1]==5&&yuan!="交通")){
                    //工号和院系不匹配
                    $("#msg2").html("工号和院系不匹配");return;
                }
                else{
                    //所有条件都满足了
                    $("#upForm").submit();
                }
            }
        }
    });
</script>
</html>
View Code点击查看代码
复制代码

13.upteaServlet.java(接收jsp中要修改的信息)

复制代码
package com.xxxx.servlet;

import com.xxxx.entity.Stu;
import com.xxxx.entity.Tea;
import com.xxxx.mapper.StuMapper;
import com.xxxx.mapper.TeaMapper;
import com.xxxx.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/upteaServlet")
public class upteaServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        int eid= Integer.valueOf((String) request.getSession().getAttribute("eid"));//获取要修改的id写int会出错**接收先前的id
         int id      = Integer.parseInt(request.getParameter("id"));//工号
         String name =request.getParameter("name");//姓名
         String pro  =request.getParameter("pro");//职位
         String yuan =request.getParameter("yuan");//所属院
        Tea tea=new Tea(id,name,pro,yuan);
        SqlSession sqlSession = GetSqlSession.CreateSqlSession();
        TeaMapper teaMapper = sqlSession.getMapper(TeaMapper.class);
        teaMapper.updateByeid(tea,eid);
        response.getWriter().write("修改成功");
        response.getWriter().close();
        sqlSession.close();
    }
}
View Code点击查看代码
复制代码

14.deteaServlet.java(删除教师信息)

复制代码
package com.xxxx.servlet;

import com.xxxx.entity.Cla;
import com.xxxx.mapper.ClaMapper;
import com.xxxx.mapper.StuMapper;
import com.xxxx.mapper.TeaMapper;
import com.xxxx.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/deteaServlet")
public class deteaServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        String id=request.getParameter("id");
        String teaname=request.getParameter("teaname");//这个需要多传一个name值
        SqlSession sqlSession = GetSqlSession.CreateSqlSession();
        //先查看这个教师是否承担教学任务cla
        ClaMapper claMapper=sqlSession.getMapper(ClaMapper.class);
        Cla cla=claMapper.selectByTeaname(teaname);//如果cla不等于空,就说明承担了课程
        if(cla==null){//为空
            TeaMapper stuMapper = sqlSession.getMapper(TeaMapper.class);
            stuMapper.deleteById(id);
            response.getWriter().write("删除成功");
            response.getWriter().close();
        }
        else{
            response.getWriter().write("删除失败,该教师承担了课程任务");
            response.getWriter().close();
        }
        sqlSession.close();
    }
}
View Code点击查看代码
复制代码

15.addscla.jsp(添加课程)

复制代码
<%--
  Created by IntelliJ IDEA.
  User: 22466
  Date: 2022/11/13
  Time: 1:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>addscla.jsp</title>
</head>
<body>
<h2 align="center">添加课程信息</h2>
<table align="center" width="800" border="1">
    <form method="post" action="addclaServlet">
        <tr>
            <td>课程编号</td>
            <td>系统自动生成</td>
        </tr>
        <tr>
            <td>课程名称</td>
            <td><input type="text" name="name"></td>
        </tr>
        <tr>
            <td>开课时间</td>
            <td>
                <select name="time">
                    <option value="星期一" selected>星期一</option>
                    <option value="星期二">星期二</option>
                    <option value="星期三">星期三</option>
                    <option value="星期四">星期四</option>
                    <option value="星期五">星期五</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>开课节次</td>
            <td>
                <select name="ci">
                    <option value="1-2节" selected>1-2节</option>
                    <option value="3-4节">3-4节</option>
                    <option value="5-6节">5-6节</option>
                    <option value="7-8节">7-8节</option>
                    <option value="9-10节">9-10节</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>所属学院</td>
            <td>
                <select name="yuan" id="yuan">
                    <option value="信息" >信息</option>
                    <option value="土木" >土木</option>
                    <option value="机械" >机械</option>
                    <option value="电气" >电气</option>
                    <option value="交通" >交通</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>任课教师工号</td>
            <td><input type="text" name="teaid"></td>
        </tr>
        <tr>
            <td>任课教师名称</td>
            <td><input type="text" name="tea"></td>
        </tr>
        <tr>
            <td>选课限制人数</td>
            <td><input type="text" name="people"></td>
        </tr>
        <tr align="center">
            <td colspan="2"><button>添加</button></td>
        </tr>
    </form>
</table>
</body>
</html>
View Code点击查看代码
复制代码

16.addclaServlet

复制代码
package com.xxxx.servlet;

import com.xxxx.entity.Cla;
import com.xxxx.entity.Tea;
import com.xxxx.mapper.ClaMapper;
import com.xxxx.mapper.TeaMapper;
import com.xxxx.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/addclaServlet")
public class addclaServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
         String name=request.getParameter("name");//课程名称
         String time=request.getParameter("time");//开课时间星期几
         String ci  =request.getParameter("ci");//上课时间1-2节
         String yuan=request.getParameter("yuan");//开课院系
         String tea =request.getParameter("tea");//任课老师名字
        int teaid  = Integer.parseInt(request.getParameter("teaid"));//老师id
        int people  = Integer.parseInt(request.getParameter("people"));//限制人数
         Cla cla=new Cla(name,time,ci,yuan,tea,teaid,people);
         SqlSession sqlSession = GetSqlSession.CreateSqlSession();
         ClaMapper claMapper = sqlSession.getMapper(ClaMapper.class);
         claMapper.add(cla);
         response.getWriter().write("添加成功");
         response.getWriter().close();
         sqlSession.close();
    }
}
View Code点击查看代码
复制代码

17.selectcla.jsp(浏览课程)

复制代码
<%@ page import="com.xxxx.util.GetSqlSession" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="com.xxxx.mapper.ClaMapper" %>
<%@ page import="com.xxxx.entity.Cla" %><%--
  Created by IntelliJ IDEA.
  User: 22466
  Date: 2022/11/15
  Time: 10:19
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>selectcla.jsp</title>
</head>
<%--浏览所有课程信息,方便选择修改信息或者删除信息,超链接--%>
<body>
<table align="center" border="1" width="800">
    <tr>
        <td>课程编号</td><td>课程名称</td><td>开课时间</td><td>上课时间</td><td>开课院系</td>
        <td>任课老师</td><td>老师工号</td><td>限制人数</td><td></td>
    </tr>
        <%
    SqlSession sqlSession = GetSqlSession.CreateSqlSession();
    ClaMapper claMapper = sqlSession.getMapper(ClaMapper.class);
    Cla[] clas=claMapper.selectAll();
    for (Cla cla:clas) {
%>
    <tr>
        <td><%=cla.getId()%></td><td><%=cla.getName()%></td><td><%=cla.getTime()%></td><td><%=cla.getCi()%></td>
        <td><%=cla.getYuan()%></td><td><%=cla.getTea()%></td><td><%=cla.getTeaid()%></td><td><%=cla.getPeople()%></td>
        <td><a href="upcla.jsp?id=<%=cla.getId()%>&name=<%=cla.getName()%>">修改</a> &nbsp; <a href="declaServlet?id=<%=cla.getId()%>&xuan=<%=cla.getXuan()%>">删除</a>  </td>
    </tr>
        <%
    }
        sqlSession.close();
%>
</body>
</html>
View Code点击查看代码
复制代码

18.upcla.jsp(修改课程)

复制代码
<%--
  Created by IntelliJ IDEA.
  User: 22466
  Date: 2022/11/13
  Time: 1:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>upcla.jsp</title>
</head>
<%
    String id=request.getParameter("id");//获取超链接传过来的id(不可修改)
    request.getSession().setAttribute("id",id);//设置域对象
    String name=request.getParameter("name");//(不可修改)
%>
<body>
<h2 align="center">修改课程信息</h2>
<table align="center" width="800" border="1">
    <form method="post" action="upclaServlet">
        <tr>
            <td>课程编号</td>
            <td><%=id%>&nbsp;(不可修改)</td>
        </tr>
        <tr>
            <td>课程名称</td>
            <td><%=name%>&nbsp;(不可修改)</td>
        </tr>
        <tr>
            <td>开课时间</td>
            <td>
                <select name="time">
                    <option value="星期一" selected>星期一</option>
                    <option value="星期二">星期二</option>
                    <option value="星期三">星期三</option>
                    <option value="星期四">星期四</option>
                    <option value="星期五">星期五</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>开课节次</td>
            <td>
                <select name="ci">
                    <option value="1-2节" selected>1-2节</option>
                    <option value="3-4节">3-4节</option>
                    <option value="5-6节">5-6节</option>
                    <option value="7-8节">7-8节</option>
                    <option value="9-10节">9-10节</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>所属学院</td>
            <td>
                <select name="yuan" id="yuan">
                    <option value="信息" >信息</option>
                    <option value="土木" >土木</option>
                    <option value="机械" >机械</option>
                    <option value="电气" >电气</option>
                    <option value="交通" >交通</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>任课教师工号</td>
            <td><input type="text" name="teaid"></td>
        </tr>
        <tr>
            <td>任课教师名称</td>
            <td><input type="text" name="tea"></td>
        </tr>
        <tr>
            <td>选课限制人数</td>
            <td><input type="text" name="people"></td>
        </tr>
        <tr align="center">
            <td colspan="2"><button>修改</button></td>
        </tr>
    </form>
</table>
</body>
</html>
View Code点击查看代码
复制代码

19.upclaServlet.java

复制代码
package com.xxxx.servlet;

import com.xxxx.entity.Cla;
import com.xxxx.entity.Stu;
import com.xxxx.mapper.ClaMapper;
import com.xxxx.mapper.StuMapper;
import com.xxxx.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/upclaServlet")
public class upclaServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        int id= Integer.valueOf((String) request.getSession().getAttribute("id"));//获取要修改的id写int会出错**
//        String name=request.getParameter("name");//课程名称
        String time=request.getParameter("time");//开课时间星期几
        String ci  =request.getParameter("ci");//上课时间1-2节
        String yuan=request.getParameter("yuan");//开课院系
        String tea =request.getParameter("tea");//任课老师名字
        int teaid  = Integer.parseInt(request.getParameter("teaid"));//老师id
        int people  = Integer.parseInt(request.getParameter("people"));//限制人数
        Cla cla=new Cla();
        cla.setId(id);cla.setTime(time);cla.setCi(ci);cla.setYuan(yuan);cla.setTea(tea);cla.setTeaid(teaid);cla.setPeople(people);
        SqlSession sqlSession = GetSqlSession.CreateSqlSession();
        ClaMapper claMapper = sqlSession.getMapper(ClaMapper.class);
        claMapper.update(cla);
        response.getWriter().write("修改成功");
        response.getWriter().close();
        sqlSession.close();
    }
}
View Code点击查看代码
复制代码

20.declaServlet.java(删除课程)

复制代码
package com.xxxx.servlet;

import com.xxxx.mapper.ClaMapper;
import com.xxxx.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/declaServlet")
public class declaServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        int id= Integer.parseInt(request.getParameter("id"));//课程id
        int xuan= Integer.parseInt(request.getParameter("xuan"));//已选人数
        if(xuan!=0){
            response.getWriter().write("该课程已经被选择,无法删除");
            response.getWriter().close();
        }
        else{
            SqlSession sqlSession = GetSqlSession.CreateSqlSession();
            ClaMapper claMapper = sqlSession.getMapper(ClaMapper.class);
            claMapper.deleteById(id);
            response.getWriter().write("课程删除成功");
            response.getWriter().close();
            sqlSession.close();
        }
    }
}
View Code点击查看代码
复制代码

21.selectupwd.jsp(密码重置)

复制代码
<%--
  Created by IntelliJ IDEA.
  User: 22466
  Date: 2022/11/15
  Time: 12:36
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>selectupwd</title>
</head>
<%--管理员重置密码前需要把教师或学生的id输入,先查询再修改--%>
<body>
<form action="selectupwdServlet" method="post">
    输入id<input type="text" name="id"><br>
    被修改用户身份:<input type="radio" name="type" value="教师">教师 &nbsp;<input type="radio" name="type" value="学生">学生<br>
    <span name="msg" style="font-size: 16px;color: red">${msg}</span>-
    <button>查询</button>
</form>
</body>
</html>
View Code点击查看代码
复制代码

22.selectupwdServlet.java(接收selectupwd.jsp的信息,查找要重置的用户的信息)

复制代码
package com.xxxx.servlet;

import com.xxxx.entity.Stu;
import com.xxxx.entity.Tea;
import com.xxxx.mapper.StuMapper;
import com.xxxx.mapper.TeaMapper;
import com.xxxx.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 重置密码前查询信息
 *      先看要修改的是学生还是教师(这一步是为了看要查教师表还是学生表,为了查到账号名:为教师/学生的姓名;
 *      如果直接设置账号名为id号,则可以直接查login登录表,不用这么麻烦)
 *          存在->可以进入修改页面
 *          不存在则返回,提示错误信息(需要回显:域对象)
 */
@WebServlet("/selectupwdServlet")
public class selectupwdServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        int id= Integer.parseInt(request.getParameter("id"));//获取id
        String type=request.getParameter("type");//获取身份
        System.out.println(type);
        if(type.equals("学生")){
            //重置学生密码
            SqlSession sqlSession = GetSqlSession.CreateSqlSession();
            StuMapper stuMapper = sqlSession.getMapper(StuMapper.class);
            Stu stu=stuMapper.selectByid(id);
            if(stu==null){
                request.setAttribute("msg","学生id不存在");
                request.getRequestDispatcher("selectupwd.jsp").forward(request,response);
            }
            else{
                request.getSession().setAttribute("type","1");//设1为学生,2为老师
                request.getSession().setAttribute("stu" ,stu);//把学生全部信息传到重置密码页面
                response.sendRedirect("upupwd.jsp");
            }
            sqlSession.close();
        }
        else{
            //重置老师密码
            SqlSession sqlSession = GetSqlSession.CreateSqlSession();
            TeaMapper teaMapper = sqlSession.getMapper(TeaMapper.class);
            Tea tea=teaMapper.selectByid(id);
            if(tea==null){
                request.setAttribute("msg","教师id不存在");
                request.getRequestDispatcher("selectupwd.jsp").forward(request,response);
            }
            else{
                request.getSession().setAttribute("type","2");//设1为学生,2为老师
                request.getSession().setAttribute("tea" ,tea);//把学生全部信息传到重置密码页面
                response.sendRedirect("upupwd.jsp");
            }
            sqlSession.close();
        }
    }
}
View Code点击查看代码
复制代码

23.upupwd.jsp(确认重置密码upwd页面)

复制代码
<%@ page import="com.xxxx.entity.Stu" %>
<%@ page import="com.xxxx.entity.Tea" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="com.xxxx.util.GetSqlSession" %>
<%@ page import="com.xxxx.mapper.StuMapper" %>
<%@ page import="com.xxxx.mapper.LoginMapper" %>
<%@ page import="com.xxxx.entity.Login" %><%--
  Created by IntelliJ IDEA.
  User: 22466
  Date: 2022/11/13
  Time: 1:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>upupwd.jsp</title>
</head>
<%--修改密码,我想直接在js中修改--%>
<body>
<%
    String type= (String) request.getSession().getAttribute("type");
    SqlSession sqlSession = GetSqlSession.CreateSqlSession();
    LoginMapper loginMapper = sqlSession.getMapper(LoginMapper.class);
    Login login;String uname;//为了后面能调用login
    if(type.equals("1")){//学生
        Stu stu= (Stu) request.getSession().getAttribute("stu");
        uname=stu.getName();
        login=loginMapper.selectByUname(stu.getName());
    }
    else{//老师
        Tea tea=(Tea)request.getSession().getAttribute("tea");
        uname=tea.getName();
        login=loginMapper.selectByUname(tea.getName());
    }
    request.getSession().setAttribute("uname",uname);//设立域对象
%>
<h2 align="center">重置密码</h2>
<table align="center" width="800" border="1">
    <form method="post" action="upupwdServlet">
        <tr>
            <td>账户</td>
            <td><%=login.getUname()%></td>
        </tr>
        <tr>
            <td>密码</td>
            <td><%=login.getUpwd()%></td>
        </tr>
        <span id="msg" style="font-size: 16px;color: red"></span>
        <tr align="center">
            <td colspan="2"><button>重置密码</button></td>
        </tr>
    </form>
</table>
</body>
</html>
View Code点击查看代码
复制代码

24.upupwdServlet.java(重置upwd密码操作)

复制代码
package com.xxxx.servlet;

import com.xxxx.mapper.LoginMapper;
import com.xxxx.mapper.StuMapper;
import com.xxxx.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/upupwdServlet")
public class upupwdServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        String uname= (String) request.getSession().getAttribute("uname");
        SqlSession sqlSession = GetSqlSession.CreateSqlSession();
        LoginMapper loginMapper = sqlSession.getMapper(LoginMapper.class);
        loginMapper.updateByuname(uname);
        response.getWriter().write("重置密码成功");
        response.getWriter().close();
        sqlSession.close();
    }
}
View Code点击查看代码
复制代码

25.ClaMapper.java(Mapper接口类)

复制代码
package com.xxxx.mapper;

import com.xxxx.entity.Cla;

public interface ClaMapper {
    void add(Cla cla);

    Cla[] selectAll();

    void update(Cla cla);

    Cla selectByTeaname(String teaname);

    void deleteById(int id);
}
View Code点击查看代码
复制代码

26.ClaMapper.xml(xml文件)

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"-->
<!--         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"-->
<!--         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"-->
<!--         version="4.0">-->
<!--</web-app>-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace:命名空间-->
<mapper namespace = "com.xxxx.mapper.ClaMapper">

    <insert id="add">
        insert into cla (name,time,ci,yuan,tea,teaid,people)
        values (#{name},#{time},#{ci},#{yuan},#{tea},#{teaid},#{people});
    </insert>
    <update id="update">
        update cla set time=#{time},ci=#{ci},yuan=#{yuan},tea=#{tea},teaid=#{teaid},people=#{people}
                       where id=#{id};
    </update>
    <delete id="deleteById">
        delete from cla where id=#{id};
    </delete>
    <select id="selectAll" resultType="com.xxxx.entity.Cla">
        select * from cla;
    </select>
    <select id="selectByTeaname" resultType="com.xxxx.entity.Cla">
        select *
        from cla where tea=#{teaname};
    </select>
</mapper>
View Code点击查看代码
复制代码

27.LoginMapper.java(Mapper接口)

复制代码
package com.xxxx.mapper;

import com.xxxx.entity.Login;

public interface LoginMapper {
    Login selectByUname(String uname);

    void updateByuname(String uname);
}
View Code点击查看代码
复制代码

28.LoginMapper.xml(xml文件)

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"-->
<!--         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"-->
<!--         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"-->
<!--         version="4.0">-->
<!--</web-app>-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace:命名空间-->
<mapper namespace = "com.xxxx.mapper.LoginMapper">
    <update id="updateByuname">
        update login
        set upwd ="123456"
        where uname=#{uname};
    </update>

    <select id="selectByUname" resultType="com.xxxx.entity.Login">
        select * from login where uname=#{uname};
    </select>

</mapper>
View Code点击查看代码
复制代码

29.StuMapper.java(mapper接口类)

复制代码
package com.xxxx.mapper;

import com.xxxx.entity.Stu;

public interface StuMapper {
    void add(Stu stu);

    void update(Stu stu);

    Stu[] selectAll();

    Stu selectByid(int id);

    void deleteById(String id);
}
View Code点击查看代码
复制代码

30.StuMapper.xml(xml文件)

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"-->
<!--         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"-->
<!--         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"-->
<!--         version="4.0">-->
<!--</web-app>-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace:命名空间-->
<mapper namespace = "com.xxxx.mapper.StuMapper">

    <insert id="add">
        insert into stu01(name,sex,age,pro,cla) values (#{name},#{sex},#{age},#{pro},#{cla});
    </insert>
    <update id="update">
        update stu01 set name=#{name},sex=#{sex},age=#{age},pro=#{pro},cla=#{cla}
            where id=#{id};
    </update>
    <delete id="deleteById">
        delete from stu01 where id=#{id};
    </delete>
    <select id="selectAll" resultType="com.xxxx.entity.Stu">
        select * from stu01;
    </select>
    <select id="selectByid" resultType="com.xxxx.entity.Stu">
        select *
        from stu01 where id=#{id};
    </select>
</mapper>
View Code点击查看代码
复制代码

31.TeaMapper.java

复制代码
package com.xxxx.mapper;

import com.xxxx.entity.Tea;
import org.apache.ibatis.annotations.Param;

public interface TeaMapper {
    void add(Tea tea);

    Tea[] selectAll();

    void updateByeid(@Param("tea") Tea tea, @Param("eid") int eid);

    Tea selectByid(int id);

    void deleteById(String id);
}
View Code点击查看代码
复制代码

32.TeaMapper.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"-->
<!--         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"-->
<!--         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"-->
<!--         version="4.0">-->
<!--</web-app>-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace:命名空间-->
<mapper namespace = "com.xxxx.mapper.TeaMapper">


    <insert id="add">
        insert into tea01 (id,name,pro,yuan)
        values (#{id},#{name},#{pro},#{yuan});
    </insert>
    <delete id="deleteById">
        delete
        from tea01
        where id=#{id};
    </delete>
    <select id="selectAll" resultType="com.xxxx.entity.Tea">
        select * from tea01;
    </select>
    <select id="selectByid" resultType="com.xxxx.entity.Tea">
        select * from tea01 where id=#{id};
    </select>
    <update id="updateByeid">
        update tea01
        set id=#{tea.id},name=#{tea.name},pro=#{tea.pro},yuan=#{tea.yuan}
        where id=#{eid};
    </update>
</mapper>
View Code点击查看代码
复制代码

 

posted on   201812  阅读(113)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示