系统查找的前后端代码

前端

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>查询调剂计划</title>
</head>
<body>
<h2>根据 专业课名称 查找调剂计划</h2>
<form action="/yjs/findByMnServlet" method="post" id="form">
    <p> 专业课名称: <input id="mn" name="mn" type="text" required></p>
    <input type="submit" class="button" value="查找">&nbsp;&nbsp;&nbsp;
</form>
</body>
</html>

后端

package com.lianxi.servlet;

import com.lianxi.mapper.ClassesMapper;
import com.lianxi.pojo.Classes;
import com.lianxi.util.SqlSessionFactoryUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

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;
import java.io.PrintWriter;

@WebServlet("/findByIdServlet")
public class FindByIdServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 1. 接收课程名
        String id = req.getParameter("id");

        // 检查课程名是否为空
        if (id == null || id.trim().isEmpty()) {
            resp.setContentType("text/html;charset=utf-8");
            try (PrintWriter writer = resp.getWriter()) {
                writer.write("id不能为空!");
            }
            return; // 结束请求处理
        }

        // 2. 调用 MyBatis 完成查询
        SqlSession sqlSession = null;
        try {
            // 2.1 获取 SqlSessionFactory 对象
            SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

            // 2.2 获取 SqlSession 对象
            sqlSession = sqlSessionFactory.openSession();

            // 2.3 获取 Mapper
            ClassesMapper classesMapper = sqlSession.getMapper(ClassesMapper.class);

            // 2.4 调用方法
            Classes classes = classesMapper.selectById(Integer.parseInt(id));

            // 获取字符输出流,并设置 content type
            resp.setContentType("text/html;charset=utf-8");
            try (PrintWriter writer = resp.getWriter()) {
                // 3. 判断id是否为空
                if (classes != null) {
                    // 写出对应学生
                    writer.write(classes.toString());
                } else {
                    // 没有找到学生
                    writer.write("没有找到该学生!");
                }
            }
        } catch (Exception e) {
            // 异常处理:打印错误日志并返回错误信息
            e.printStackTrace();
            resp.setContentType("text/html;charset=utf-8");
            try (PrintWriter writer = resp.getWriter()) {
                writer.write("查询过程中发生了错误,请稍后再试!");
            }
        } finally {
            // 2.5 确保 sqlSession 在 finally 中被关闭,避免资源泄漏
            if (sqlSession != null) {
                sqlSession.close();
            }
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // doPost 请求直接调用 doGet 方法
        this.doGet(req, resp);
    }
}
posted @ 2025-02-20 18:47  呓语-MSHK  阅读(6)  评论(0)    收藏  举报