JavaWeb项目第三次总结_成绩查询的实现
查询图书的功能实现
如何知道浏览器往服务器传入的参数
1、在编写好查询页面后,使用火狐浏览器的friebug (全部—>POST—>参数)
2、编写GradeListServlet,重写doGet()和doPOST()方法
服务器处理页面请求的过程
1、重写doPOST()方法。
处理过程
1、连接数据库 2、创建JSONObject对象 3、格式化数据 4、将处理后的数据以{key,value}放入到JSONObject对象中 5、响应客户端的请求
- 获取页面请求的参数 使用方法:request.getParameter(“page/rows”);
- 创建PageBean类 将获取来的参数传入到PageBean类进行初始化。
PageBean
package com.it.model;public class PageBean {private int page;//第几页private int rows;//每页的记录数private int start;//起始页public PageBean(int page, int rows) {super();this.page = page;this.rows = rows;}public int getPage() {return page;}public void setPage(int page) {this.page = page;}public int getRows() {return rows;}public void setRows(int rows) {this.rows = rows;}public int getStart() {return (page-1)*rows;}
}
创建从数据库查询出来的数据转化成JSON格式的数据
JSON将数据转化成了字符串类型的数据
转化对象后是键值对的形式 {name:value}
JSON格式转化的工具类
package com.it.util;import java.sql.ResultSet;
import java.sql.ResultSetMetaData;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;/** Json 工具包 用来处理JSon格式* 用来转化格式* JSONArray格式是 键值对形式的*/
public class JsonUtil {/*** 将数据库内的数据集转化成JSON格式的数据 输出到浏览器页面* @param rs 数据库查询返回的集合* @return * @throws Exception*/public static JSONArray formatRsToJsonArray(ResultSet rs)throws Exception{ResultSetMetaData md=rs.getMetaData();//获取纵向集合int num = md.getColumnCount();//获取ResultSetMetaData 有多少行JSONArray array=new JSONArray();//JSONArray 里的每一个对象是 JSONObjectwhile(rs.next()){ //横向的遍历JSONObject mapOfColValues=new JSONObject(); //JSONArray 里的每一个对象叫JSONObjectfor(int i=1;i<=num;i++){mapOfColValues.put(md.getColumnName(i), rs.getObject(i));//给对象赋值}array.add(mapOfColValues);}return array;//添加到JSONArray数组}
}
GradeListServlet
package com.it.web;import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;import com.it.dao.GradeDao;
import com.it.model.PageBean;
import com.it.util.Dbutil;
import com.it.util.JsonUtil;
import com.it.util.ResponseUtil;public class GradeListServlet extends HttpServlet {Dbutil dbUtil=new Dbutil();GradeDao gradeDao=new GradeDao();@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String page = request.getParameter("page");//页面请求 pageString rows = request.getParameter("rows");//每页的记录数PageBean pageBean=new PageBean(Integer.parseInt(page),Integer.parseInt(rows));Connection con=null;try{con=dbUtil.getCon();JSONObject result=new JSONObject(); //创建JSONObject对象用来存放JSONArray 数组JSONArray jsonArray = JsonUtil.formatRsToJsonArray(gradeDao.gradeList(con, pageBean));//将返回的结果集转化成JSON格式的数据// ResultSet rs=gradeDao.gradeList(con, pageBean);
// gradeDao.print(con, rs);int total=gradeDao.gradeCount(con);//返回统计的总行数result.put("rows", jsonArray);result.put("total", total);ResponseUtil.write(response, result);}catch(Exception e){e.printStackTrace();}finally{try {dbUtil.closeCon(con);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
## 数据库处理层GradeDao类 ##
package com.it.dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;import com.it.model.Grade;
import com.it.model.PageBean;public class GradeDao {public ResultSet gradeList(Connection con,PageBean pageBean)throws Exception{StringBuffer sb=new StringBuffer("select * from t_grade");if(pageBean!=null){sb.append(" limit "+pageBean.getStart()+","+pageBean.getRows());}PreparedStatement pstmt = con.prepareStatement(sb.toString());return pstmt.executeQuery();}public int gradeCount(Connection con)throws Exception{String sql="select count(*) as total from t_grade";// as total 是起的别名PreparedStatement psmt = con.prepareStatement(sql);ResultSet rs = psmt.executeQuery();if(rs.next()){return rs.getInt("total");}else{return 0;}}public void print(Connection con,ResultSet rs)throws Exception{while(rs.next()){Grade grade=new Grade();grade.setId(rs.getInt("id"));grade.setGradeName(rs.getString("gradeName"));grade.setGradeDesc(rs.getString("gradeDesc"));System.out.println(grade);}}
}
响应页面的工具类
package com.it.util;import java.io.PrintWriter;import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONObject;public class ResponseUtil {public static void write(HttpServletResponse response,JSONObject jsonObject)throws Exception{response.setContentType("text/html;charaset=UTF-8");response.setCharacterEncoding("UTF-8");//解决无法输出中文的问题PrintWriter out = response.getWriter();out.println(jsonObject.toString());out.flush();out.close();}}
JavaWeb项目第三次总结_成绩查询的实现相关推荐
- java成绩查询_JavaWeb项目第三次总结_成绩查询的实现
查询图书的功能实现 如何知道浏览器往服务器传入的参数 1.在编写好查询页面后,使用火狐浏览器的friebug (全部->POST->参数) 2.编写GradeListServlet,重写d ...
- 天猫整站SSM项目(三)后台demo---数据查询(一)
天猫整站SSM项目(三)后台demo---数据查询(一 一.分类查询页面包含的jsp文件 二.查询功能的实现 到这里就开始讲解功能开发了. 开发整站的顺序,通常来说还是按照依赖性来进行,前端需要的数据 ...
- java成绩查询_成绩查询系统(JAVA)
import java.awt.*; import java.awt.event.*; import java.net.*; import java.sql.*; class Window exten ...
- 新锐房地产销售管理系统(部分流程)技术解释(三)销售管理_房源查询
1.查询房源 房源查询这个模块,可以根据 所选择的项目和楼栋来把房源的信息查询出来,具体体现如下.右边显示的是这个房源的具体信息,销售信息是某一个房源的重要操作记录(例如预定.预留之类的记录).主界面 ...
- 2021年甘肃省三职生高考成绩查询,2021年甘肃省高考分数公布时间
[前言]2021年甘肃省高考分数公布时间为好范文网的会员投稿推荐,但愿对你的学习工作带来帮助. 高考已经结束了,相信同学们都非常期待高考成绩,然后进入理想的大学,那么你知道高考成绩的公布时间了吗?小编 ...
- 忙里偷闲第三弹:开发成绩查询微信公众号
1.先上个图 2.具体的实现步骤就不写了,慕课网上有基础教程,这个项目的源代码可以在我的github查看,还有一些bug未解决.https://github.com/Vito-Yan/WeiXinMY ...
- 2021年四川高考成绩在哪里查询,2021年四川高考成绩查询系统入口,四川高考成绩怎么近查询系统...
本文小编大家整理了关于四川高考成绩查询系统入口的相关知识,供大家在成绩公布之时快速的查询自己的成绩. 一.2021年四川高考成绩查询系统入口 2021年四川高考成绩查询系统入口,考生可以登录四川招生考 ...
- 2021杨雪洋高考成绩查询,十万火急!多省已开通2020高考成绩查询通道(附各省最新查询网址)...
高考结束后,高考出分和志愿填报是重中之重!目前,福建.黑龙江.广东三个省市高考成绩查询系统已经开通,查分估计也就是一两天的事. 105411het0gyumtzuptv0z.jpg (59 KB, 下 ...
- 怎样查询2021年青海高考成绩,2021年青海高考成绩查询系统入口,青海高考成绩怎么近查询系统...
本文小编大家整理了关于青海高考成绩查询系统入口的相关知识,供大家在成绩公布之时快速的查询自己的成绩. 一.2021年青海高考成绩查询系统入口 2021年青海高考成绩查询系统入口,考生可以登录青海招生考 ...
最新文章
- 北大文科生能选计算机专业么,文科计算机基础和文科计算机专题
- ChatForFun 公众号使用说明
- PyCharm安装及配置
- spring 集成 Hibernate4.3.X org.hibernate.service.jta.platform.spi.JtaPlatform异常
- docker多个mysql实例_Docker创建运行多个mysql容器的方法示例
- 吴恩达的机器学习,属实牛逼
- C++ 高性能服务器网络框架设计细节
- 三菱plc控制步进电机实例_「PLC案例」三菱FX3U与威纶通HMI的步进定位控制,附程序图~...
- c++win32项目 如何显示后再删除一个绘图_如何运用Excel,R等软件结合PPT做出你想要的矢量图...
- Python常见实体提取库Duckling,多语言,实体如日期、金额、距离
- 辅导作业很“崩溃”?猿辅导教你三招告别怒吼式教育
- PID控制算法原理通俗讲解
- 35岁之后软件测试工程师靠什么养家?我还能继续做测试。
- Ubantu下安装Chrome64位
- 富士康和苹果都后悔了,将制造重心转回国内,上演高速路口抢人
- 【实战】物联网安防监控项目———需求分析
- php mysql自动定时备份_php中实现mysql数据库备份与linux自动定时备份代码
- 瑞利信道下基于判决反馈的16QAM信道均衡(matlab源码)
- ISO制定的语言,文字标准(zh en)
- 郑清 - 日常作息表(2020-02)