javaweb入门版学生信息管理系统-增删改查+JSP+Jstl+El

dao


public class StudentDao {QueryRunner queryRunner = QueryRunnerUtils.getQueryRunner();//查询全部学生信息public List<Student> selectStudent(){String sql = "select * from tb_student";List<Student> students = null;try {students =queryRunner.query(sql, new BeanListHandler<>(Student.class));} catch (SQLException e) {e.printStackTrace();}return students;}//根据学生姓名查询信息public List<Student> selectName(String username){String sql = "select * from tb_student where sname = ? ";List<Student> list = null;try {list = queryRunner.query(sql, new BeanListHandler<>(Student.class), username);} catch (SQLException e) {e.printStackTrace();}return list;}//添加一条学生信息public int insert(String username,int age,String sex,String email){int rows = 0;String sql = "insert into tb_student(sname,sage,ssex,semail) values(?,?,?,?)";try {rows = queryRunner.update(sql, username, age, sex, email);} catch (SQLException e) {e.printStackTrace();}return rows;}//删除一条学生信息public int delete(int id){String sql = "delete from tb_student where sid = ?";int rows = 0;try {rows = queryRunner.update(sql, id);} catch (SQLException e) {e.printStackTrace();}return rows;}//修改学生信息public int update(int id,String username,int age,String sex,String email){String sql = "update tb_student set sname=?,sage=?,ssex=?,semail=? where sid = ?";int rows = 0;try {rows = queryRunner.update(sql, username, age, sex, email, id);} catch (SQLException e) {e.printStackTrace();}return rows;}
}

 

<%@ page import="com.etime.entity.Student" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head><title>学生信息</title>
</head>
<body>
<div align="center"><h1>学生信息</h1><%--添加学生--%><a href="insertStudent.jsp"><button>新增</button></a><%--显示全部学生信息--%><a href="StudentServlet?type=student"><button>查看全部</button></a><%--搜索学生信息--%><form action="StudentServlet" method="get"><input type="hidden" name="type" value="selectName"><input type="text"  name="selectText" placeholder="请输入要查询的人的姓名"><input type="submit" value="搜索"></form><%--展示学生信息--%><table border="2" cellpadding="0" cellspacing="0" align="center"><tr></tr><tr><th>学号</th><th>姓名</th><th>年龄</th><th>性别</th><th>邮箱</th><th>操作</th></tr><%-- 优化版--%><c:forEach var="stu" items="${list}"><tr><td>${stu.sid}</td><td>${stu.sname}</td><td>${stu.sage}</td><td>${stu.ssex}</td><td>${stu.semail}</td><td><a href="updateStudent.jsp?id=${stu.sid}&name=${stu.sname}&age=${stu.sage}&sex=${stu.ssex}&email=${stu.semail}"><input type="button" value="修改"></a><a href="StudentServlet?type=delete&id=${stu.sid}"><input type="button" value="删除"></a></td></tr></c:forEach></table><a href="PaginationServlet?type=first"><button>首页</button></a><a href="">上一页</a>1/12<a href="">下一页</a><a href="PaginationServlet?type=last">尾页</a>
</div>
</body>
</html>

 servlet

package com.etime.servlet;import com.etime.dao.StudentDao;
import com.etime.entity.Student;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;@WebServlet(name = "StudentServlet", value = "/StudentServlet")
public class StudentServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//防止乱码request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String type = request.getParameter("type");//获取学生数据StudentDao studentDao = new StudentDao();if ("student".equals(type)) {List<Student> studentList = studentDao.selectStudent();request.setAttribute("list", studentList);request.getRequestDispatcher("showStudent.jsp").forward(request, response);//获取字符流,将数据显示出来/* PrintWriter writer = response.getWriter();writer.print("<h1>学生信息</h1>");for (Student student : studentList) {writer.println(student + "<br>");}writer.close();*/} else if ("selectName".equals(type)) {String selectText = request.getParameter("selectText");List<Student> list = studentDao.selectName(selectText);request.setAttribute("list", list);request.getRequestDispatcher("showStudent.jsp").forward(request, response);} else if ("insertStudent".equals(type)) {String name = request.getParameter("name");int age = Integer.parseInt(request.getParameter("age"));String sex = request.getParameter("sex");String email = request.getParameter("email");int i = studentDao.insert(name, age, sex, email);if (i != 0) {request.setAttribute("state", "添加成功!");request.getRequestDispatcher("index.jsp").forward(request, response);//response.sendRedirect("showStudent.jsp");} else {request.setAttribute("state", "添加失败!");request.getRequestDispatcher("index.jsp").forward(request, response);//response.sendRedirect("insertStudent.jsp");}} else if ("delete".equals(type)) {int id = Integer.parseInt(request.getParameter("id"));int i = studentDao.delete(id);if (i != 0) {request.setAttribute("state", "删除成功!");request.getRequestDispatcher("index.jsp").forward(request, response);} else {request.setAttribute("state", "删除失败");request.getRequestDispatcher("index.jsp").forward(request, response);}} else if ("newUpdate".equals(type)){String name = request.getParameter("name");//int age = Integer.parseInt(request.getParameter("age"));String age = request.getParameter("age");String sex = request.getParameter("sex");String email = request.getParameter("email");int id = Integer.parseInt(request.getParameter("id"));int i = studentDao.update(id, name, Integer.parseInt(age), sex, email);if (i != 0) {request.setAttribute("state", "修改成功!");request.getRequestDispatcher("index.jsp").forward(request, response);} else {request.setAttribute("state", "修改失败!");request.getRequestDispatcher("index.jsp").forward(request, response);}}}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}

部分。。。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/66524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从C语言到C++_36(智能指针RAII)auto_ptr+unique_ptr+shared_ptr+weak_ptr

目录 1. 智能指针的引入_内存泄漏 1.1 内存泄漏 1.2 如何避免内存泄漏 2. RAII思想 2.1 RAII解决异常安全问题 2.2 智能指针原理 3. auto_ptr 3.1 auto_ptr模拟代码 4. unique_ptr 4.1 unique_ptr模拟代码 5. shared_ptr 5.1 shared_ptr模拟代码 5.2 循环引用 6.…

数据可视化与数字孪生:理解两者的区别

在数字化时代&#xff0c;数据技术正在引领创新&#xff0c;其中数据可视化和数字孪生是两个备受关注的概念。尽管它们都涉及数据的应用&#xff0c;但在本质和应用方面存在显著区别。本文带大探讨数据可视化与数字孪生的差异。 概念 数据可视化&#xff1a; 数据可视化是将复…

学习振弦采集模块的开发基本原理

飞讯教学篇&#xff1a;学习振弦采集模块的开发基本原理 振弦采集模块是一种用于测量物体振动、形变、压力等物理量的电子设备。它通过测量物体的振动变化&#xff0c;可以得出物体在不同条件下的动态特性&#xff0c;对于工程设计、科学研究、医学检测等领域都有广泛应用。本…

对话出海企业:2023亚马逊云科技出海日圆桌论坛

在全球经济亟待复苏的今天&#xff0c;持续对外开放是中国未来经济发展重要的“两条腿”之一。在愈发饱和的国内市场&#xff0c;中国企业需要对外寻找全新机遇才能在未来不确定的市场博弈下生存下去。“出海”&#xff0c;也成为近几年最炙手可热的词汇之一&#xff0c;大量中…

字符型注入([SWPUCTF 2021 新生赛]easy_sql)

拿到题目&#xff0c;查看源码&#xff0c;可知是要输入参数wllm。 输入参数/?wllm1&#xff0c;得到会显 继续输入参数/?wllm1&#xff0c;报错&#xff0c;确定为字符型漏洞 1.查看字段列表&#xff0c;发现在字段4报错&#xff0c;确定为3列 ?wllm-1 order by 3-- ?wl…

QT DAY 2

window.cpp #include "window.h" #include<QDebug> #include<QIcon> Window::Window(QWidget *parent) //构造函数的定义: QWidget(parent) //显性调用父类的构造函数 {//this->resize(430,330);this->resize(QSize(800,600));// this…

数据结构——单调栈

前导&#xff1a; 队列&#xff0c;栈&#xff0c;前面的链接是对普通的栈&#xff0c;和普通的队列的一个讲解&#xff0c;如果没有对普通的栈和队列不了解的小伙伴可以先看看前面链接中的讲解&#xff1b; 什么是单调&#xff0c;一个序列呈递增或者递减&#xff0c;并且没有…

Spring-Kafka生产者源码分析

文章目录 概要初始化消息发送小结 概要 本文主要概括Spring Kafka生产者发送消息的主流程 代码准备&#xff1a; SpringBoot项目中maven填加以下依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent&…

Flink提交jar出现错误RestHandlerException: No jobs included in application.

今天打包一个flink的maven工程为jar&#xff0c;通过flink webUI提交&#xff0c;发现居然报错。 如上图所示&#xff0c;提示错误为&#xff1a; Server Response Message: org.apache.flink.runtime.rest.handler.RestHandlerException: No jobs included in application. …

Java 线程池概念总结(thread pool)

一、池化思想的应用 池化思想是一种常见软件设计和优化技术。以下是几个常见池化思想应用场景&#xff1a; 线程池&#xff1a;线程池是池化思想一个典型应用。通过预先创建一组线程并将它们置于就绪状态&#xff0c;以复用线程减少线程创建和销毁的开销&#xff0c;并提高系统…

Nginx特性应用及载装

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上nginx的并发能力在同类型的网页服务器中表现较好&#xff0c;中国大陆使用nginx的网站有&#xff1a;网易、腾讯、阿里等。 …

MyBatis-Plus —— 初窥门径

前言 在前面的文章中荔枝梳理了MyBatis及相关的操作&#xff0c;作为MyBatis的增强工具&#xff0c;MyBatis-Plus无需再在xml中写sql语句&#xff0c;在这篇文章中荔枝将梳理MyBatis-Plus的基础知识并基于SpringBoot梳理MyBatis-Plus给出的两个接口&#xff1a;BaseMapper和ISe…

对象模型和this指针(个人学习笔记黑马学习)

1、成员变量和成员函数 #include <iostream> using namespace std; #include <string>//成员变量和成员函数分开存储class Person {int m_A;//非静态成员变量 属于类的对象上的static int m_B;//静态成员变量 不属于类的对象上void func() {} //非静态成员函数 不…

供应链 | 顶会CIKM论文精读:面向大规模三维装箱问题的数据驱动树形搜索算法

论文解读&#xff1a;丁建辉&#xff0c;李明哲&#xff0c;赵艳蓉&#xff0c;孙楚天 编者按 本次解读的文章发表于CCF-B类会议30th ACM International Conference on Information and Knowledge Management。摘要总结如下&#xff1a; 3维装箱问题&#xff08;3D-BPP&#…

Redis的缓存穿透,缓存击穿,缓存雪崩

1. 缓存穿透 什么是缓存穿透&#xff1f; 缓存穿透说简单点就是大量请求的 key 是不合理的&#xff0c;根本不存在于缓存中&#xff0c;也不存在于数据库中 。这就导致这些请求直接到了数据库上&#xff0c;根本没有经过缓存这一层&#xff0c;对数据库造成了巨大的压力&…

雪花算法生成id分析与实践

目录 1 什么是雪花算法&#xff1f; 结构 优点 缺点 2 在java中使用 使用注意&#xff1a; 测试代码 效果 1 什么是雪花算法&#xff1f; witter的雪花算法&#xff08;Snowflake Algorithm&#xff09;。雪花ID是一种分布式唯一ID生成算法&#xff0c;旨在解决分布式…

数学建模-点评笔记 9月3日

1.摘要&#xff1a;关键方法和结论&#xff08;精炼的语言&#xff09;要说明&#xff0c;方法的合理性和意义也可以说明。 评委先通过摘要筛选&#xff08;第一轮&#xff09; 2.时间序列找异常值除了3西格玛还有针对时间序列更合适寻找的方法 3.模型的优缺点要写的详细一点…

世微AP9234 升压型DC/DC LED恒流驱动

描述 AP9234是一款由基准电压源、振荡电路、误差放大电路、相位补偿电路、电流限制电路等构成的CMOS升压型DC/DC LED驱动。由于内置了低导通电阻的增强型N沟道功率MOSFET&#xff0c;因此适用于需要高效率、高输出电流的应用电路。另外&#xff0c;可通过在VSENSE端子连接电流…

754. 到达终点数字

754. 到达终点数字 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 754. 到达终点数字 https://leetcode.cn/problems/reach-a-number/description/ 完成情况&#xff1a; 解题思路&#xff1a; 牛顿莱布尼茨梯…

SWAT-MODFLOW地表水与地下水耦合

耦合模型被应用到很多科学和工程领域来改善模型的性能、效率和结果&#xff0c;SWAT作为一个地表水模型可以较好的模拟主要的水文过程&#xff0c;包括地表径流、降水、蒸发、风速、温度、渗流、侧向径流等&#xff0c;但是对于地下水部分的模拟相对粗糙&#xff0c;考虑到SWAT…