我的界面大概是这个样子,简单版本,没美化,数据库用的sqlserver,建立三个表 学生表、教员表、班级表

1.增加 

1.1增加是个a标签,下面是增加界面

1.2确定按钮提交表单,增加成功存到数据库,否则回到主界面

1.3重置按钮可清空表格所填信息  按钮属性type="reset" 即可做到

2.删除

2.1根据学生id删除

2.2删除时弹出一个提示框,可取消删除,用到js的comfirm提示框

2.3取消和删除后会回到主界面,并且删除后提示删除成功

3.修改

3.1修改界面与增加界面一致

3.2点击修改时需要把id传到servlet中查询对应的学生

3.3然后将查询到的学生传到界面显示信息

3.4复选框的回显:将爱好根据逗号切割(split())成为一个数组,遍历该数组,对每个复选框进行判断,遍历的值与复选框的值一致则默认选中,具体操作看下面代码

servlet:

package com.Servlet;import java.io.IOException;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 com.dao.StudentDao;
import com.entity.student;
@WebServlet("/updshow.do")
public class UpdShowServlet extends HttpServlet{protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");int sid = Integer.parseInt(req.getParameter("sid"));student s = new StudentDao().byids(sid);String sah = s.getSah();//切割String[] split = sah.split(",");req.setAttribute("s", s);req.setAttribute("split", split);req.getRequestDispatcher("upd.jsp").forward(req, resp);}}

jsp:

4.分页模糊查询

sqlserver的分页语句:

select * from (select *,row_number() over(order by sid) as rowid from student
)as b where rowid between 1 and 3

4.1模糊查询的关键字有三个 :教员 班级 爱好

4.2教员和班级为下拉框 默认选中第一个,爱好可勾选可不勾选 不勾选时默认为空字符串,勾选时通过逗号拼接起来进行模糊查询

4.3查询后默认分页,我这里是两条一页,点下一页时将下一页的页数和模糊查询的关键字传到servlet中

4.4输入框分页:根据输入的页码跳转界面,我这里是用表单将输入框的GO按钮装起来,点击go提交表单,关键字通过隐藏的输入框带过去进行查询,具体操作看下面代码

4.5首页和尾页的跳转,就是将1和最大的页码数和关键字信息传到servlet中

​
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
#t1{
margin: auto;
text-align: center;
width: 600px;
height: 300px
}
table,tr,td{
border-collapse: collapse;
}
#inp{
text-align: center;
}
#p{
text-align: center;
}
#but{
background-color: orange;
}
#go{
border: none;
}
</style>
</head>
<body>
<form action="key.do">
<div id="inp"><button id="but">查询</button>&nbsp;<a href="add.jsp">新增</a></div>
<table border="" id="t1">
<tr>
<td colspan="6">
教员:
<select name="teacher">
<c:forEach var="i" items="${ allT }">
<option value="${ i.tname }" ${ i.tname==teacher?"selected":"" }>${ i.tname }</option>
</c:forEach>
</select>
班级:
<select name="sclass">
<c:forEach var="i" items="${ allC }">
<option value="${ i.sclazz }" ${ i.sclazz==sclass?"selected":"" }>${ i.sclazz }</option>
</c:forEach>
</select>
爱好:
<input type="checkbox" name="ah" value="篮球" <c:forEach var="i" items="${ split }">
<c:if test="${ i=='篮球' }"> checked
</c:if>
</c:forEach>
>篮球
<input type="checkbox" name="ah" value="唱歌" <c:forEach var="i" items="${ split }">
<c:if test="${ i=='唱歌' }"> checked
</c:if>
</c:forEach>
>唱歌
<input type="checkbox" name="ah" value="足球" <c:forEach var="i" items="${ split }">
<c:if test="${ i=='足球' }"> checked
</c:if>
</c:forEach>
>足球
<input type="checkbox" name="ah" value="跳舞" <c:forEach var="i" items="${ split }">
<c:if test="${ i=='跳舞' }"> checked
</c:if>
</c:forEach>
>跳舞
</td>
</tr>
</form>
<tr>
<td>学生ID</td>
<td>学生姓名</td>
<td>学生教员</td>
<td>班级</td>
<td>学生爱好</td>
<td>操作</td>
</tr>
<c:forEach var="i" items="${ list }">
<tr>
<td>${ i.sid }</td>
<td>${ i.sname }</td>
<td>${ i.tname }</td>
<td>${ i.sclass }</td>
<td>${ i.sah }</td>
<td><a href="del.do?sid=${ i.sid }">删除</a><a href="updshow.do?sid=${ i.sid }">修改</a></td>
</tr>
</c:forEach>
</table>
<div id="p">第${ pages }页,共${ max }页,总记录${ m }条,
<a href="key.do?aid=1&teacher=${ teacher }&sclass=${ sclass }&ah=${ ah }">首页</a>,
<a href="key.do?aid=${ pages-1<1?1:pages-1 }&teacher=${ teacher }&sclass=${ sclass }&ah=${ ah }">上一页</a>,
<form action="key.do"><input style="width: 20px" name="aid">
<input style="width: 20px" name="teacher" value="${ teacher }" type="hidden">
<input style="width: 20px" name="sclass" value="${ sclass }" type="hidden">
<input style="width: 20px" name="ah" value="${ ah }" type="hidden">
<button id="go">Go</button></form>,
<a href="key.do?aid=${ pages+1>max?max:pages+1 }&teacher=${ teacher }&sclass=${ sclass }&ah=${ ah }">下一页</a>,
<a href="key.do?aid=${ max }&teacher=${ teacher }&sclass=${ sclass }&ah=${ ah }">尾页</a></div>
</body>
</html>​

注意:模糊查询的分页和进入主界面的没有模糊查询的分页参数不能相同,不然会分页错误哦!我用的是pid和aid

5.dao包所有方法

每个方法都有注释

package com.dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;import com.entity.clazz;
import com.entity.student;
import com.entity.teacher;
import com.util.DBHelper;/*** 方法类* @author zjjt**/
public class StudentDao {/*** 查询全部学生* @return*/public List<student> getAll(){List<student> list = new ArrayList<student>();Connection con=DBHelper.getCon();PreparedStatement ps = null;ResultSet rs = null;try {ps = con.prepareStatement("select * from student");rs = ps.executeQuery();while (rs.next()) {student s=new student();s.setSid(rs.getInt(1));s.setSname(rs.getString(2));s.setSah(rs.getString(3));s.setSclass(rs.getString(4));s.setTname(rs.getString(5));list.add(s);}} catch (Exception e) {e.printStackTrace();} finally {DBHelper.myClose(con, ps, rs);}return list;}/*** 查询所有教员*/public List<teacher> getAllT(){List<teacher> list = new ArrayList<teacher>();Connection con=DBHelper.getCon();PreparedStatement ps = null;ResultSet rs = null;try {ps = con.prepareStatement("select * from teacher");rs = ps.executeQuery();while (rs.next()) {teacher t=new teacher();t.setTid(rs.getInt(1));t.setTname(rs.getString(2));list.add(t);}} catch (Exception e) {e.printStackTrace();} finally {DBHelper.myClose(con, ps, rs);}return list;}/*** 查询所有班级*/public List<clazz> getAllC(){List<clazz> list = new ArrayList<clazz>();Connection con=DBHelper.getCon();PreparedStatement ps = null;ResultSet rs = null;try {ps = con.prepareStatement("select * from clazz");rs = ps.executeQuery();while (rs.next()) {clazz c=new clazz();c.setCid(rs.getInt(1));c.setSclazz(rs.getString(2));list.add(c);}} catch (Exception e) {e.printStackTrace();} finally {DBHelper.myClose(con, ps, rs);}return list;}/*** 主界面的分页* @param pages* @param pagesize* @return*/public List<student> getpage(int pages,int pagesize){List<student> list = new ArrayList<student>();Connection con=DBHelper.getCon();PreparedStatement ps = null;ResultSet rs = null;try {ps = con.prepareStatement("select * from (select *,row_number() over(order by sid) as rowid from student)as b where rowid between ? and ?");ps.setInt(1, pages);ps.setInt(2, pagesize);rs = ps.executeQuery();while (rs.next()) {student s=new student();s.setSid(rs.getInt(1));s.setSname(rs.getString(2));s.setSah(rs.getString(3));s.setSclass(rs.getString(4));s.setTname(rs.getString(5));list.add(s);}} catch (Exception e) {e.printStackTrace();} finally {DBHelper.myClose(con, ps, rs);}return list;}/*** 模糊查询的分页* @param pages* @param pagesize* @param key1* @param key2* @param key3* @return*///爱好  班级  教员public List<student> getpage(int pages,int pagesize,String key1,String key2,String key3){List<student> list = new ArrayList<student>();Connection con=DBHelper.getCon();PreparedStatement ps = null;ResultSet rs = null;try {ps = con.prepareStatement("\r\n" + "select * from (select *,row_number() over(order by sid) as rowid from student\r\n" + "where sah like ? \r\n" + "and sclass like ? and tname like ?\r\n" + ")as b where rowid between ? and ?");ps.setInt(4, pages);ps.setInt(5, pagesize);ps.setString(1, "%"+key1+"%");ps.setString(2, "%"+key2+"%");ps.setString(3, "%"+key3+"%");rs = ps.executeQuery();while (rs.next()) {student s=new student();s.setSid(rs.getInt(1));s.setSname(rs.getString(2));s.setSah(rs.getString(3));s.setSclass(rs.getString(4));s.setTname(rs.getString(5));list.add(s);}} catch (Exception e) {e.printStackTrace();} finally {DBHelper.myClose(con, ps, rs);}return list;}/*** 删除学生* @param sid* @return*/public int del(int sid) {Connection con=DBHelper.getCon();PreparedStatement ps=null;try {ps=con.prepareStatement("delete from student where sid=?");ps.setInt(1, sid);return ps.executeUpdate();} catch (Exception e) {e.printStackTrace();}finally {DBHelper.myClose(con, ps, null);}return 0;}/*** 增加学生* @param s* @return*/public int add(student s) {Connection con=DBHelper.getCon();PreparedStatement ps=null;try {ps=con.prepareStatement("insert into student values(?,?,?,?)");ps.setString(1, s.getSname());ps.setString(2, s.getSah());ps.setString(3, s.getSclass());ps.setString(4, s.getTname());return ps.executeUpdate();} catch (Exception e) {e.printStackTrace();}finally {DBHelper.myClose(con, ps, null);}return 0;}/*** 根据ID查询学生* @param sid* @return*/public student byids(int sid) {Connection con = DBHelper.getCon();PreparedStatement ps = null;ResultSet rs = null;try {ps = con.prepareStatement("select * from student where sid=?");ps.setInt(1, sid);rs = ps.executeQuery();while (rs.next()) {student s=new student();s.setSid(rs.getInt(1));s.setSname(rs.getString(2));s.setSah(rs.getString(3));s.setSclass(rs.getString(4));s.setTname(rs.getString(5));return s;}} catch (Exception e) {e.printStackTrace();} finally {DBHelper.myClose(con, ps, rs);}return null;}/*** 修改学生信息* @param s* @return*/public int upd(student s) {Connection con=DBHelper.getCon();PreparedStatement ps=null;try {ps=con.prepareStatement("update student set sname=?,sah=?,sclass=?,tname=? where sid=?");ps.setString(1, s.getSname());ps.setString(2, s.getSah());ps.setString(3, s.getSclass());ps.setString(4, s.getTname());ps.setInt(5, s.getSid());return ps.executeUpdate();} catch (Exception e) {e.printStackTrace();}finally {DBHelper.myClose(con, ps, null);}return 0;}/*** 模糊查询* @param key1* @param key2* @param key3* @return*/public List<student> getkey(String key1,String key2,String key3){List<student> list = new ArrayList<student>();Connection con=DBHelper.getCon();PreparedStatement ps = null;ResultSet rs = null;try {ps = con.prepareStatement("select * from student where tname like ? and sclass like ? and sah like ?");ps.setString(1, "%"+key1+"%");ps.setString(2, "%"+key2+"%");ps.setString(3, "%"+key3+"%");rs = ps.executeQuery();while (rs.next()) {student s=new student();s.setSid(rs.getInt(1));s.setSname(rs.getString(2));s.setSah(rs.getString(3));s.setSclass(rs.getString(4));s.setTname(rs.getString(5));list.add(s);}} catch (Exception e) {e.printStackTrace();} finally {DBHelper.myClose(con, ps, rs);}return list;}}

模糊查询的servlet

package com.Servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;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 com.dao.StudentDao;
import com.entity.student;
@WebServlet("/key.do")
public class KeyServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);
}
@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");String teacher= req.getParameter("teacher");String sah="";String[] ah = req.getParameterValues("ah");if(ah==null) {sah="";}else {for (String s : ah) {sah+=s+",";}}String[] split = sah.split(",");String sclass = req.getParameter("sclass");String aid = req.getParameter("aid");int pages=1;if(aid!=null) {pages=Integer.parseInt(aid);}int pagesize=2;int begin=(pages-1)*pagesize+1;int end=pages*pagesize;int m=new StudentDao().getkey(teacher, sclass, sah).size();List<student> list2 = new StudentDao().getkey(teacher,sclass,sah);List<student> list = new StudentDao().getpage(begin,end,sah,sclass,teacher);//最大页码数int max=(int)Math.ceil(m*1.0/pagesize);req.setAttribute("list", list);req.setAttribute("max", max);req.setAttribute("pages", pages);req.setAttribute("teacher", teacher);req.setAttribute("sah", sah);req.setAttribute("m", m);req.setAttribute("split", split);req.setAttribute("sclass", sclass);req.getRequestDispatcher("mohu.jsp").forward(req, resp);
}
}

JSP增删改查大概就涉及到这些内容,不懂的可私信哦!

JSP增删改查及分页相关推荐

  1. java jdbc标签jsp_jsp+servlet+javabean+jdbc实现增删改查和分页功能 案例源码

    [实例简介] 客户管理案例 1.目的:总结JDBC,和Servlet JSP结合到一起. 2.开发中的一些小技巧. 3.客户管理平台功能 * 添加客户 * 查询所有的客户的信息 * 修改客户信息 * ...

  2. 实现图书增删改查和分页显示图书信息

    目录 列:实现图书增删改查和分页显示图书信息 效果截图: 添加图书​ 分页显示 上传图片 修改 实现 导包 数据库连接 db.properties UploadServlet图片上传 封装book数据 ...

  3. WEB阶段7:综合练习-联系人管理系统-增删改查查询分页

    综合练习-联系人管理系统-增删改查&查询分页 回顾 能够说出过滤器的作用 解决全局乱码问题 用户权限访问控制 用户输入文本内容进行过滤 能够编写过滤器 创建一个类实现javax.servlet ...

  4. 使用javaweb进行用户管理系统的增删改查,分页和条件查询

    使用javaweb进行用户管理系统的增删改查,分页和条件查询 如有转载请标注来源!!!谢谢配合 源码已经上传,可以自行下载 https://download.csdn.net/download/wei ...

  5. vue和java实现页面增删改_SpringBoot-Vue实现增删改查及分页小DEMO

    前言 主要通过后端 Spring Boot 技术和前端 Vue 技术来简单开发一个demo,实现增删改查.分页功能以及了解Springboot搭配vue完成前后端分离项目的开发流程. 开发栈 前端 开 ...

  6. mvc php 分页,MVC+jQuery.Ajax异步实现增删改查和分页_jquery

    本文实例为大家分享了MVC+jQuery.Ajax异步实现增删改查和分页的具体代码,供大家参考,具体内容如下 1.Model层代码 using System; using System.Data; u ...

  7. Spring Data JDBC自动生成的增删改查CRUD分页、排序SQL语句非常简洁没有多余的SQL

    通过在application.properties文件中设置记录SQL日志 logging.level.org.springframework.jdbc.core.JdbcTemplate=DEBUG ...

  8. SpringBoot-Vue实现增删改查及分页小DEMO

    SpringBoot-Vue实现增删改查及分页小DEMO 前言 主要通过后端 Spring Boot 技术和前端 Vue 技术来简单开发一个demo,实现增删改查.分页功能以及了解Springboot ...

  9. MyBatisPlus之CRUD增删改查以及分页

    MyBatisPlus之CRUD增删改查以及分页 1.CRUD详解之插入操作 环境测试,在之前的itcast-mp-springboot项目工程里面使用springboot来进行 编写用户测试类 /* ...

最新文章

  1. 高校复试计算机英语文献翻译,专业文献英语翻译复试.pdf
  2. c++矩阵转置_C语言:数据结构-稀疏矩阵的压缩存储
  3. eq linux_在线试用 200 多种 Linux 和 Unix 操作系统 | Linux 中国
  4. navigating the online library
  5. BM39 序列化二叉树
  6. 在wdos系统下搭建Dns服务器
  7. c++调用cplex求解例子_Java调用cplex求解运输问题
  8. JavaScript对象根据自定义属性进行排序
  9. 如何使用wink框架_如何解决Wink Hub的Z-Wave连接问题
  10. 判别分析分为r型和q型吗_电流互感器天天见,但是你真正了解和知道它的一些注意事项吗?...
  11. Oracle11g新特性:在线操作功能增强-Oracle11g的只读表功能
  12. 【转】WF4.0实战系列索引
  13. 【SpringCloud】-- SpringCloud简介
  14. html如何添加竖虚线,在word中添加竖虚线的方法
  15. swiper、vue-awsome-swiper插件使用
  16. windows定时开关机方法
  17. 轻轻松松背单词软件测试,完美单词王app
  18. 在3D空间中绘制四边形
  19. autocad显卡驱动文件hdi_AUTOCAD启动提示显示驱动文件丢失怎么办?hdi是什么文件?...
  20. CCF 201604-2 俄罗斯方块

热门文章

  1. macOS 如何在 Dock 栏隐藏运行中的程序图标?
  2. (转)编辑寄语:因为爱心,所以美丽
  3. 2022司钻(钻井)考试题库及在线模拟考试
  4. 什么是JSONArray?什么是JSONObject?
  5. jsp基本语法表单提交方式
  6. Meterpreter利用MS17_010病毒payload渗透电脑介绍-推荐
  7. 都说在深圳月薪2万,活得很累,还不如在老家月薪5000,怎么回事?
  8. <C++>多态之纯虚函数与抽象类,学习不一样的析构函数
  9. 反身代词,物主代词,双重所有格
  10. 推荐一部很好的电影《本杰明.巴顿的奇事》