注:本章内容都是在上一篇文章 通用分页后台显示:https://www.cnblogs.com/ly-0919/p/11058942.html  的基础上进行改进,所以有许多的类都在上一篇,

带来不便请谅解!!!

通用分页的核心

.将上一次查询请求再发一次,只不过改变了页码。

本章重点:

   1、改造上次PageBean里 的内容;

2、页面展示
   3、创建控制层  servlet
   4、自定义分页标签

5、助手类信息

1、补全后的PageBean:

  1. package com.yuan.util;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8.  
  9. /**
  10. * 分页工具类
  11. *
  12. */
  13. public class PageBean {
  14.  
  15. private int page = ;// 页码
  16.  
  17. private int rows = ;// 页大小
  18.  
  19. private int total = ;// 总记录数
  20.  
  21. private boolean pagination = true;// 是否分页
  22.  
  23. private Map<String, String[]> paMap = new HashMap<>();
  24.  
  25. private String url;
  26.  
  27. public void setRequest(HttpServletRequest req) {
  28. Map<String, String[]> parameterMap = req.getParameterMap();
  29. StringBuffer url = req.getRequestURL();
  30. //保存上一次请求所携带的参数
  31. this.setPaMap(req.getParameterMap());
  32. this.setUrl(req.getRequestURL().toString());
  33.  
  34. //在jsp页面来控制是否分页
  35. // this.setPagination(req.getParameter("pagination"));
  36. //在jsp页面控制一页展示多少条信息
  37. // this.setRows(req.getParameter("rows"));
  38. this.setPage(req.getParameter("page"));
  39. }
  40.  
  41. //setPage重载
  42. private void setPage(String page) {
  43. this.page = StringUtils.isNotBlank(page) ? Integer.valueOf(page):this.page;
  44.  
  45. }
  46.  
  47. //setPagination重载
  48. public void setPagination(String pagination) {
  49. this.pagination = StringUtils.isNotBlank(pagination) ? !"false".equals(pagination):this.pagination;
  50.  
  51. }
  52.  
  53. //setRows重载
  54. public void setRows(String rows) {
  55. this.rows = StringUtils.isNotBlank(rows)?Integer.valueOf(rows):this.rows;
  56.  
  57. }
  58.  
  59. public Map<String, String[]> getPaMap() {
  60. return paMap;
  61. }
  62.  
  63. public void setPaMap(Map<String, String[]> paMap) {
  64. this.paMap = paMap;
  65. }
  66.  
  67. public String getUrl() {
  68. return url;
  69. }
  70.  
  71. public void setUrl(String url) {
  72. this.url = url;
  73. }
  74.  
  75. public PageBean() {
  76. super();
  77. }
  78.  
  79. public int getPage() {
  80. return page;
  81. }
  82.  
  83. public void setPage(int page) {
  84. this.page = page;
  85. }
  86.  
  87. public int getRows() {
  88. return rows;
  89. }
  90.  
  91. public void setRows(int rows) {
  92. this.rows = rows;
  93. }
  94.  
  95. public int getTotal() {
  96. return total;
  97. }
  98.  
  99. public void setTotal(int total) {
  100. this.total = total;
  101. }
  102.  
  103. public void setTotal(String total) {
  104. this.total = Integer.parseInt(total);
  105. }
  106.  
  107. public boolean isPagination() {
  108. return pagination;
  109. }
  110.  
  111. public void setPagination(boolean pagination) {
  112. this.pagination = pagination;
  113. }
  114.  
  115. /**
  116. * 获得起始记录的下标
  117. *
  118. * @return
  119. */
  120. public int getStartIndex() {
  121. return (this.page - ) * this.rows;
  122. }
  123.  
  124. @Override
  125. public String toString() {
  126. return "PageBean [page=" + page + ", rows=" + rows + ", total=" + total + ", pagination=" + pagination + "]";
  127. }
  128.  
  129. /**
  130. * 获取最大页码数
  131. * @return
  132. */
  133. public int getMaxPage() {
  134.  
  135. return this.total % this.rows == ? this.total / this.rows : this.total / this.rows+;
  136. }
  137.  
  138. /**
  139. * 下一页
  140. * @return
  141. */
  142. public int getNexPage() {
  143.  
  144. return this.page < this.getMaxPage() ? this.page+ : this.page;
  145. }
  146.  
  147. /**
  148. * 上一页
  149. * @return
  150. */
  151. public int getPreviousPage() {
  152.  
  153. return this.page > ? this.page- : this.page;
  154. }
  155.  
  156. }

2、jsp页面展示,分页代码插入到了控制层的Servlet里面

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@ page isELIgnored="false"%> <!-- 中途遇到EL表达式(${})失效,插入此代码解决 -->
  4. <%@taglib prefix="z" uri="/yuan" %> <!-- 导入自定义标签库使用自定义的分页标签 -->
  5. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  7. <html>
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  10. <title>Insert title here</title>
  11. </head>
  12. <body>
  13. <c:if test="${empty bookList }">
  14. <jsp:forward page="bookServlet.action"></jsp:forward>
  15. </c:if>
  16. <h2>小说目录</h2>
  17. <br>
  18. <form action="${pageContext.request.contextPath}/bookServlet.action"
  19. method="post">
  20. 书名:<input type="text" name="bname"> <input type="submit"
  21. value="确定">
  22. <input type="hidden" name="pagination" value="false">
  23. <input type="hidden" name="rows" value="">
  24. </form>
  25. <table border="" width="100%">
  26. <tr>
  27. <td>编号</td>
  28. <td>名称</td>
  29. <td>价格</td>
  30. </tr>
  31. <c:forEach items="${bookList }" var="s">
  32. <tr>
  33. <td>${s.bid }</td>
  34. <td>${s.bname }</td>
  35. <td>${s.price}</td>
  36. </tr>
  37. </c:forEach>
  38. </table>
  39. <z:Page pageBean="${pageBean }"></z:Page>
  40.  
  41. </body>
  42. </html>

3、创建控制层Servlet

  1. package com.web;
  2.  
  3. import java.io.IOException;
  4. import java.sql.SQLException;
  5. import java.util.List;
  6. import java.util.Map;
  7.  
  8. import javax.servlet.ServletException;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12.  
  13. import com.yuan.dao.BookDao;
  14. import com.yuan.entity.Book;
  15. import com.yuan.util.PageBean;
  16.  
  17. public class BookServlet extends HttpServlet {
  18.  
  19. /**
  20. *
  21. */
  22. private static final long serialVersionUID = 1L;
  23. private BookDao bookDao = new BookDao();
  24.  
  25. @Override
  26. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  27. doPost(req, resp);
  28. }
  29.  
  30. @Override
  31. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  32. String bname = req.getParameter("bname");
  33. Book book = new Book();
  34. book.setBname(bname);
  35.  
  36. //
  37. PageBean bean = new PageBean();
  38. try {
  39. bean.setRequest(req);
  40. List<Book> list = this.bookDao.list(book,bean);
  41. req.setAttribute("bookList", list);
  42. req.setAttribute("pageBean", bean);
  43. req.getRequestDispatcher("/BookList.jsp").forward(req, resp);
  44. } catch (InstantiationException | IllegalAccessException | SQLException e) {
  45. // TODO Auto-generated catch block
  46. e.printStackTrace();
  47. }
  48. }
  49.  
  50. }

附:web.xml文件配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
  3. <web-app id="WebApp_ID">
  4. <display-name>Test_pagebean</display-name>
  5.  
  6. <servlet>
  7. <servlet-name>bookServlet</servlet-name>
  8. <servlet-class>com.web.BookServlet</servlet-class>
  9. </servlet>
  10. <servlet-mapping>
  11. <servlet-name>bookServlet</servlet-name>
  12. <url-pattern>/bookServlet.action</url-pattern>
  13. </servlet-mapping>
  14.  
  15. </web-app>

4、自定义分页标签

  1. package com.tag;
  2.  
  3. import java.io.IOException;
  4. import java.util.Map;
  5. import java.util.Map.Entry;
  6. import java.util.Set;
  7.  
  8. import javax.servlet.jsp.JspException;
  9. import javax.servlet.jsp.JspWriter;
  10. import javax.servlet.jsp.tagext.BodyTagSupport;
  11.  
  12. import com.yuan.util.PageBean;
  13.  
  14. public class PageTag extends BodyTagSupport {
  15.  
  16. /**
  17. *
  18. */
  19. private static final long serialVersionUID = 1L;
  20.  
  21. private PageBean pageBean;
  22.  
  23. public PageBean getPageBean() {
  24. return pageBean;
  25. }
  26.  
  27. public void setPageBean(PageBean pageBean) {
  28. this.pageBean = pageBean;
  29. }
  30.  
  31. @Override
  32. public int doStartTag() throws JspException {
  33. JspWriter out = pageContext.getOut();
  34. try {
  35. out.print(toHTML());
  36. } catch (IOException e) {
  37. // TODO Auto-generated catch block
  38. e.printStackTrace();
  39. }
  40. return super.doStartTag();
  41. }
  42.  
  43. private String toHTML() {
  44. StringBuilder sb= new StringBuilder();
  45.  
  46. //拼接下一次发送请求所要提交的隐藏的form表单
  47. sb.append("<form id='pageBeanForm' action='"+pageBean.getUrl()+"' method='post'>");
  48. sb.append("<input type='hidden' name='page'>");
  49.  
  50. Map<String, String[]> paMap = pageBean.getPaMap();
  51. if(paMap != null && paMap.size()>0) {
  52. Set<Entry<String, String[]>> entrySet = paMap.entrySet();
  53. for (Entry<String, String[]> entry : entrySet) {
  54. //上一次请求可能携带页码name=page的参数,但是改参数在前面已经单独赋值,
  55. //因为上一次请求是第一页的数据,下一次可能是第二页,一位这前后请求page对应的值是不一样的,需要单独赋值
  56.  
  57. if(!"page".equals(entry.getKey())) {
  58. for(String val:entry.getValue()) {
  59. sb.append("<input type='hidden' name='"+entry.getKey()+"' value='"+val+"'>");
  60.  
  61. }
  62. }
  63. }
  64. }
  65.  
  66. sb.append("</form>");
  67.  
  68. //拼接分页条
  69. sb.append("<div style='text-align: right; font-size: 12px;'>");
  70. sb.append("每页"+pageBean.getRows()+"条,共"+pageBean.getTotal()+"条,第"+pageBean.getPage()+"页,共"+pageBean.getMaxPage()+"页&nbsp;&nbsp;<a ");
  71. sb.append(" href='javascript:gotoPage(1)'>首页</a>&nbsp;&nbsp;<a");
  72. sb.append(" href='javascript:gotoPage("+pageBean.getPreviousPage()+")'>上一页</a>&nbsp;&nbsp;<a");
  73. sb.append(" href='javascript:gotoPage("+pageBean.getNexPage()+")'>下一页</a>&nbsp;&nbsp;<a");
  74. sb.append(" href='javascript:gotoPage("+pageBean.getMaxPage()+")'>尾页</a>&nbsp;&nbsp;<input type='text'");
  75. sb.append(" id='skipPage'");
  76. sb.append(" style='text-align: center; font-size: 12px; width: 50px;'>&nbsp;&nbsp;<a");
  77. sb.append(" href='javascript:skipPage()'>Go</a>");
  78. sb.append("</div>");
  79. //拼接分页所需要的js代码
  80. sb.append("<script type='text/javascript'>");
  81. sb.append(" function gotoPage(page) {");
  82. sb.append(" document.getElementById('pageBeanForm').page.value = page;");
  83. sb.append(" document.getElementById('pageBeanForm').submit();");
  84. sb.append(" }");
  85. sb.append(" function skipPage() {");
  86. sb.append(" var page = document.getElementById('skipPage').value;");
  87. sb.append(" if(!page || isNaN(page) || parseInt(page)<1 || parseInt(page)>"+pageBean.getMaxPage()+"){");
  88. sb.append(" alert('请输入1~N的数字');");
  89. sb.append(" return;");
  90. sb.append(" }");
  91. sb.append(" gotoPage(page);");
  92. sb.append(" }");
  93. sb.append(" </script>");
  94.  
  95. return sb.toString();
  96. }
  97.  
  98. }

   .注意在append拼接时需要注意空格

将自定义标签的类配到tld文件中

  1. <!DOCTYPE taglib
  2. PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
  3. "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
  4. <!-- 标签库描述符 -->
  5. <taglib xmlns="http://java.sun.com/JSP/TagLibraryDescriptor">
  6. <!-- 代表标签库的版本号 -->
  7. <tlib-version>1.0</tlib-version>
  8. <!-- 代表jsp的版本 -->
  9. <jsp-version>1.2</jsp-version>
  10. <!-- 你的标签库的简称 -->
  11. <short-name>test</short-name>
  12. <!-- 你标签库的引用uri -->
  13. <uri>/zking</uri>
  14.  
  15. <!-- 1自定义分页标签 -->
  16. <tag>
  17. <name>Page</name> //标签库中的标签名
  18. <tag-class>com.tag.PageTag</tag-class>//标签的助手类全路径名
  19. <body-content>JSP</body-content>
  20. <attribute>
  21. <name>pageBean</name>//标签属性名 在配置的时候必须与助手类的属性一致
  22. <required>true</required>//该属性是否必填
  23. <rtexprvalue>true</rtexprvalue>//是否支持表达式(EL)
  24. </attribute>
  25. </tag>
  26.  
  27. </taglib>

5、助手类信息

StringUtils :

  1. package com.yuan.util;
  2.  
  3. public class StringUtils {
  4. // 私有的构造方法,保护此类不能在外部实例化
  5. private StringUtils() {
  6. }
  7.  
  8. /**
  9. * 如果字符串等于null或去空格后等于"",则返回true,否则返回false
  10. *
  11. * @param s
  12. * @return
  13. */
  14. public static boolean isBlank(String s) {
  15. boolean b = false;
  16. if (null == s || s.trim().equals("")) {
  17. b = true;
  18. }
  19. return b;
  20. }
  21.  
  22. /**
  23. * 如果字符串不等于null或去空格后不等于"",则返回true,否则返回false
  24. *
  25. * @param s
  26. * @return
  27. */
  28. public static boolean isNotBlank(String s) {
  29. return !isBlank(s);
  30. }
  31.  
  32. }

EncodingFiter :

  1. package com.yuan.util;
  2.  
  3. import java.io.IOException;
  4. import java.util.Iterator;
  5. import java.util.Map;
  6. import java.util.Set;
  7.  
  8. import javax.servlet.Filter;
  9. import javax.servlet.FilterChain;
  10. import javax.servlet.FilterConfig;
  11. import javax.servlet.ServletException;
  12. import javax.servlet.ServletRequest;
  13. import javax.servlet.ServletResponse;
  14. import javax.servlet.annotation.WebFilter;
  15. import javax.servlet.http.HttpServletRequest;
  16. import javax.servlet.http.HttpServletResponse;
  17.  
  18. /**
  19. * 中文乱码处理
  20. *
  21. */
  22. @WebFilter(urlPatterns=("/*"))
  23. public class EncodingFiter implements Filter {
  24.  
  25. private String encoding = "UTF-8";// 默认字符集
  26.  
  27. public EncodingFiter() {
  28. super();
  29. }
  30.  
  31. public void destroy() {
  32. }
  33.  
  34. public void doFilter(ServletRequest request, ServletResponse response,
  35. FilterChain chain) throws IOException, ServletException {
  36. HttpServletRequest req = (HttpServletRequest) request;
  37. HttpServletResponse res = (HttpServletResponse) response;
  38.  
  39. // 中文处理必须放到 chain.doFilter(request, response)方法前面
  40. res.setContentType("text/html;charset=" + this.encoding);
  41. if (req.getMethod().equalsIgnoreCase("post")) {
  42. req.setCharacterEncoding(this.encoding);
  43. } else {
  44. Map map = req.getParameterMap();// 保存所有参数名=参数值(数组)的Map集合
  45. Set set = map.keySet();// 取出所有参数名
  46. Iterator it = set.iterator();
  47. while (it.hasNext()) {
  48. String name = (String) it.next();
  49. String[] values = (String[]) map.get(name);// 取出参数值[注:参数值为一个数组]
  50. for (int i = 0; i < values.length; i++) {
  51. values[i] = new String(values[i].getBytes("ISO-8859-1"),
  52. this.encoding);
  53. }
  54. }
  55. }
  56.  
  57. chain.doFilter(request, response);
  58. }
  59.  
  60. public void init(FilterConfig filterConfig) throws ServletException {
  61. String s = filterConfig.getInitParameter("encoding");// 读取web.xml文件中配置的字符集
  62. if (null != s && !s.trim().equals("")) {
  63. this.encoding = s.trim();
  64. }
  65. }
  66.  
  67. }

jsp页面显示(首页):

下一页:

尾页:

上一页:

跳转:

如需要对另一个数据库表的信息进行分页,需修改dao层查询的语句,新建实体类;还有就是新建一个servlet和jsp页面。

完善上一篇后台显示对比的另一个实体类;

新建servlet和jsp页面。

jsp页面代码:

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@ page isELIgnored="false"%>
  4. <%@taglib prefix="z" uri="/yuan" %>
  5. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  7. <html>
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  10. <title>Insert title here</title>
  11. </head>
  12. <body>
  13.  
  14. <h2>小说目录</h2>
  15. <br>
  16. <form action="/BlogServlet"
  17. method="post">
  18. 书名:<input type="text" name="bookName"> <input type="submit"
  19. value="确定">
  20. <input type="hidden" name="pagination" value="false">
  21. <input type="hidden" name="rows" value="20">
  22. </form>
  23. <table border="1" width="100%">
  24. <tr>
  25. <td>编号</td>
  26. <td>名称</td>
  27. </tr>
  28. <c:forEach items="${blogList }" var="s">
  29. <tr>
  30. <td>${s.id }</td>
  31. <td>${s.bookName }</td>
  32. </tr>
  33. </c:forEach>
  34. </table>
  35. <z:Page pageBean="${pageBean }"></z:Page>
  36.  
  37. </body>
  38. </html>

控制层Servlet:

  1. package com.web;
  2.  
  3. import java.io.IOException;
  4. import java.sql.SQLException;
  5. import java.util.List;
  6.  
  7. import javax.servlet.ServletException;
  8. import javax.servlet.annotation.WebServlet;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12.  
  13. import com.yuan.dao.BlogDao;
  14. import com.yuan.entity.Bookxyj;
  15. import com.yuan.util.PageBean;
  16.  
  17. @WebServlet("/BlogServlet")
  18. public class BlogServlet extends HttpServlet {
  19.  
  20. /**
  21. *
  22. */
  23. private static final long serialVersionUID = 1L;
  24.  
  25. private BlogDao blogDao = new BlogDao();
  26. @Override
  27. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  28. doPost(req, resp);
  29. }
  30.  
  31. @Override
  32. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  33. Bookxyj xyj = new Bookxyj();
  34. xyj.setBookName(req.getParameter("bookName"));
  35. PageBean pageBean = new PageBean();
  36. try {
  37. pageBean.setRequest(req);
  38. List<Bookxyj> list = this.blogDao.list(xyj, pageBean);
  39. req.setAttribute("blogList", list);
  40. req.setAttribute("pageBean", pageBean);
  41. req.getRequestDispatcher("/blogList.jsp").forward(req, resp);
  42. } catch (InstantiationException | IllegalAccessException | SQLException e) {
  43.  
  44. e.printStackTrace();
  45. }
  46. super.doPost(req, resp);
  47. }
  48.  
  49. }

谢谢观看!!!上一篇地址  https://www.cnblogs.com/ly-0919/p/11058942.html

通用分页jsp页面显示的更多相关文章

  1. 转:jsp页面显示中文乱码解决方案

    jsp页面显示中文乱码: jsp页面的编码方式有两个地方需要设置: <%@ page language="java" import="java.util.*&quo ...

  2. JSP 页面显示sql中数据。el

    存储数据库字段. package Bean; /** * Created by Administrator on 2017/5/24. */ public class info { private S ...

  3. 如何解决JSP页面显示乱码问题

    一.JSP页面显示乱码 下面的显示JSP页面(display.jsp)就出现乱码: <html> <head> <title>JSP的中文处理</title& ...

  4. jsp页面显示问题

    一.在jsp页面的表格中,如果有表格中的某一个元素 内容太长,需要截取显示,方法如下: <%@ taglib prefix="fn" uri="http://jav ...

  5. JSP页面显示乱码

    下面的显示页面(display.jsp)就出现乱码: <html> <head> <title>JSP的中文处理</title> <meta ht ...

  6. Java从服务器上获取时间,动态在jsp页面显示

    Java获取服务器时间,动态显示到jsp页面,大家都是到Java只能获取一次,到页面的时间是静态的,不过通过js和Java的合作,巧妙地实现此功能 本人是给电视做系统,客户要求页面能显示时间,因为电视 ...

  7. Jsp页面显示时间:<fmt>标签问题

    <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%> <%@ taglib ...

  8. 关于springmvc 只能在index.jsp页面显示图片的处理办法jsp页面无法显示图片

    首先,已经配置好了mvc对静态资源的处理 只有index,jsp可以显示图片 其他页面同样的代码则不显示 后来折腾了半天,发现 index是static的父目录的级别文件 可以向下访问 但是其他的js ...

  9. jsp页面显示数据库乱码

    如何页面是utf-8,数据库也是的话,页面显示数据库乱码的话,就是数据库的格式有问题

随机推荐

  1. 定时任务-SQL Server代理 作业

    创建一个sqlserver作业 sqlserver的作业的功能更加偏向于数据库,处理数据,迁移等.当然也可以调用接口(存储过程调用接口  https://www.cnblogs.com/cynchan ...

  2. Jenkins+maven+gitlab自动化部署之构建Java应用(五)

    前面几篇文章介绍jenkins部署以及配置,接下来我们,就介绍下如何使用jenkins发布应用. 1)新建项目 jenkins首页,点击左上新建任务,出现下图,填写对应信息,然后点击确定: 2)项目参 ...

  3. 关于工作中.net转java遇到的一个远程调用传递重复参的问题。

    工作中遇到一个很奇怪的传参问题.之前.net使用的是一个List列表,列表中有几个重复的参数.列表中使用的model类是KeyValue. 我使用java模仿其写法,传递List和KeyValue.对 ...

  4. [ERROR] /D:/IDEA文件/travel/src/main/java/cn/itcast/travel/util/MailUtils.java:[1,1] 非法字符: '\ufeff'

    报错: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (defau ...

  5. 随机数种子random.seed()理解

    总结: 若采用random.random(),每次都按照一定的序列(默认的某一个参数)生成不同的随机数. 若采用随机数种子random.seed(100),它将在所设置的种子100范围内调用rando ...

  6. mysql数据库,数据表,数据的增删查改语句

    查询mysql支持的引擎 show engines; 查询mysql支持的字符集 show character set; 设置mysql默认存储引擎 set default_storage_engin ...

  7. [BZOJ3681]Arietta(可持久化线段树合并优化建图+网络流)

    暴力建图显然就是S->i连1,i->j'连inf(i为第j个力度能弹出的音符),j'->T连T[j]. 由于是“某棵子树中权值在某区间内的所有点”都向某个力度连边,于是线段树优化建图 ...

  8. .NET Core 使用swagger进行分组显示

    其实,和swagger版本管理类似;只是平时接口太多;不好供前端人员进行筛选. 下面进入主题: 首先: //注册Swagger生成器,定义一个和多个Swagger 文档 services.AddSwa ...

  9. elasticsearch 开机自启

    linux下开机自启: 在/etc/init.d目录下新建文件elasticsearch 并敲入shell脚本: #!/bin/sh #chkconfig: #description: elastic ...

  10. C#合并选中EXCEL中的各个工作表

    合并选中EXCEL中的各个工作表,以第一个选中的EXCEL文件里的工作表进行匹配,遍历后面的每个EXCEL文件,有相同的工作表就合并: private void button1_Click(objec ...