- 浏览: 116803 次
- 性别:
- 来自: 南京
最新评论
-
zhchyun2008:
鱼崽崽 写道大家可以看看这个,里面有真正的实例:http:// ...
springmvc+MyBatis简单CRUD -
鱼崽崽:
大家可以看看这个,里面有真正的实例:http://43.249 ...
springmvc+MyBatis简单CRUD -
w-mamba:
适合初学者学习,蛮好…
ajax+jquery+json分页demo -
aa00aa00:
我笑了............................ ...
springmvc+MyBatis简单CRUD -
u010100704:
大哥。能不能加个项目结构图。再加个运行结果图,你这样写我都不知 ...
springmvc+MyBatis简单CRUD
ajax+jquery+json分页demo
实体类:Book.java
package com.model; import java.util.Date; public class Book { private int id; private String name; private Date publish_time; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getPublish_time() { return publish_time; } public void setPublish_time(Date publish_time) { this.publish_time = publish_time; } } BookDao.java package com.model; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; public class BookDao { public ArrayList<Book> FindBookByPage(Page page) throws SQLException{ // MySQL select *from t_book limit currentRecord , pageSize ArrayList<Book> bookls=new ArrayList<Book>(); Connection con=null; PreparedStatement st=null; ResultSet rs=null; try{ con = JdbcUtils.getConnection(); st = con.prepareStatement("select *from t_book limit ?,?"); st.setInt(1, page.getCurrentRecord()); st.setInt(2, page.getPageSize()); rs = st.executeQuery(); while(rs.next()){ Book book = new Book(); book.setId(rs.getInt("id")); book.setName(rs.getString("name")); book.setPublish_time(rs.getTimestamp("publishtime")); bookls.add(book); } }finally{ JdbcUtils.close(rs,st,con); } return bookls; } public int getBookNum() throws SQLException{ Connection con=null; PreparedStatement st=null; ResultSet rs=null; int num =0; try { con = JdbcUtils.getConnection(); st = con.prepareStatement("select count(*) from t_book"); rs = st.executeQuery(); if(rs.next()) num = rs.getInt(1); JdbcUtils.close(rs,st,con); }finally { JdbcUtils.close(rs,st,con); } return num; } }
BookDTO.java
package com.model; public class BookDTO { private int id; private String name; private String str_publish_time; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getStr_publish_time() { return str_publish_time; } public void setStr_publish_time(String str_publish_time) { this.str_publish_time = str_publish_time; } }
JdbcUtils.java
package com.model; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public final class JdbcUtils { private static String url = "jdbc:mysql://localhost:3306/books"; private static String user = "root"; private static String password = "root"; private JdbcUtils() { } static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError(e); } } public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url, user, password); } public static void close(ResultSet rs, PreparedStatement st, Connection conn) { try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (st != null) st.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) try { conn.close(); } catch (SQLException e) { //todo log4j e.printStackTrace(); } } } } }
Page.java
package com.model; /* * 这个Page 可以对所有的 实体进行分页显示 * * curuentPage--->currentRecord * * */ public class Page { private int totalRecord;//总的记录条数 private int totalPage;//总页数 private int currentPage=1;//当前页数 private int currentRecord;//当前记录的条数 private int pageSize=3 ;//每页显示的记录数量,这里默认每页显示6条 // MySQL select *from t_book limit currentRecord , pageSize public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage ) { this.currentPage = currentPage; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalRecord,int pageSize) { //如果总记录数除以每页显示条数可以整除,商就是总页码 if(totalRecord%pageSize == 0) { totalPage = totalRecord/pageSize; }else { //如果总记录数除以每页显示条数不能整除,商加1才是总页码 totalPage = totalRecord/pageSize+1; } } public int getCurrentRecord() { return currentRecord; } public void setCurrentRecord(int currentPage,int pageSize) { //该页的 第一条记录 =( 当前页号-1)*pageSize; 页号从0开始编制 this.currentRecord = (currentPage-1 )*pageSize; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getTotalRecord() { return totalRecord; } public void setTotalRecord(int totalRecord) { this.totalRecord = totalRecord; } }
=============servlet================
Book_ShowServlet.java
package com.servlet; import java.io.IOException; import java.io.PrintWriter; import java.sql.SQLException; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONSerializer; import com.model.Book; import com.model.BookDTO; import com.model.BookDao; import com.model.Page; @SuppressWarnings("serial") public class Book_ShowServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); BookDao dao=new BookDao(); Page page=new Page(); try { page.setTotalRecord(dao.getBookNum()); page.setCurrentPage(1); page.setPageSize(6); page.setTotalPage(page.getTotalRecord(), page.getPageSize()); page.setCurrentRecord(page.getCurrentPage(), page.getPageSize()); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } String pageindex=request.getParameter("pagehash"); if(pageindex!=null){ int targetpage = Integer.parseInt(pageindex); if(targetpage>=1&&targetpage<=page.getTotalPage()){ page.setCurrentPage(targetpage); page.setCurrentRecord(page.getCurrentPage(), page.getPageSize()); } } ArrayList<Book> books = null; try { books = dao.FindBookByPage(page); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } ArrayList<BookDTO> bookdtos = BookToBookDTO(books); String doc = JSONSerializer.toJSON(bookdtos).toString(); System.out.println("传送JSION"+doc); PrintWriter out = response.getWriter(); out.print(doc); } private ArrayList<BookDTO> BookToBookDTO(ArrayList<Book> books) { //把books 输出成xml文档 //String doc = JSONUtils.valueToString(books); //books---->booksDTO ArrayList<BookDTO> bookdtos = new ArrayList<BookDTO>(); for(int i=0;i<books.size();i++){ BookDTO dto =new BookDTO(); dto.setId(books.get(i).getId()); dto.setName(books.get(i).getName()); dto.setStr_publish_time(books.get(i).getPublish_time().toString()); bookdtos.add(dto); } return bookdtos; } }
LoginServlet.java
package com.servlet; import java.io.IOException; import java.io.PrintWriter; import java.net.URLDecoder; import java.util.regex.Pattern; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); //response.setCharacterEncoding("gb2312"); PrintWriter out = response.getWriter(); String type = request.getParameter("type"); if (type != null) { String isoname = request.getParameter("name"); // String name=new String(isoname.getBytes("iso8859-1"),"UTF-8"); String name = URLDecoder.decode(isoname, "UTF-8"); String password = request.getParameter("password"); if ("ajaxcheck".equals(type)) { if (!name.equals("yzy")) out.print("username " + name + " is not exgist"); } if ("submit".equals(type)) { //通过正则表达式 对密码进行验证 String errorMsg = ""; if (!Pattern.compile("^[0-9a-zA-Z\u4e00-\u9fa5]+$") .matcher(password) .matches()) { errorMsg = "密码必须由数字字母组成"; response.sendRedirect("index.jsp?errorMsg=" + errorMsg); } else { if (name.equals("yzy") && password.equals("123")) response.sendRedirect("show.jsp"); else { errorMsg = "用户名或密码错误"; response.sendRedirect("index.jsp?errorMsg=" + errorMsg); } } } } } }
================jsp===
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <script type="text/javascript" src="jquery-1.4.2.min.js"></script> <script> $(function(){ $("#name").blur(function(){ var name=$("#name").val(); // var name=encodeURI($("#name").val()); // var name=encodeURI(encodeURI($("#name").val())); // if(isChinaOrNumbOrLett(name)) $.post("LoginServlet",{ type:"ajaxcheck",name:name},function(data){$("#namecheck").text(data);} ) // else // alert("用户名必须由汉字、字母、数字组成 "); }); }); /* 用途:检查输入字符串是否只由汉字、字母、数字组成 输入: value:字符串 返回: 如果通过验证返回true,否则返回false */ function isChinaOrNumbOrLett(s) {//判断是否是汉字、字母、数字组成 var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$"; var re = new RegExp(regu); if (re.test(s)) { return true; } else { return false; } } </script> </head> <body> <center> 欢迎登陆FaceBook <form action="LoginServlet?type=submit" method="post"> 用户名; <input type="text" name="name" id="name" /> <div id="namecheck"></div> 密 码: <input type="password" name="password" /> <div id="passwordcheck"></div> <% String msg = request.getParameter("errorMsg"); if(msg!=null){ out.println(msg); } %> <input type="submit" value="提交" /> </form> <a href="/show.jsp"> aaa</a> </center> </body> </html>
show.jsp
<%@ page language="java" import="java.util.*,com.model.*" pageEncoding="gb2312"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'pageInfo.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <script type="text/javascript" src="jquery-1.4.2.min.js"></script> <STYLE> A:hover { color:red; text-transform:uppercase; letter-spacing:1cm } </STYLE> <script> var loadFinish = function(data) { var bookinfo = ""; var books = $.parseJSON(data); for(var i=0;i<books.length;i++) { var book = books[i]; bookinfo = bookinfo+ book.id + book.name+book.str_publish_time +"<br/> " ; } $("#list").html(bookinfo); } $(function(){ //设置 超链接不可以使用 //$("a").css({disabled:disabled}); var hash = document.location.hash; //如果不含有# 说明是第一次来的这个页面 if(!hash){showBooksInfo(1);} $("#first").click(function(){ showBooksInfo(1);}); $("#next").click(function(){ showBooksInfo(parseInt( document.location.hash.split("#")[1])+1);}); $("#previous").click(function(){ showBooksInfo(parseInt( document.location.hash.split("#")[1])-1);}); } ); function showBooksInfo(int_pagehash) { //设置地址栏hash document.location.hash = int_pagehash; $.post("Book_ShowServlet",{pagehash:int_pagehash},loadFinish); } </script> </head> <body> <div id="list"> </div> <table> <tr> <td><a id="first" href="javascript:void(0)" >首页</a></td> <td><a id="next" href="javascript:void(0)">下一页 </a></td> <td><a id="previous" href="javascript:void(0)">上一页 </a></td> </tr> </table> </body> </html>
======jar===
json-lib-2.1.jar
ezorph-1.0.3.jar
jstl-1.2.jar
commons-beanutils-1.7.0.jar
commons-collections-3.2.jar
commons-lang-2.3.jar
commons-logging-1.0.4.jar
commons-logging-api-1.1.jar
standard.jar
相关推荐
光伏风电混合并网系统Simulink仿真模型:光伏发电与风力发电的协同控制与并网逆变器设计,光伏风电混合并网系统simulink仿真模型。 系统有光伏发电系统、风力发电系统、负载、逆变器lcl大电网构成。 光伏系统采用扰动观察法实现mppt控制,经过boost电路并入母线; 风机采用最佳叶尖速比实现mppt控制,通过三相电压型pwm变器整流并入母线; 并网逆变器VSR采用基于电网电压定向矢量控制双闭环,经过lcl滤波器并入大电网。 ,核心关键词: 1. 光伏风电混合并网系统 2. Simulink仿真模型 3. 光伏发电系统 4. 风力发电系统 5. 负载 6. 逆变器LCL大电网 7. MPPT控制 8. 扰动观察法 9. Boost电路 10. 最佳叶尖速比 11. 三相电压型PWM变换器 12. VSR电网电压定向矢量控制双闭环 13. LCL滤波器 以上关键词用分号分隔为: 光伏风电混合并网系统;Simulink仿真模型;光伏发电系统;风力发电系统;负载;逆变器LCL大电网;MPPT控制;扰动观察法;Boost电路;最佳叶尖速比
DXP元器件库,初学者有用
2025专业技术人员继续教育公需课题库(附含答案).pptx
C++编写的资产管理系统(带SQLServer数据库文件。)。
Simulink下的MATLAB平台在智能电网微网运行控制中的并网仿真与逆变器控制策略探讨,Simulink:智能电网微网运行控制仿真及其参考资料 关键词:微电网 运行控制 仿真平台:MATLAB 主要内容:并网仿真 逆变器控制 下垂控制 ,关键词:微电网; 运行控制; Simulink仿真; MATLAB; 并网仿真; 逆变器控制; 下垂控制; 智能电网微网。,"Simulink在MATLAB平台下的微电网运行控制仿真研究及资料整合"
Matlab中的HMM隐马尔科夫与Markov马尔科夫时间序列预测源代码及数据集(可运行,适用于单变量预测),HMM隐马尔科夫时间序列预测 Markov马尔科夫时间序列预测(Matlab) 1.所有程序经过验证,保证可以运行 2.程序包括源码(主程序一个,子函数两个)和数据集; 3.程序适用于单变量时间序列预测。 注意:HMMP为主程序、data为数据集,其余m文件为函数文件,运行主文件HMMP即可。 ,HMM隐马尔科夫模型; 时间序列预测; Matlab程序; 验证可用; 主程序; 函数文件; 单变量预测; 包含源码与数据集。,"HMM与马尔科夫模型结合的时间序列预测程序(Matlab)验证版"
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
python学习练习游戏案例,详细备注解释代码,最适合初学者,练手学习,资源已上传欢迎下载学习
三菱FX系列自由口通讯程序详解:FX3U-232BD与上位机通讯及PLC与触摸屏应用,三菱FX自由口通讯程序 三菱FX系列自由口通讯程序 利用FX3U-232BD与上位机自由口通讯, 有PLC程序和触摸屏程序,通过连接三根线即可通讯 具有很好的学习意义和借鉴价值。 ,核心关键词:三菱FX系列; 自由口通讯程序; FX3U-232BD; 上位机; PLC程序; 触摸屏程序; 三线连接; 学习意义; 借鉴价值。,三菱FX系列自由口通讯程序:简易编程与实用连接指南
1990-2022年各省份基尼系数
Python自动化办公源码-60 pandas-matplotlib
MATLAB下的模型预测控制在楼宇负荷需求响应中的研究与应用:结合热力学与舒适度考量,MATLAB代码:基于模型预测控制的楼宇负荷需求响应研究 关键词:楼宇负荷 空调 模型预测控制 需求响应 参考文档:《Model Predictive Control of Thermal Storage for Demand Response》完全复现 仿真平台:MATLAB+CVX平台 主要内容:代码主要做的是一个建筑楼宇的需求响应问题,首先利用楼宇的储热特性,结合热力学方程构建了其储热模型,其次,考虑在动态能量电价的引导下,对楼宇负荷进行需求侧管理,从而能够对其负荷曲线进行改善,在需求响应的过程中也考虑了用户的舒适度,相对来讲比较全面,模型的求解采用的是较为创新的模型预测控制算法,更加创新,而且求解的效果更好,店主已经对代码进行了深入的加工和处理,出图效果非常好,代码质量非常高 ,关键词:楼宇负荷; 空调; 模型预测控制; 需求响应; 储热模型; 动态能量电价; 舒适度; MATLAB代码; CVX平台; 深入处理。,基于MATLAB的模型预测控制研究:楼宇负荷需求响应管理与优化
Prius 2004永磁同步电机设计报告:从理论到实践——磁路法、Maxwell仿真建模与温升分析,Prius2004永磁同步电机设计报告: 磁路法、maxwell有限元法、MotorCAD温仿真、应力分析。 (内容比较完善,用于很需要的朋友,不支持讲解,等额外服务哈。 ) 内容:: 1.Excell设计程序,可以了解这个电机是怎么设计出来的,已知功率转矩等,计算电机的体积,叠厚,匝数等。 2.Maxwell参数化仿真模型:可以学习参数化仿真模型,有限元结果可查看。 3. 橡树岭拆解和实测数据:官方的实测数据和差拆解报告。 4.maxwell prius2004建模仿真教程等:ppt资料一步一步教学怎么去建模 5.温升仿真分析,提供motor cad模型 ,磁路法; Maxwell有限元法; MotorCAD温仿真; 应力分析; Excell设计程序; Maxwell参数化仿真模型; 橡树岭拆解实测数据; Maxwelli Prius 2004建模仿真教程; 温升仿真分析; Motor CAD模型。,2004款Prius永磁同步电机设计报告:Excell程序与Maxwell有限元法融
基于Voronoi理论的维修站点选址算法研究.pdf
料箱输送线程序:PLC设备布局图及电气图纸集成系统(包含MultiControl控制卡等,采用STL开发,仅供学习参考),料箱输送线程序,带目的地跟踪,提供设备布局图和电气图纸以及博途程序。 程序语言较多使用了STL,程序仅供学习参考。 硬件配置:PLC:1515-2 PN HMI:TP700 Confort 主要设备有:英特诺直流辊筒电机,控制卡MultiControl;条码阅读器Sick CLV620; 和MiniLoad堆垛机通过Anybus模块通讯;称重模块品牌碧彩BIZERBA;还有使用丹佛斯变频器的提升机。 ,料箱输送线程序; 目的地跟踪; 设备布局图; 电气图纸; 博途程序; STL语言; PLC硬件配置; 英特诺直流辊筒电机; 控制卡MultiControl; 条码阅读器Sick CLV620; Anybus模块通讯; 称重模块碧彩BIZERBA; 丹佛斯变频器提升机。,"多设备集成:带目的地跟踪的料箱输送线博途程序"
1、资源内容地址:https://blog.csdn.net/2301_79696294/article/details/144634074 2、数据特点:今年全新,手工精心整理,放心引用,数据来自权威,且标注《数据来源》,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题 3、适用对象:大学生,本科生,研究生小白可用,容易上手!!! 4、课程引用: 经济学,地理学,城市规划与城市研究,公共政策与管理,社会学,商业与管理
2025网络安全法竞赛题题库及参考答案.pptx
CAN总线在小电流接地故障检测中的应用.pdf
三菱步进电机驱动器控制定位案例:触摸屏PLC程序实现正反转、原点回归及急停报警功能详解,三菱步进电机驱动器控制的定位案例,带有触摸屏程序,plc程序 程序功能实现正反转控制,原点回归,急停报警等 触摸屏有报警显示,故障历史这些常用的画面设置,对控制多轴运动很有帮助,值得去学习一下 ,核心关键词:三菱步进电机驱动器;定位控制;触摸屏程序;PLC程序;正反转控制;原点回归;急停报警;报警显示;故障历史;多轴运动控制。,"三菱步进电机驱动:触摸屏PLC程序化控制多轴定位系统"
2025最新工业机器人考试题库及答案.doc