学生选课系统--管理员--修改信息功能

      学生选课系统--管理员--修改信息功能

小总结:

  1.修改功能(修改学生、教师、课程信息),我的想法是先显示所有信息,然后有修改和删除的按钮,这样点击修改按钮的时候,通过超链接把id信息传到修改.jsp页面,然后再设立域对象把这个id信息给传到对应的Servlet中

  在各个过程中,因为有很多重复的代码,我就会复制粘贴,但是特别容易出现的问题就是有些地方需要修改但是忘记修改,就会卡很久,比如说路径的修改,还有一些新添的代码,比如说学生的id是不允许修改的,但是教师的工号可以修改,这时候就有修改前id和修改后id的区分,还有因为教师信息添加和修改的时候都需要先JS校验看看是否符合格式,复制过来的代码Form表格的id要注意,还有button按钮的id也需要注意的,不然很容易传不过来,一直报null错误。

  浏览信息的时候,xml里面不要忘记写返回类型!

  2.修改(重置密码和前面的的修改功能的要求不太一样)

学生修改:

1.StuMapper.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>
    <select id="selectAll" resultType="com.xxxx.entity.Stu">
        select * from stu01;
    </select>
</mapper>
View Code点击查看代码

2.StuMapper.java

package com.xxxx.mapper;

import com.xxxx.entity.Stu;

public interface StuMapper {
    void add(Stu stu);

    void update(Stu stu);

    Stu[] selectAll();
}
View Code点击查看代码

3.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="destu.jsp?id=<%=stu.getId()%>">删除</a>  </td>
        </tr>
<%
    }
        sqlSession.close();
%>
</table>
</body>
</html>
View Code点击查看代码

4.upstu.jsp(修改学生信息jsp)

<%@ 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点击查看代码

5.upstuServlet.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("/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点击查看代码

教师修改:

1.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>
    <select id="selectAll" resultType="com.xxxx.entity.Tea">
        select * from tea01;
    </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点击查看代码

2.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);
}
View Code点击查看代码

3.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="detea.jsp?id=<%=tea.getId()%>">删除</a>  </td>
    </tr>
        <%
    }
        sqlSession.close();
%>
</body>
</html>
View Code点击查看代码

4.uptea.jsp(修改教师信息jsp)

<%@ 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点击查看代码

5.upteaServlet.java(实现修改教师信息的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("/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点击查看代码

课程修改:

1.ClaMapper.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>
    <select id="selectAll" resultType="com.xxxx.entity.Cla">
        select * from cla;
    </select>
</mapper>
View Code点击查看代码

2.ClaMapper.java

package com.xxxx.mapper;

import com.xxxx.entity.Cla;

public interface ClaMapper {
    void add(Cla cla);

    Cla[] selectAll();

    void update(Cla cla);
}
View Code点击查看代码

3.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="decla.jsp?id=<%=cla.getId()%>&name=<%=cla.getName()%>">删除</a>  </td>
    </tr>
        <%
    }
        sqlSession.close();
%>
</body>
</html>
View Code点击查看代码

4.upcla.jsp(修改课程信息jsp)

<%@ 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点击查看代码

5.upclaServlet.java(实现修改课程信息的Servlet)

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点击查看代码

密码重置:

1.LoginMapper.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点击查看代码

2.LoginMapper.java

package com.xxxx.mapper;

import com.xxxx.entity.Login;

public interface LoginMapper {
    Login selectByUname(String uname);

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

3.selectupwd.jsp(输入要重置密码的学生/老师的id)这里需要注意的是这个input里面一定要有value不然去打牌selectupwdServlet中通过type获取不到"教师"或者是"学生"的

<%@ 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>

4.selectupwdServlet.java(实现查找学生/老师,不存在就输出错误信息,存在就查询到详细的账号密码信息)

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");//获取身份
        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点击查看代码

5.upupwd.jsp(详细信息,点击则进行重置)

<%@ 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点击查看代码

6.upupwdServlet.java(进行密码重置的Servlet)

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点击查看代码

 

posted on 2022-11-13 23:04  201812  阅读(218)  评论(0)    收藏  举报