javaEE13(网站第8章两个课后题)

1、对“jsp+servlet+javabean实现分页查询”功能做如下补充:

(1)记录批量删除:每个记录前添加复选框,点击批量删除,删除选中记录。

  1. 增加跳转到任意页功能。
  2. 用户可改变每页记录条数。             

页面:

<%@ page   pageEncoding="UTF-8" import="java.util.List,dao.StudentDao,entity.Student"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html><html><head><title>模糊</title><script>function qingchu(){document.getElementById("sno").value='';document.getElementById("sname").value='';document.getElementById("sex").value='';}function jump1(pageNo){var queryForm=document.getElementById("queryForm");queryForm.pageNo.value=pageNo;queryForm.submit();}function jump2(pageNo){var pageNo1=document.getElementById("pageNo1").value;if(pageNo1!=""){jump1(pageNo1);}}function btSelectAllOnclick(obj) {  var isCheck=obj.checked;var inputs=document.getElementsByTagName("input");  for(var i=0;i<inputs.length;i++){  if(inputs[i].type=="checkbox" && inputs[i].id!="selectAll") //刷选出所有复选框  {  inputs[i].checked=obj.checked;if(isCheck==true){inputs[i].name="check";}else{inputs[i].name="user";}}  }  }function getCheckBox()  {  var inputs=document.getElementsByTagName("input");  var chkInputs=new Array();  var j=0;  for(var i=0;i<inputs.length;i++)  {  if(inputs[i].type=="checkbox" && inputs[i].id!="selectAll") //刷选出所有复选框  {  chkInputs[j]=inputs[i];  j++;  }  }  return chkInputs;  }function toChkSon(obj)  {  var isCheck=obj.checked;obj.name="check";if(isCheck==false) //单选复选框未选中 全选为未选  {  document.getElementById("selectAll").checked=false;obj.name="user";return ;  }  var chkInputs=getCheckBox();var j=0;  for(var i=0;i<chkInputs.length;i++)  {  if(chkInputs[i].checked==isCheck)  j++;  else  break;  }     if(j==chkInputs.length) //当所有复选框为同一状态时 赋值全选同一状态  document.getElementById("selectAll").checked=isCheck;  }function submitForm(){document.getElementById("queryForm").submit();}function pagesizee(){var pagesize=document.getElementById("pageSize").value;if(pagesize!=""&&pagesize!=null){document.getElementById("queryForm").submit();}}</script><style>th,td{border:2px solid gray;padding:3px;text-align:center;}table,form{border-collapse:collapse;margin:0 auto;text-align:center;}#pageSwitch{margin:5px;text-align:center;}</style></head><body><form method="post" action="${pageContext.request.contextPath}/student" id="queryForm">学号<input type="text" name="sno" id="sno" value="${param.sno}">姓名<input type="text" name="sname" id="sname" value="${param.sname}">性别<input type="text" name="sex" id="sex" value="${param.sex}"><input type="button"  value="清除" onclick="qingchu()"/><input type="hidden" name="action" value="query3"/><input type="hidden" name="pageNo" value="1"/><input type="submit" value="查询"/><br><br><c:if test="${requestScope.recordCount==0}"><div style="text-align:center">无记录</div></c:if><c:if test="${requestScope.recordCount>0}"><table id="tab"><tr><th><input type="checkbox"  id="selectAll" name="selectAll" onclick="btSelectAllOnclick(this)"/></th><th>序号</th><th>学号</th><th>姓名</th><th>性别</th><th>修改</th><th>删除</th></tr><c:forEach items="${studentList}" var="student" varStatus="status"><tr><td><input type="checkbox" onclick="toChkSon(this);" value="${student.id}" id="user" name="user"></td><td>${status.index+1}</td><td>${student.sno}</td><td>${student.sname}</td><td>${student.sex}</td><td><a href="${pageContext.request.contextPath}/student/edit.jsp?id=${student.id}&sno=${student.sno}&sname=${student.sname}&sex=${student.sex}">修改</a></td><td><a href="${pageContext.request.contextPath}/student?id=${student.id}&action=delete" onclick="return confirm('确实要删除该记录吗?')">删除</a></td></tr></c:forEach></table><input type="button"  value="删除所选" onclick="submitForm()" /><div id="pageSwitch">共有记录${recordCount}条, 第${pageNo}/${pageCount}页,<c:if test="${pageNo>1}"><a href="javascript:jump1('1')">首页</a><a href="javascript:jump1('${pageNo-1}')">上页</a></c:if><c:if test="${pageNo==1}">首页  上页</c:if><c:if test="${pageNo<pageCount}"><a href="javascript:jump1('${pageNo+1}')">下页</a><a href="javascript:jump1('${pageCount}')">末页</a></c:if><c:if test="${pageNo==pageCount}">下页   末页</c:if>跳转到第<input type="text" name="pageNo1" id="pageNo1" value="" onclick="jump2('${pageNo}')">页,每页<input type="text" name="pageSize" id="pageSize" value="" onclick="pagesizee()">条</div></c:if></form><%String pagesize=request.getParameter("pageSize");if(pagesize!=null&&pagesize!=""){session.setAttribute("pageSize",pagesize);}%></body></html>

Servlet

private void query3(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");request.setCharacterEncoding("UTF-8");String users[]=request.getParameterValues("check");StudentDao studentDao=new StudentDao();HttpSession session=request.getSession();if(users!=null){for(int i=0;i<users.length;i++){//循环删除被选中的数据try {studentDao.delete(Integer.parseInt(users[i]));} catch (Exception e) {e.printStackTrace();}}}try {String condition=" where 1=1 ";String sno=request.getParameter("sno");String sname=request.getParameter("sname");String sex=request.getParameter("sex");if(notEmpty(sno)) {condition+=" and sno like '%"+sno+"%' ";}if(notEmpty(sname)) {condition+=" and sname like '%"+sname+"%' ";}if(notEmpty(sex)) {condition+=" and sex like '%"+sex+"%' ";}int pageNo=1;int pageSize=10;try {pageNo=Integer.parseInt(request.getParameter("pageNo"));} catch (Exception e) {}String pagesize=request.getParameter("pageSize");String pagesize1=(String) session.getAttribute("pageSize");if(pagesize!= null && !pagesize.equals("")) {pageSize=Integer.parseInt(pagesize);}else if(pagesize1!= null && !pagesize1.equals("")) {pageSize=Integer.parseInt(pagesize1);}int recordCount=studentDao.getRecordCount(condition);if(recordCount>0){List<Student> studentList=studentDao.query(condition,"",pageNo,pageSize);                     int t1=recordCount%pageSize;;int t2=recordCount/pageSize;int pageCount=(t1==0?t2:t2+1);request.setAttribute("pageNo", pageNo);request.setAttribute("pageCount", pageCount);request.setAttribute("studentList", studentList);}request.setAttribute("recordCount", recordCount);request.getRequestDispatcher("/student/query3.jsp").forward(request,response);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}

Dao

public void delete(int id) throws Exception{Connection conn = null;PreparedStatement ps = null;try {conn = JdbcUtil.getConnection();String sql = "delete from student where id=?";ps = conn.prepareStatement(sql);ps.setInt(1,id);ps.executeUpdate();}finally {JdbcUtil.free( null,ps, conn);}}

2、针对课程表数据库(数据库脚本下载)实现分页查询。同时按课程名、上课时间、上课地点、任课教师四列查询。

      样例:http://47.93.11.179/test/courseServlet3

页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.util.List,dao.courseDao,entity.course"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html><html><head><style>body{text-align:center;}th,td{border:2px solid gray;text-align:center;padding:3px 10px;}table{border-collapse:collapse;margin:0 auto;}</style><script>function jump1(pageNo){document.getElementById("pageNo").value=pageNo;document.getElementById("form11").submit();}function qc(){document.getElementById("kcm").value="";document.getElementById("sksj").value="";document.getElementById("skdd").value="";document.getElementById("rkjs1").value="";}</script><style>.odd{background-color:#E0EEEE;}</style></head><body><h2>课程表分页查询</h2><form action="${pageContext.request.contextPath}/courseServlet3" method="post" id="form11" >课程名<input name="kcm" value="${param.kcm}" id="kcm">上课时间<input name="sksj" value="${param.sksj}" id="sksj">上课地点<input name="skdd" value="${param.skdd}" id="skdd">任课教师<input name="rkjs1" value="${param.rkjs1}" id="rkjs1"><input type="hidden" name="pageNo" id="pageNo" value="1"/><input type="submit" value="查询"/><input type="button" value="清除" onclick="qc()"/></form><br><c:if test="${requestScope.recordCount==0}"><div style="text-align:center">无记录</div></c:if><c:if test="${requestScope.recordCount>0}"><table><tr><th>学院</th><th>课序号</th><th>课程号</th><th>课程名</th><th>任课老师</th><th>上课时间</th><th>上课周次</th><th>上课地点</th><th>班级</th><th>年级</th><th>校区</th></tr><c:forEach items="${studentList}" var="student" varStatus="status"><tr><td>${status.index+1}</td><td>${student.kxh}</td><td>${student.kch}</td><td>${student.kcm}</td><td>${student.rkjs1}</td><td>${student.sksj}</td><td>${student.skzc}</td><td>${student.skdd}</td><td>${student.bj}</td><td>${student.rs}</td><td>${student.xq}</td></tr></c:forEach></table><div id="pageSwitch">共有记录${recordCount}条, 第${pageNo}/${pageCount}页,<c:if test="${pageNo>1}"><a href="javascript:jump1('1')">首页</a><a href="javascript:jump1('${pageNo-1}')">上页</a></c:if><c:if test="${pageNo==1}">首页  上页</c:if><c:if test="${pageNo<pageCount}"><a href="javascript:jump1('${pageNo+1}')">下页</a><a href="javascript:jump1('${pageCount}')">末页</a></c:if><c:if test="${pageNo==pageCount}">下页   末页</c:if></div></c:if><br></body></html>

Servlet:

package 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 dao.courseDao;import entity.course;@WebServlet("/courseServlet3")public class CourseServlet extends HttpServlet{private static final long serialVersionUID = 1L;courseDao studentDao=new courseDao();public CourseServlet() {super();// TODO Auto-generated constructor stub}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubthis.doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.setContentType("text/html;charset=UTF-8");request.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();try {String condition=" where 1=1 ";String kcm=request.getParameter("kcm");String sksj=request.getParameter("sksj");String skdd=request.getParameter("skdd");String rkjs1=request.getParameter("rkjs1");if(notEmpty(kcm)) {condition+=" and kcm like '%"+kcm+"%' ";}if(notEmpty(sksj)) {condition+=" and sksj like '%"+sksj+"%' ";}if(notEmpty(skdd)) {condition+=" and skdd like '%"+skdd+"%' ";}if(notEmpty(rkjs1)) {condition+=" and rkjs1 like '%"+rkjs1+"%' ";}int pageNo=1;int pageSize=10;try {pageNo=Integer.parseInt(request.getParameter("pageNo"));} catch (Exception e) {}int recordCount=studentDao.getRecordCount(condition);if(recordCount>0){List<course> studentList=studentDao.query(condition,"",pageNo,pageSize);             int t1=recordCount%pageSize;int t2=recordCount/pageSize;int pageCount=(t1==0?t2:t2+1);request.setAttribute("pageNo", pageNo);request.setAttribute("pageCount", pageCount);request.setAttribute("studentList", studentList);}request.setAttribute("recordCount", recordCount);request.getRequestDispatcher("courseServlet.jsp").forward(request,response);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}private boolean notEmpty(String s) {return s!=null&&!"".equals(s.trim());}}

Dao

package dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import entity.course;import util.JdbcUtil;public class courseDao {public List<course>  query(String condition) throws Exception{Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;List<course> studentList=new ArrayList<course>();try {conn = JdbcUtil.getConnection();String sql = "select * from course "+condition;ps=conn.prepareStatement(sql);rs=ps.executeQuery();while(rs.next()){course student=new course();student.setId(rs.getInt(1));student.setXy(rs.getString(2));student.setKxh(rs.getString(3));student.setKch(rs.getString(4));student.setKcm(rs.getString(5));student.setRkjs1(rs.getString(9));student.setSksj(rs.getString(11));student.setSkzc(rs.getString(12));student.setSkdd(rs.getString(13));student.setBj(rs.getString(14));student.setRs(rs.getString(16));student.setXq(rs.getString(17));studentList.add(student);}}finally {JdbcUtil.free(rs, ps, conn);}return studentList;}public int getRecordCount(String condition) throws Exception{Connection conn = null;PreparedStatement pst = null;ResultSet rs = null;int recordcount=0;try {conn = JdbcUtil.getConnection();String sql = "select count(*) from course "+condition;pst = conn.prepareStatement(sql);rs=pst.executeQuery();rs.next();recordcount=rs.getInt(1);}finally {JdbcUtil.free(rs, pst, conn);}return recordcount;}public List<course>  query(String condition,String order,int pageNo,int pageSize) throws Exception{Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;List<course> studentList=new ArrayList<course>();try {conn = JdbcUtil.getConnection();String sql = "select * from course "+condition+order+" limit ?,?";ps=conn.prepareStatement(sql);ps.setInt(1, (pageNo-1)*pageSize);ps.setInt(2, pageSize);rs=ps.executeQuery();while(rs.next()){course student=new course();student.setId(rs.getInt(1));student.setXy(rs.getString(2));student.setKxh(rs.getString(3));student.setKch(rs.getString(4));student.setKcm(rs.getString(5));student.setRkjs1(rs.getString(9));student.setSksj(rs.getString(11));student.setSkzc(rs.getString(12));student.setSkdd(rs.getString(13));student.setBj(rs.getString(14));student.setRs(rs.getString(16));student.setXq(rs.getString(17));studentList.add(student);}}finally {JdbcUtil.free(rs, ps, conn);}return studentList;}}

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

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

相关文章

[vscode]使用cmake时将命令行参数传递给调试目标

一、简介 本文介绍了在vscode中使用cmake工具时&#xff0c;如何传递参数给编译目标的方法。 前提&#xff1a;使用vscodecmake编译C/C程序。 二、方法 在.vscode/目录下新建settings.json文件&#xff0c;并将待传底的参数写在 cmake.debugConfig里。 下面介绍了一个示例&a…

selenium元素定位问题

一、按钮点击 具体网页信息如下&#xff1a; 定位的时候driver.find_element(By.CLASS_NAME, 方法搞不定。 定位方法&#xff1a; 方法一&#xff1a;通过文本定位 driver.find_element(By.XPATH, "//*[text()高分一号]").click() time.sleep(3) 如果是部分文字…

抗生素净化提纯大孔吸附树脂

一、介绍 ADS-800级吸附树脂 ADS-800是一款功能强大的&#xff0c;大孔&#xff0c;湿润的球形交联聚合物吸附型树脂。 ADS-800 具有优良的物理特性&#xff0c;化学和热稳定性。它的特定的多孔性和其表面积使的本产品适合于分离技术的应用。 ADS-800 是为了流程工业中的专业…

2024第八届通信与未来互联网国际会议(ICCFI 2024)即将召开!

2024年第8届通信与未来互联网国际会议&#xff08;ICCFI 2024&#xff09; 日本鹿儿岛 | 2024年7月19-21日 ICCFI 2024 | Communications and Future Internet | Kagoshima-shi, Japanhttps://www.iccfi.org/ 主办单位&#xff1a; ◆ 出版 ▪ 会议论文集 投稿论文将经过严…

honle电源维修UV电源控制器维修EVG EPS60

好乐UV电源控制器维修&#xff1b;honle控制器维修&#xff1b;UV电源维修MUC-Steuermodul 2 LΛmpen D-82166 主要维修型号&#xff1a; EVG EPS 60/120、EVG EPS 100、EVG EPS200、EVG EPS 220、EVG EPS 340、EVG EPS40C-HMI、EVG EPS60 HONLE好乐uv电源维修故障包括&#…

DARTS: DIFFERENTIABLE ARCHITECTURE SEARCH

DARTS&#xff1a;可微架构搜索 论文链接&#xff1a;https://arxiv.org/abs/1806.09055 项目链接&#xff1a;https://github.com/quark0/darts ABSTRACT 本文通过以可微分的方式表述任务&#xff0c;解决了架构搜索的可扩展性挑战。与在离散和不可微搜索空间上应用进化或强…

Linux fork函数详解

文章目录 1 基本介绍2 fork实例2.1 多个fork返回值2.2 C语言 fork与输出2.3 fork &#x1f4a3; 1 基本介绍 #include <sys/types.h> #include <unistd.h>pid_t fork(void)描述 fork用于创建一个子进程&#xff0c;它与父进程的唯一区别在于其PID和PPID&#xff0…

C语言--sprintf()函数的用法

一.sprintf()语法 sprintf&#xff08;&#xff09; 是一个 C 语言中的函数&#xff0c;用于将格式化的数据写入一个字符串中。它的用法与 printf() 函数相似&#xff0c;printf&#xff08;&#xff09;函数是将内容输出到屏幕上&#xff0c;而sprintf()函数是将格式化的内容输…

设计模式一 ---单例设计模式(动力节点,JavaSE基础)

设计模式 1.什么是设计模式&#xff1f; 2.设计模式的分类 单例设计模式就是GoF模式中的一种。 3.GoF设计模式的分类&#xff1a; 单例设计模式&#xff1a; 顾名思义&#xff1a;单个实例的设计模式&#xff01;

Arco 部署项目后部分样式未生效

文章目录 问题分析 问题 在更改 arco 的原始样式后&#xff0c;发现部分样式并未被更改 分析 如下所示&#xff0c;通过元素查看器可以看到原生的绑定的 class 类名和样式 而我将整个的设置了的样式做了替换 :deep(.arco-menu-light.arco-menu-horizontal .arco-menu-ite…

【力扣精选算法100道】——二进制求和

LCR 002. 二进制求和 - 力扣&#xff08;LeetCode&#xff09; 目录 &#x1f388;了解题意 &#x1f388;算法分析 &#x1f6a9;cur1>0 &#x1f6a9;cur2>0 &#x1f6a9;t &#x1f388;实现代码 &#x1f388;了解题意 遵循二进制加法法则&#xff0c;如果俩…

跨阻放大器(TIA)的输入输出阻抗的定义、分析和影响因素

跨阻放大器&#xff08;TIA&#xff09;的输入输出阻抗的定义、分析和影响因素 跨阻放大器&#xff08;Transimpedance Amplifier&#xff0c;简称TIA&#xff09;是一种常用于将电流信号转换为电压信号的放大器。在TIA电路中&#xff0c;输入阻抗是指输入端对电流信号的响应能…

48. 【Linux教程】yum 软件包管理

本小节介绍如何在 Linux 系统中使用 yum 命令软件管理。 1.yum 简介 yum 是 Red Hat 软件包管理器&#xff0c;它能够查询有关可用软件包的信息&#xff0c;从存储库获取软件包&#xff0c;安装和卸载软件包&#xff0c;以及将整个系统更新到最新的可用版本。yum 在更新&#…

酷开会员 | 和好朋友一起玩酷开系统体感游戏

春天已经到来&#xff0c;闲暇时间做些什么好呢&#xff1f;那就玩会游戏吧&#xff01;打开酷开系统&#xff0c;在体感游戏中&#xff0c;寻找一款自己喜欢的运动&#xff0c;和家人一起运动起来吧&#xff01; 酷开系统是一款非常贴心、全面的智能电视操作系统。它拥有丰富…

veeam备份基础

veeam的安装 将文件动态连接文件复制到veeam的安装目录中&#xff0c;替换掉新的文件 重新启动服务 为veeam添加证书 为veeam添加存储 其他 第一次完整备份时间会比较久 备份预览&#xff0c;transferred和processing date的区别 transferred后面数据为压缩比

基于SAMD21G17D的触摸滑条USB HID设备实现及控制PC音量的功能开发(USB HID+MPLAB)

https://www.bilibili.com/video/BV1dr421H7yPTOC &#x1f449; 【2024年寒假练】基于SAMD21G17D的触摸滑条USB HID控制PC音量快捷键的功能开发 &#x1f449; Github: EmbeddedCamerata/SAMD21_touchbar_usb_hid 项目介绍 本项目基于 Microchip 的 SAMD21 Curiosity Nano 核…

深入理解快速排序

一、快速排序 快速排序是冒泡排序的一种改进算法&#xff0c;相比于冒泡排序效率更优。 算法过程分析&#xff1a; 通过采用分治策略&#xff0c;围绕一个 x 将原始数组划分为两个子数组&#xff0c;使得前一个子数组的元素≤ x ≤ 后一个子数组元素&#xff0c;对两个子数组进…

WebGIS开发0基础必看教程:鹰眼的实现思路

1.背景 鹰眼功能是WebGIS中的一种常见功能&#xff0c;利用一些开源的框架实现起来非常方便。当然&#xff0c;按照博主从底层谈WebGIS这套系列的风格&#xff0c;在这里还是跟大家一起探讨探讨不借助第三方框架开发鹰眼的简单实现思路。 2.鹰眼功能分析 3.实现思路设计 3.1…

C语言 - 堆栈二叉树的基础及应用

1.历史 堆栈是为了减少程序内存占用的问题而发明的 机器上电后&#xff0c;所有的变量都需要copy到内存中运行&#xff0c;但是机器的内存大小一直都是比较有限的&#xff0c;所以堆栈和局部变量两个概念被提出来 2.栈 每次手动创建、删除变量非常麻烦&#xff0c;于是…

【spring】@Bean注解学习

Bean介绍 Bean用于指示一个方法应该产生一个Bean对象&#xff0c;并将其交给Spring容器管理。 当使用Bean注解的方法被Spring容器调用时&#xff0c;它只会执行一次&#xff0c;随后该方法返回的Bean对象会被添加到Spring的IOC&#xff08;Inversion of Control&#xff0c;控…