Web功能实现(1.展示全部2.模糊查询3.修改用户4.删除用户)

2023-10-27

需求:

        1.展示全部

        2.模糊查询

        3.修改用户

        4.删除用户

首先写数据库脚本:

CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;
/*Table structure for table `student` */
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `StudentId` INT(20) NOT NULL AUTO_INCREMENT,
  `StudentName` VARCHAR(20) NOT NULL,
  `city` VARCHAR(20) NOT NULL,
  `sex` VARCHAR(20) NOT NULL,
  `birthday` DATETIME NOT NULL,
  `desc` VARCHAR(100) DEFAULT NULL,
  PRIMARY KEY (`StudentId`)
) ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
/*Data for the table `student` */
INSERT  INTO `student`(`StudentId`,`StudentName`,`city`,`sex`,`birthday`,`desc`) VALUES (1,'tom','河南','男','2018-05-02 00:00:00','青鸟学生'),(2,'jim','河北','男','2018-10-05 00:00:00','高中生'),(3,'lucy','山东','女','2018-06-21 00:00:00','小学生'),(4,'jeery','山西','女','2017-09-30 00:00:00','初中生'),(5,'王子','北京','男','1998-10-28 00:00:00','毕业生');

Pojo层:写与数据库中的对应数据get/set方法

Dao层:

        01:StudentDao :

public interface StudentDao {
    //展示所有信息
    List<Student> getAll();
    //模糊查询
    List<Student> getStudentLikeName(String studentName);
    //修改学生信息
    int updateStudentById(Student student);
    //删除学生信息
    int deleteStudentById(int studentId);
}

        02:impl下的StudentDaoImpl 

public class StudentDaoImpl extends BaseDao implements StudentDao {
    @Override
    public List<Student> getAll() {
        String sql="SELECT * FROM student";
        ResultSet rs = this.executeQuery(sql, null);
        List<Student> studentList=new ArrayList<>();
        try {
            while (rs.next()){
                Student student =new Student();
                student.setStudentId(rs.getInt("StudentId"));
                student.setStudentName(rs.getString("StudentName"));
                student.setCity(rs.getString("city"));
                student.setSex(rs.getString("sex"));
                student.setBirthday(rs.getDate("birthday"));
                student.setDesc(rs.getString("desc"));
                studentList.add(student);
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return studentList;
    }

    @Override
    public List<Student> getStudentLikeName(String studentName) {
        String sql="SELECT * FROM student WHERE StudentName LIKE ?";
        studentName="%"+studentName+"%";
        Object[] objects={studentName};
        ResultSet rs = this.executeQuery(sql, objects);
        List<Student> studentList=new ArrayList<>();
        try {
            while (rs.next()){
                Student student =new Student();
                student.setStudentId(rs.getInt("StudentId"));
                student.setStudentName(rs.getString("StudentName"));
                student.setCity(rs.getString("city"));
                student.setSex(rs.getString("sex"));
                student.setBirthday(rs.getDate("birthday"));
                student.setDesc(rs.getString("desc"));
                studentList.add(student);
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return studentList;
    }

    @Override
    public int updateStudentById(Student student) {
        String sql="UPDATE student SET StudentName=?, city=?,sex=?,birthday=?,`desc`=? WHERE StudentId=?";
        Object[] objects={student.getStudentName(),student.getCity(),student.getSex(),student.getBirthday(),student.getDesc(),student.getStudentId()};
        return this.executeUpdate(sql,objects);
    }
    @Override
    public int deleteStudentById(int studentId) {
        String sql="DELETE FROM student  where studentId=?";
        Object[] objects={studentId};
        return this.executeUpdate(sql,objects);
    }

Service层:

        01:StudentService 

public interface StudentService {
    //展示所有信息
    List<Student> getAll();
    //模糊查询
    List<Student> getStudentLikeName(String studentName);
    //修改学生信息
    boolean updateStudentById(Student student);
    //删除学生信息
    boolean deleteStudentById(int studentId);
}

        02:StudentServiceimpl 

public class StudentServiceimpl implements StudentService {
    //数据访问层
    StudentDao sd=new StudentDaoImpl();
    @Override
    public List<Student> getAll() {
        return sd.getAll();
    }

    @Override
    public List<Student> getStudentLikeName(String studentName) {
        return sd.getStudentLikeName(studentName);
    }

    @Override
    public boolean updateStudentById(Student student) {
        if (sd.updateStudentById(student)>0){
            return true;
        }
        return false;
    }

    @Override
    public boolean deleteStudentById(int studentId) {
        if (sd.deleteStudentById(studentId)>0){
            return  true;
        }
        return false;
    }

Servlet层:

@WebServlet("/StudentServlet")
public class StudentServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //解决乱码问题
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        //处理响应乱码
        response.setContentType("text/html;charset=utf-8");
        //-------------------------
        String path = request.getParameter("path");
        //创建业务逻辑层
        StudentService ss=new StudentServiceimpl();
        //创建session
        HttpSession session = request.getSession();
        if (path==null){
            //用户第一次进入,查询全部
            List<Student> students=ss.getAll();
            //把集合存入到session中
            session.setAttribute("students",students);
            response.sendRedirect("show.jsp");

        }else if (path.equals("like")){
            //模糊查询
            //从前台获取文本框中的内容
            String name = request.getParameter("stuName");
            List<Student> students = ss.getStudentLikeName(name);
            //把集合存入session
            session.setAttribute("students",students);
            response.sendRedirect("show.jsp");
        }else  if (path.equals("del")){
            String idStr = request.getParameter("id");
            //转换为int
            int id =Integer.valueOf(idStr);
            //调用删除的方法
            boolean flag=ss.deleteStudentById(id);
            response.getWriter().print(flag);
            response.getWriter().flush();
            response.getWriter().close();
        }else if (path.equals("update")){
            //修改学生信息
            String name = request.getParameter("stuName");
            String city = request.getParameter("city");
            String sex = request.getParameter("sex");
            String birthday = request.getParameter("birthday");
            String desc = request.getParameter("desc");
            String idStr = request.getParameter("stuId");
            int id=Integer.valueOf(idStr);

            System.out.println(name);
            System.out.println(city);
            Date b=null;
            //转换日期
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
            //转换日期
            try {
                b=sdf.parse(birthday);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            //准备一个Student对象
            Student student=new Student();
            student.setStudentId(id);
            student.setStudentName(name);
            student.setCity(city);
            student.setSex(sex);
            student.setBirthday(b);
            student.setDesc(desc);
            //调用修改的方法
            boolean flag = ss.updateStudentById(student);
            System.out.println(flag);
            if (flag){
                response.getWriter().print("<script>alert('登陆成功');window.location='StudentServlet';</script>");
            }else {
                response.getWriter().print("<script>alert('登陆失败');window.location='StudentServlet';</script>");
            }
        }

页面 jsp层:

        01:show.jsp:

<%@ 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>
  <script src="jquery-1.8.0.min.js"></script>
</head>
<body>
<table align="center">
  <tr>
    <th colspan="7">学生信息</th>
  </tr>
  <tr>
    <td colspan="7">
      <form action="StudentServlet?path=like" method="post">
      姓名:<input type="text" name="stuName"><input type="submit" value="搜索">
      </form>
    </td>
  </tr>
  <tr>
    <td>编号</td>
    <td>姓名</td>
    <td>地址</td>
    <td>性别</td>
    <td>出生日期</td>
    <td>备注</td>
    <td>操作</td>
  </tr>
  <c:forEach var="stu" items="${students}">
    <tr id="N${stu.studentId}">
      <td>${stu.studentId}</td>
      <td>${stu.studentName}</td>
      <td>${stu.city}</td>
      <td>${stu.sex}</td>
      <td>${stu.birthday}</td>
      <td>${stu.desc}</td>
      <td><a href="update.jsp?id=${stu.studentId}">修改</a>&nbsp;&nbsp;<a href="javascript:;" onclick="del(${stu.studentId})">删除</a></td>
    </tr>
  </c:forEach>
</table>
<script>
  function del(id) {
    $.get("StudentServlet","path=del&id="+id,function (data) {
      if (data=="true"){   //页面删除
        var tr=$("#N"+id);
        tr.remove();
      }
    },"text")
  }
  $("tr:odd").css("background","pink");
  $("tr:even").css("background","red");

</script>
</body>
</html>

        02:update.jsp:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
  String idStr=request.getParameter("id");
  Integer id = Integer.valueOf(idStr);
  session.setAttribute("id",id);
%>
<form action="StudentServlet?path=update" method="post">
  <c:forEach var="student" items="${students}">
    <c:if test="${student.studentId==sessionScope.id}">
  <table border="1">
    <tr>
      <td>编号:<input type="text" name="stuId" value="${student.studentId}"></td>
    </tr>
      <tr>
        <td>姓名:<input type="text" name="stuName" value="${student.studentName}"></td>
      </tr>
    <tr>
      <td>地址:<input type="text" name="city" value="${student.city}"></td>
    </tr>
    <tr>
      <c:if test="${student.sex=='男'}">
        <td>性别:<input type="radio" name="sex" value="男" checked>男
          <input type="radio" name="sex" value="女">女
        </td>
      </c:if>
      <c:if test="${student.sex =='女'}">
        <td>性别:<input type="radio" name="sex" value="男" >男
          <input type="radio" name="sex" value="女" checked>女
        </td>
      </c:if>
    </tr>
    <tr>
      <td>出生日期:<input type="text" name="birthday" value="${student.birthday}"></td>
    </tr>
    <tr>
      <td>备注:<input type="text" name="desc" value="${student.desc}"></td>
    </tr>
    <tr>
      <td><input type="submit" value="提交"></td>
    </tr>
  </table>
    </c:if>
  </c:forEach>
</form>
</body>
</html>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web功能实现(1.展示全部2.模糊查询3.修改用户4.删除用户) 的相关文章

  • 如何判断是哪个控件导致ViewState加载失败?

    我的页面面临 Viewstate 加载问题 页面有一个登录工具来登录管理员和非管理员用户 当非管理员用户登录页面并单击启用了自动回发的复选框时 会出现奇怪的行为 错误详情如下 后来我发现 在左侧的导航面板中 承载链接 侧边栏如下图所示 Se
  • 将网页中的表格导入 Excel

    我只有中高级的Excel水平和中级的VBA与Excel背景 我想要做的是从链接中显示的网页导入表格 http www admission unmsm edu pe res20130914 A 011 0 html http www admi
  • 如何在 Laravel 7.x 中从控制器返回视图时传递 cookie?

    在 laravel 7 x 中 有什么方法可以在返回视图时将 cookie 传递给客户端吗 类似于 return view welcome gt cookie name value min 嗯 我做了一些研究 发现有一些方法 我熟悉的两个是
  • Ant Design Collapse - 关闭按钮

    我是 Ant Design 的初学者 在使用 Ant Design 库中的 Collapse 和 Form 时遇到了这个问题 我已经设置了我的页面 其中添加新项目的表单位于折叠中 并且折叠下方有一个项目列表
  • Tomcat 是否立即支持 JAX-RS(它是否支持 JAX-RS)?

    从教材 RESTful Java with JAX RS 中我们可以读到 如果我们的应用程序服务器是 JAX RS 感知的 或者换句话说 与 JAX RS 紧密集成 则声明我们的ShoppingApplication作为 servlet 的
  • IIS 6 网站根目录与应用程序?解决Url()?

    IIS 6 ASP NET 3 5 C NET 我们遇到一个问题 即同一组文件的行为会有所不同 具体取决于它是根 IIS 网站还是 IIS 网站下的应用程序 使用生成的网址解析网址 http msdn microsoft com en us
  • URL中的gs_upl是什么意思?

    在任何谷歌搜索 URL 中 gs upl 是什么意思 例如 那么 gs upl 1045l1663l0l3648l4l4l0l0l0l0l258l682l0 3 1l4l0 在这里意味着什么 从构建的脚本gs upl j 我找到 funct
  • 如何将 html 输入到 Flask 中?

    我有这个 html 位
  • JavaScript 中的对象解构[重复]

    这个问题在这里已经有答案了 gt a a true Statement lt a true 上面的语句是赋值true to a 为什么上面的语句在chrome控制台中没有报错 虽然下面的语句给出了错误 gt a a true Stateme
  • 使用内容安全策略防止 Internet Explorer 11 上的内联 JavaScript

    是否可以使用 ASP NET WebForm 上的 CSP 来阻止 Internet Explorer 11 上的内联 JavaScript 我知道 IE 11 不支持内容安全策略级别 2 但它支持级别 1 0 我尝试了很多方法 但没有明确
  • Jekyll 在子网站上生成静态网站?

    是否可以将 Jekyll 放在 GitHub 上托管的网站的单个部分上 即是否可以让 example github io 成为常规站点 而 example github io blog 由 Jekyll 静态生成 我相信可以通过创建另一个名
  • 单击链接时启动本地应用程序

    我正在开发一个内部 Web 应用程序 它允许我为客户存储远程控制凭据 每次我想要连接到客户计算机时 我都需要启动远程支持软件 复制并粘贴用户名和密码 然后单击 开始 按钮 该软件将具有可用的命令行参数 允许我立即启动会话 但是 我不知道如何
  • Java selenium - 如何在 TimeoutException 之后正确刷新网页?

    ChromeOptions options new ChromeOptions options addExtensions new File extension 6 2 5 0 crx ZenMate options addExtensio
  • php 中的 stackoverflow 上有这样的成就系统吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 从概念上讲 如何使用 PHP 和 MySQL 为网站编写一个成就系统 唯一真正的方法是不断执行 MySQL 查询来测试成绩等吗 您有两
  • MVC4更新部分视图

    我正在开发一个简单的 MVC 应用程序 我有主视图 部分视图和控制器 这是我的主要视图 model partitalViewTest Models Qset div class transbox style height 1 Html Pa
  • 在脚本标签内工作的角度表达式

    如何在脚本标签内使用角度表达式 我对此很陌生并且需要帮助 这是我的 java 脚本代码的示例
  • Chrome:网络元素自动移动

    我正在开发一个网络项目 在过去的两周里 我正在进行学期考试 所以我要休息一下 现在 既然他们已经结束了 我又继续我的工作了 但我发现我的一些Web 元素 如按钮 span 在 Chrome 上移动了一些像素 在 IE 和 Mozilla 上
  • IIS 8 HTTPS/需要 SSL 导致超时错误

    尝试通过 IIS 8 通过 SSL 发布网站 但出现超时错误 任何帮助表示赞赏 采取的步骤 已验证该网站可以通过 HTTP 访问 http xxx xxx xxx xxx有效 此时使用 IP 地址 如果重要的话 IIS gt 服务器证书 g
  • 发送变量后的 wsdl 服务响应,php

    我是 SOAP WSDL 函数的新手 我有一位客户从一家从事汽车测试的公司获得了 wsdl 文件 我的客户是他们的分包商 他们告诉我们上传有关车牌 类别等信息 一旦详细信息发送完毕 服务器就会做出成功或失败的响应 请您协助 浏览不同的信息
  • Web 应用程序使用 API 来完成一切?

    我即将开始为我的公司规划一个内部项目管理工具 API 一直让我疑惑 首先创建 API 并使用这些 API 调用构建实际站点而不是实施两次 是否会被视为不好的做法 效率太低 让我知道你的想法 我完全同意开发 API 将为您提供解耦的架构 并且

随机推荐

  • web前端技术笔记(八)屏幕适配、移动端布局

    屏幕适配 移动端与PC端页面布局区别 视口 视网膜屏幕 retina屏幕 清晰度解决方案 适配布局类型 PC及移动端页面适配方法 流体布局 响应式布局 基于rem的布局 流体布局案例 不常用 rem布局案例 CSS3 浏览器前缀 浏览器样式
  • 【mysql+tableau实战】电商用户行为数据分析

    正文共3289字 今年2月做的项目 为了求职又梳理了一遍 希望能进一步提升自己的数据分析思维 博客名字改失败了 得4月中旬才能修改 cry 目录 一 前期准备 一 数据集下载 二 软件下载 1 kettle 2 mysql8 0 3 tab
  • Grafana任意文件读取

    Grafana任意文件读取 漏洞描述 Grafana存在任意文件读取漏洞 通过默认存在的插件 可构造特殊的请求包读取服务器任意文件 影响版本 Grafana 8 x 漏洞复现 POC HTTP XXX XXX XXX XXX public
  • linux频繁读写i2c,ZYNQ7020 在Linux下I2C频繁读取导致系统崩溃

    I2C连续频繁读取单字节 读取频率20hz 每次读写20次 每次需要读取不同地址单字节 系统崩溃前多次出现i2c连接超时错误 一款传感器芯片 崩溃时间不定 几个小时崩溃 有时几分钟崩溃 cdns i2c e0004000 i2c timeo
  • Process finished with exit code 137 (interrupted by signal 9: SIGKILL)

    程序争取运行结束的提示是 Process finished with exit code 0 如果程序出现Process finished with code 137 interrupted by signal 9 SIGKILL 程序并没
  • selenium webdriver (python)的基本用法一

    前言 对于大多软件测试人员来讲缺乏编程经验 指项目开发经验 大学的 C 语言算很基础 的编程知识 一直是难以逾越的鸿沟 并不是说测试比开发人员智商低 是国内的大多测试 岗位是功能测试为主 在工作时间中 我们很难深入的接触和使用编程技术 笔者
  • [Python人工智能] 十六.Keras环境搭建、入门基础及回归神经网络案例

    从本专栏开始 作者正式研究Python深度学习 神经网络及人工智能相关知识 前一篇文章详细讲解了无监督学习Autoencoder的原理知识 然后用MNIST手写数字案例进行对比实验及聚类分析 这篇文章将开启Keras人工智能的学习 主要分享
  • 共享虚拟主机是不是服务器,共享虚拟主机是什么意思

    共享虚拟主机是什么意思 发布时间 2020 10 15 16 49 47 来源 亿速云 阅读 69 作者 Leah 栏目 云计算 这篇文章将为大家详细讲解有关共享虚拟主机是什么意思 文章内容质量较高 因此小编分享给大家做个参考 希望大家阅读
  • 微信小程序开发之详解生命周期方法

    生命周期是指一个小程序从创建到销毁的一系列过程 在小程序中 通过App 来注册一个小程序 通过Page 来注册一个页面 先来看一张小程序项目结构 根目录下面有包含了app js app wxss app json三个文件 这是小程序的全局文
  • c++模板的成员模板

    成员模板 成员模板 一个类 无论是普通类还是模板类 可以包含本身是模板的成员函数 成员模板不能是虚函数 普通类的成员模板 class DebugDelete public DebugDelete std ostream s std cerr
  • 在一定范围内的 Hash 爆破尝试

    爆破 SHA1 import hashlib cipher 6E32D0943418C2C33385BC35A1470250DD8923A9 lower for i in range 49 58 for j in range 48 58 f
  • CSS中使用flex弹性布局实现上下左右垂直居中排列并设置子元素之间的间距

    场景 Flex是Flexible Box的缩写 意为 弹性布局 怎样使用弹性布局实现页面上下两个元素上下左右垂直居中排列 实现如下类似布局 最外层是是一个div div里面是上面一个照片 下面一个表单 这两个元素居中排列 注 博客 霸道流氓
  • Unity3D镜头眩光组件Lens Flare

    在自然界中 由于亮度差异过大的时候 容易产生镜头眩光 为了增加场景的真实性 某些情况下我们也需要用到该组件 右键点击创建一个新的flare 这是个结构比较简单的组件 只需要拖入眩光的图片即可 然后在产生眩光的灯光上添加lens Flare组
  • 刀剑乱舞网页服务器闪退,刀剑乱舞无法打开怎么办 刀剑乱舞闪退解决方法

    刀剑乱舞无法打开怎么办 刀剑乱舞闪退解决方法 有些网友在玩游戏时 刀剑乱舞游戏无法打开 这是怎么回事呢 下面我们就一起来看看刀剑乱舞闪退解决方法吧 刀剑乱舞手游卡了怎么办 卡机闪退解决方法有哪些 刀剑乱舞手游今天开服 不少玩家遇到了卡机和闪
  • shell通过fio工具进行磁盘性能测试

    一 环境准备 已安装fio工具可忽略此步骤 准备一台centos服务器 要求能够访问互联网 安装fio工具 yum y install fio fio version 二 脚本内容 直接复制脚本到自己的主机中 我这里命名为fio sh bi
  • css玻璃雨滴效果,CSS实现雨滴动画效果的实例代码

    玻璃窗 今天我们要实现的是雨滴效果 不过实现雨滴前 我们先把毛玻璃的效果弄出来 没有玻璃窗 雨都进屋了 还有啥好敲打的 window position absolute width 100vw height 100vh background
  • 【C++】右值引用(极详细版)

    在讲右值引用之前 我们要了解什么是右值 那提到右值 就会想到左值 那左值又是什么呢 我们接下来一起学习 目录 1 左值引用和右值引用 1 左值和右值的概念 2 左值引用和右值引用的概念 2 左值引用和右值引用引出 3 右值引用的价值 1 补
  • Javascript 正则表达式使用手册 .

    一 正则表达式匹配常用语法 字符 规定表达式字符出现一次或多次 字符 规定表达式字符出现零次或多次 字符 规定表达式字符出现零次或一次 匹配的是字符的开头 匹配的是一行的开头 匹配的是字符的结尾 匹配的是一行的结尾 b 匹配的是一个词语的边
  • 通过FXmlFile构建xml时,注意xml规范

    直接说问题 构建xml时 用 FXmlFile dependencyXMLFile new FXmlFile dependencyXML EConstructMethod ConstructFromBuffer 失败 原因时 构建depen
  • Web功能实现(1.展示全部2.模糊查询3.修改用户4.删除用户)

    需求 1 展示全部 2 模糊查询 3 修改用户 4 删除用户 首先写数据库脚本 CREATE DATABASE 32312 IF NOT EXISTS test 40100 DEFAULT CHARACTER SET utf8 USE te