一.JSP+JQuery
JSP中三种弹出对话框的用法
1.对话框有三种

1:只是提醒,不能对脚本产生任何改变;
2:一般用于确认,返回 true 或者 false
3: 一个带输入的对话框,可以返回用户填入的字符串,常见于某些留言本或者论坛输入内容那里的 插入UBB格式图片

function ale()
{//这个基本没有什么说的,就是弹出一个提醒的对话框alert("123");
}
function firm()
{//利用对话框返回的值 (true 或者 false)if(confirm("确认删除?")){//如果是true //相关删除操作     }
else{alert("你按了取消,那就是返回false");}
}
function prom()
{var name=prompt("请输入您的名字","");//将输入的内容赋给变量 name
//这里需要注意的是,prompt有两个参数,前面是提示的话,后面是当对话框出来后,在对话框里的默认值
if(name)//如果返回的有内容
{ alert("欢迎您:"+ name)}}

2.jquery:在提交前判断所有的文本框是否已经被填充,然后再通过ajax提交
举个添加例子:

function Add(){var flag=0;$("#DBForm input").each(function(){if ("" == $(this).val()) {$(this).after("<span style='color: #ff0000;'>"+ $(this).attr("name")+"不能为空</span>");flag=1;}});if(flag==1){//alert("没提交");}else{var param="listId="+listId+"&"+decodeURIComponent($('#DBForm').serialize(),true);alert(param);        $("#Composition").load("add.do",param);                                                                             }

3.还出现一个很奇葩的问题==||| 方法找不到、。。。。
ajax传过来一个表,表中的一个div中有一个input文本框和input的button,在button上绑定了一个方法,用来检查前面的那个文本框是否为空,但每次运行都显示没这个方法。。。。。醉了,最后我把input的文本框和button分到两个div居然就可以了。。。。为什么呢= =|||
4.长了见识:jquery和prototype.js的区别
都是js库,算不上框架。extJS还能说是框架
prototype是基础类库,对javascript做了大量的扩展,而且很好的支持Ajax
jquery主要是对dom对象的遍历和查找、事件操作、html元素、动画css等,这些是它的强项;然后进行dom操作
等;也能很好的支持ajax和兼容浏览器;

数据库:
mysql基本语句复习:
INSERT INTO tablename(列名…) VALUES(列值);
UPDATE table_anem SET column_name1 = value1, column_name2 = value2, … WHERE … ;
DELETE FROM table1 WHERE …;
几点积累:
**1》即使id是自增长,也可在插入或者修改时对id插入或修改
2.mysql如何让自增id归0解决方案**
方法一: 如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数
truncate table 表名
法二: dbcc checkident (‘table_name’, reseed, new_reseed_value)
当前值设置为 new_reseed_value。如果自创建表后没有行插入该表,则在执行该句后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息
3.execute、executeUpdate、executeQuery三者的区别
execute是executeUpdate与executeQuery的综合
boolean execute(String sql)
允许执行查询语句、更新语句、DDL语句。
返回值为true时,表示执行的是查询语句,可以通过getResultSet方法获取结果;返回值为false时,执行的是更新语句或DDL语句,getUpdateCount方法获取更新的记录数量。

int executeUpdate(String sql)
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,返回值是更新的记录数量或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)

ResultSet executeQuery(String sql)
执行给定的 SQL 语句,该语句返回 ResultSet 对象。
**4.mySQL字段信息
查询某表有哪些字段:**
select COLUMN_NAME from information_schema.COLUMNS where table_name = ‘your_table_name’ and table_schema = ‘your_db_name’;

查询mysql表字段信息的sql语句
SHOW DATABASES //列出 MySQL Server 数据库。
SHOW TABLES [FROM db_name] //列出数据库数据表。
SHOW CREATE TABLES tbl_name //导出数据表结构。
SHOW TABLE STATUS [FROM db_name] //列出数据表及表状态信息。 SHOW COLUMNS FROM tbl_name [FROM db_name] //列出资料表字段
SHOW FIELDS FROM tbl_name [FROM db_name],DESCRIBE tbl_name [col_name]。 SHOW FULL COLUMNS FROM tbl_name [FROM db_name]//列出字段及详情
SHOW FULL FIELDS FROM tbl_name [FROM db_name] //列出字段完整属性
SHOW INDEX FROM tbl_name [FROM db_name] //列出表索引
SHOW STATUS //列出 DB Server 状态。
SHOW VARIABLES //列出 MySQL 系统环境变量。
SHOW PROCESSLIST //列出执行命令。
SHOW GRANTS FOR user //列出某用户权限

servlet
1.当request绑定的参数是固定的时候,不知道参数名,如何获得所有的request绑定的参数

private void showParams(HttpServletRequest request) {Map map = new HashMap();Enumeration paramNames = request.getParameterNames();while (paramNames.hasMoreElements()) {String paramName = (String) paramNames.nextElement();String[] paramValues = request.getParameterValues(paramName);if (paramValues.length == 1) {String paramValue = paramValues[0];if (paramValue.length() != 0) {map.put(paramName, paramValue);}}}Set<Map.Entry<String, String>> set = map.entrySet();System.out.println("------------------------------");for (Map.Entry entry : set) {System.out.println(entry.getKey() + ":" + entry.getValue());}}

2.一堆乱码问题
(1)在jsp页面中alert中文出现乱码
后台接收数据乱码,本来以为是页面编码,但是仅仅是alert中文就出现乱码,所以问题出在页面本身,但是其余地方alert中文没有问题,最终锁定问题出在serialize()上
原因:.serialize()自动调用了encodeURIComponent方法将数据编码了
解决方法:调用decodeURIComponent(XXX,true);将数据解码

decodeURIComponent($('#DBForm').serialize(),true);

2)从request获取对象添加到数据库中出现乱码
出现乱码的地方无非是jsp和servlet接收的时候,servlet通过语句向数据库传值
数据库我用的编码为GBK,JSP页面编码也是GBK,有设置response和request编码
然并没有什么卵用。。。。严重怀疑是否真的转成了GBK编码
查了一下,即使设置了下面三句,也经常出现乱码
response.setContentType(“text/html;charset=utf-8”);
request.setCharacterEncoding(“utf-8”);
response.setCharacterEncoding(“utf-8”);
原因是:具体看(其实没大看懂)http://www.cnblogs.com/_popc/p/3384030.html
ServletRequest.setCharacterEncoding方法设置的是请求消息中的实体内容的字符集编码名称,它只影响getParameter方法对POST方式下的”application/x-www-form-urlencoded”编码格式的实体内容进行URL解码的结果,而不能影响getParameter方法对HTTP请求消息的请求行中的URL地址后的参数进行URL解码的结果。
Tomcat中的ServletRequest对象的getParameter等方法默认采用ISO8859-1字符集编码进行URL解码
我想看看这些参数到底是什么编码,于是找了判断编码的方法和编码转换方法如下

//先熟悉所有常见字符集/** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块      */public static final String US_ASCII = "US-ASCII";/** ISO拉丁字母表 No.1,也叫做ISO-LATIN-1     */public static final String ISO_8859_1 = "ISO-8859-1";/** 8 位 UCS 转换格式     */public static final String UTF_8 = "UTF-8";/** 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序     */public static final String UTF_16BE = "UTF-16BE";/** 16 位 UCS 转换格式,Litter Endian(最高地址存放地位字节)字节顺序     */public static final String UTF_16LE = "UTF-16LE";/** 16 位 UCS 转换格式,字节顺序由可选的字节顺序标记来标识     */public static final String UTF_16 = "UTF-16";/** 中文超大字符集     **/public static final String GBK = "GBK";public static final String GB2312 = "GB2312";
//判断当前字符串的编码格式,就是用目标字符串转换编码后与原有字符串比较,相等的则为该编码,举例如下
if(destination.equals(new String(destination.getBytes("iso8859-1"), "iso8859-1")))
{   return "iso8859-1";//destination=new String(destination.getBytes("iso8859-1"),"utf-8");
}
//一般来说servlet开发中对于中文参数值的处理如下就够了
if(name.equals(new String(name.getBytes("iso8859-1"), "iso8859-1"))){name=new String(request.getParameter("name").getBytes("iso8859-1"),"utf-8");}
........//编码集转换
/*** 字符串编码转换的实现方法* @param str    待转换的字符串* @param oldCharset    源字符集* @param newCharset    目标字符集*/public String changeCharset(String str, String oldCharset, String newCharset) throws UnsupportedEncodingException {if(str != null) {//用源字符编码解码字符串byte[] bs = str.getBytes(oldCharset);return new String(bs, newCharset);}return null;}

**(3)综合来说为避免乱码,应从如下几方面考虑:
@1数据库方面:**
  一是安装mysql时,其中会有一个步骤选择编码方式,此时选择gbk
  二是在安装玩mysql之后,手动修改其配置文件,如下:
  (1)修改 MySql安装目录下面的my.ini(MySQL Server Instance Configuration 文件)。 设置
default-character-set=gbk(注意,有2处)
  (2)修改data目录中相应数据库目录下的db.opt配置文件
default-character-set=gbk
default-collation=gbk_chinese_ci
三,数据库使用
set names ‘gbk’;
(等价于mysql> SET character_set_client=’gbk’;
  mysql> SET character_set_connection=’gbk’
  mysql> SET character_set_results=’gbk’)
  重启数据库,关闭控制台窗口重新登录数据库即可。
@2程序与数据库连接时:
jdbc:mysql://localhost:3306/demo改为jdbc:mysql://localhost:3306/demo? useUnicode=true&characterEncoding=GBK
@3servlet中:
response.setContentType(“text/html;charset=GBK”);
request.setCharacterEncoding(“GBK”);
response.setCharacterEncoding(“GBK”);
所有的获取参数,都判断编码并进行编码转换为GBK
@4.JSP页面
<%@ page contentType=”text/html;charset=GBK”%>
对于序列化参数中的中文,如输入表单的中文序列化后乱码,调用decodeURIComponent(XXX,true)解决
@5.文件本身的编码以及网页浏览器编码
3.
servlet中的请求转发主要有三种方式:(参考http://xiaxia0402.iteye.com/blog/1129287)
1、 forward:是指转发,将当前request和response对象保存,交给指定的url处理。并没有表示页面的跳转,所以地址栏的地址不会发生改变。
request.getRequestDispatcher(“/success.html”).forward(request, response);

2、 redirect:是指重定向,包含两次浏览器请求,浏览器根据url请求一个新的页面,所有的业务处理都转到下一个页面,地址栏的地址会变发生改变。
response.sendRedirect(request.getContextPath()+”/fail.html”);
ndRedirect方法中在要跳转的页面url前必须加上当前web程序路径名,通过request.getContextPath()可以得到

3、 include:意为包含,即包含url中的内容,进一步理解为,将url中的内容包含进当前的servlet当中来,并用当前servlet的request和respose来执行url中的内容处理业务.所以不会发生页面的跳转,地址栏地址不会发生改变。
request.getRequestDispatcher(“/success.html”).include(request, response);
include与forward的区别在于输出的内容,include包含本身servlet与跳转页面内容的结果,而forward不包含本身servlet的内容。

Java部分
在Java中如何遍历Map对象
有一份超详细讲解http://blog.csdn.net/tjcyjd/article/details/11111401
在for-each循环中使用entries来遍历

Map<Integer, Integer> map = new HashMap<Integer, Integer>();  for (Map.Entry<Integer, Integer> entry : map.entrySet()) {  System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());  }  

在for-each循环中遍历keys或values。
如果只需要map中的键或者值,可以通过keySet或values来实现遍历,而不是用entrySet。

Map<Integer, Integer> map = new HashMap<Integer, Integer>();//遍历map中的键for (Integer key : map.keySet()) {System.out.println("Key = " + key);}//遍历map中的值for (Integer value : map.values()) {System.out.println("Value = " + value);}

报表增删改开发过程中知识整合相关推荐

  1. influxdb常用命令、influxdb增删改查、SpringBoot整合influxdb

    influxdb常用命令.influxdb增删改查.SpringBoot整合influxdb 一.influxdb一些概念 1.时序数据库 2.influxdb和mysql类比 3.points(类似 ...

  2. MySQL增删改查基础知识

    前几天学习了MySQL数据库的一些基础知识,了解了后台数据库的一些基础的数据操作:增删改查,对于项目前后台的数据传递有了些概念,总结了一些MySQL的基础语法. 一.数据存储形式发展和数据库作用 根据 ...

  3. jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...

    Java使用jdbc连接MySql数据库,实现增删改查 首先,导入MySql连接数据库的jar包,我用的是 mysql连接jar包 DB类,用于获得数据库连接 import java.sql.Driv ...

  4. java list集合增删改_Java中集合类list的增删改查

    今天给大家带来的是Java中list类的使用,java.util 包提供了list类来对线性数据操作 List接口是Collection接口的子接口,List有一个重要的实现类--ArrayList类 ...

  5. 华山论剑之iOS中(数组,字典,SQLite,CoreData)的“增删改查“

    我们的生活态度就应该是 "不抱怨" ! 其实我想写这篇文章很久了,因为自己做的iOS开发 ,对数据这一块有这极高的要求.所以一些必须的存储数据的使用,我们都有必要熟悉用法.在以前我 ...

  6. mysql 编辑数据库内容_详解mysql数据库增删改操作

    插入数据 insert into 表名(列名1,列名2,列名3) values(值1,值2,值3); insert into user(user_id,name,age) values(1,'nice ...

  7. 对Android手机系统日历数据增删改查操作详解

    Android手机系统日历数据增删改查详解 前段时间需要开发提取手机系统的日历数据的功能,自己开始研究了一下,刚开始还是比较懵逼的,经过仔细研究还是能够完全贯通了. 如果不想细细研究,可以直接下载我的 ...

  8. MySQL数据库基本操作详解(数据库概述、基本操作、增删改查等)

    目录 MySQL数据库概述 MySQL数据库的基本操作 MySQL数据库的表的操作 MySQL数据库的增删查改(CRUD) MySQL数据库概述: 初来乍到,什么是数据库?数据库就是存储数据的仓库,我 ...

  9. MySQL—增删改查,分组,连表,limit,union,alter,排序,去重

    MySQL增删改查 在表格的增删改查中,查的内容是最多的,包括group by ,join,limit,union,alter,排序都是服务于查的 #sql语句数据行操作补充#增加:#insert i ...

最新文章

  1. java打包后的怎么转成源码_PDF转成Word或PPT后还是图片是怎么回事?
  2. TOMCAT服务器概述
  3. 中国版LinkedIn呼之欲出
  4. Serv-U搭建FTP服务器
  5. 星巴克全面上线美团外卖 并联合美团推出“1971客厅”
  6. 快狗打车被曝裁员50% 官方回应:正常调整 实际未超3.5%
  7. webapi 状态返回 php,web api不想建实体,用dynamic类型返回数据
  8. 《windows核心编程》–Windows内存体结构(二)
  9. java rdd hashmap_利用Spark Rdd生成Hfile直接导入到Hbase详解
  10. Nginx图片防盗链、缓存和压缩的示例
  11. mysql多表联合查询事例_MySQL——多表查询详细介绍以及实例
  12. tidyverse —— readr包
  13. python阈值分割_Python实现otsu阈值分割算法
  14. ps滤镜下载大全-PSCC 64位滤镜收集
  15. android技巧:dumpsys简化信息查看Activity结构
  16. 2020 年全球移动 APT事件总结
  17. 特效编辑器开发手记1——令人蛋疼菊紧的Cocos2d-x动态改变粒子数
  18. css 背景图片虚化磨砂效果
  19. android byte转字符串,Andriod | Byte和String的相互转换
  20. 热门好用的企业网盘工具大盘点

热门文章

  1. 三维shepp_logan头模型的投影数据的产生
  2. 联想K900线刷教程 K900软件升级说明书
  3. 过年了,程序员同学如何给老板提加薪?
  4. 热电阻和热电偶的区别
  5. logistic回归的一些直观理解(1.连接函数 logit probit)
  6. 中金预测2015年将两次降息 住房潜在需求逐年降低
  7. Oracle进阶篇之查看执行计划
  8. 【模型压缩】谷歌高被引知识蒸馏论文笔记
  9. Delphi桌面精灵开发
  10. [DP46题] HDU 1864 最大报销额