- 浏览: 529 次
-
最新评论
收藏列表
- 全部 [175]
- 默认 [46]
- jython [1]
- java泛型编程 [1]
- js正则表达式详解 [1]
- jdbc连接数据库 [1]
- 数据库连接池配置 [1]
- struts.xml [1]
- java读取xml文件 [1]
- java文件读写操作 [1]
- http://china-pub2010.iteye.com/blog/1413544 [1]
- java连接sql server数据库 [1]
- java连接sql server数据库2 [1]
- web.xml中配置404错误页面 [1]
- 自己的java读取xml文件-采用jdom技术 [1]
- 自己写的java读取xml文件-采用jdom技术-2 [1]
- 自己写的java读取xml文件-采用jdom技术-3 [1]
- js 解析xml文件实现省市级联下拉菜单 [1]
- frame框架的应用 [1]
- frame框架的应用2 [1]
- html 第六章 css + div实现整体布局 [1]
- 为div添加滚动条 博客分类: css [1]
- 布局管理 [1]
- java 连接各种数据库 [1]
- 自己的xml_dtree树形菜单的实现 [1]
- spring连接池配置详解 [1]
- spring连接池配置详解2 [1]
- spring连接池配置详解3 [1]
- hibernate数据库连接池配置 [1]
- tomcat配置数据库连接池 [1]
- tomcat配置数据库连接池2 [1]
- commons-fileupload工具的api与开发实例解析(一) [1]
- 利用 commons-fileupload 实现文件上传 [1]
- apache common fileupload api 详解 [1]
- 用java生成word文档 [1]
- java读取与写入excel文件 [1]
- java读写word文档2 [1]
- java poi word 写文档 [1]
- 实现jxl读取excel的demo实例 [1]
- 使用jacob来处理word文档—jacob的使用及下载安装 [1]
- java读取word文档-3 [1]
- js正则表达式访问网址 [1]
- 正则表达式笔记 [1]
- js正则表达式 2 [1]
- javascript与jquery 控制表格行的字体与背景色 [1]
- 给奇偶行分别设置不同的背景色 [1]
- strtus2通常情况下使用以下两种方式来访问上述三种对象,即servlet api解藕和耦合的访问方式。 [1]
- hibernate批处理 hibernatejdbc [2]
- 自己的jquery-dialog [1]
- struts2 上传文件大小设置 [2]
- struts2 上传文件类型限制 [1]
- jquery 异步提交表单并弹出提示结果信息 [1]
- 超级链接中的target关键字 [1]
- 自己的jquery 异步提交表单并弹出提示结果信息22 [1]
- struts2 ognl表达式的应用 [1]
- hibernate批处理2 [1]
- jquery easyui 操作总结 [1]
- jquery 操作总结 [1]
- jmail 简单应用 [1]
- struts2 文件下载 [1]
- 网页上的表格边框设计更多效果变化 [1]
- struts2文件下载 12 [1]
- 部件表与新物料认证表的关联关系 [1]
- js正则表达式验证数字 [1]
- 自己的hibernate批处理 [1]
- hibernate批处理pojo类 [1]
- hibernate批处理action [1]
- newmateappbilldaoimpl.java [1]
- dqdocumentdaoimpl.java [1]
- dqassemblydaoimpl.java [1]
- 文件上传action [1]
- 文件下载action [1]
- 文件下载页面 [1]
- 从word模板生成word文件 [1]
- <s:action>标签的使用 [1]
- 单元测试-junit [1]
- 单元测试-junit-dao层 [1]
- 监听器的创建 [1]
- holdpuke_1 [1]
- holdpuke_2 [1]
- holdpuke_3 [1]
- holdpuke_4 [1]
- holdpuke_5 [1]
- holdpuke_6 [1]
- holdpuke_7 [1]
- holdpuke_8 [1]
- jython-2 [1]
- jython_3 [1]
- 自定义标签和标签库函数的学习--自己的demo [1]
- 自定义标签和标签库函数的学习 [1]
- 手动编译java文件 [1]
- jquery_demo_1 [1]
- jquery批量文件上传 [1]
- 重写hashcode方法和equals方法demo [1]
- 重写hashcode方法和equals方法demo2 [1]
- 重写hashcode和equals方法2 [1]
- java web定时任务 [1]
- java异地备份 [1]
- linux上部署java web应用 [1]
- 异地备份2 [1]
- java读写文件如何避免中文乱码 [1]
- system.data.sqlclient.sqlerror: 备份集中的数据库备份与现有的 'xxx' 数据库不同 [1]
- sql server 日期操作 [1]
- 用java 程序实现二进制像十进制转化 或十进制转化为二进制 [1]
- sql server 2005 及以上版本的sql分页查询 [1]
- sql server 2005-----sql语句分页sql [1]
- sql中的日期操作 [1]
- dwr demo [1]
- 我的校验码生成技术--demo [1]
- log4j--demo [1]
- license系统功能介绍 [1]
- java枚举类型的使用--demo [1]
- 自己的文件批量压缩demo [1]
- java调用mysql存储过程的简单示例 [1]
- jfreechart报表技术的原理简述: [1]
- 多线程demo--生产者与消费者 [1]
- uploadify传参解决方法 [1]
- svn服务器的配置 [1]
- birtdemo.rptdesign文件01 [1]
- birtdemo.rptdesign文件02 [1]
- 获取birt报表引擎对象 [1]
- http://www.iteye.com/topic/611837 [1]
- 表单校验checkform [1]
- html5 canvas平移-示例 [1]
- html5拖动单个图标 [1]
- div拖动、平移 [1]
- 禁用鼠标点击事件 [1]
- 自己实现的下拉多选框 [1]
- idea中tomcat启动时报内存溢出问题处理 [1]
标题 | 标签 | 来源 | |
license系统功能介绍 | license系统功能介绍 | ||
license 系统主要功能是用于license的申请以及发放,主要技术Hibernate+Struts2实现。 1.关于license申请,又分为临时和商用的,申请临时的license时有效期一般都是小于或者等于6个月的(临时的又分为外场临时[第一次有效期为6个月, 以后申请都是三个月]、实验局[有效期2个月]、研发内部试用[有效期2个月]),商用license是永久生效的。 2.菜单权限角色控制,每种角色都只有自己的菜单和权限,不同的角色菜单和权限不同,系统里允许有些角色具有管理员的权限,从而用来处理注册和注销用户。 权限分为查询、审批、下载、上传(包含批量上传)等,在审批权限中又分为自动审批、一级审批、二级审批和决策审批,这样有效的进行管控license的申请。 3.license的加密文件生成是采用C/C++实现的,java通过JNI技术调用实现license文件的真正的生成。 4.发送邮件功能,当有用户申请license时,提交给审批人员审批,每一次审批完都会给相应的人发送邮件提醒。 5.关于商用的申请需要合同资源文件做依据,即需要上传合同文件关联的资源到系统,从而支持审批人员核对并审批处理使用。 6.license统计功能,用于支持决策使用,本系统提供了统一的接口界面进行license统计,比如说按申请时间统计、按省份统计、按各种条件进行复合条件的统计等。 7.其他功能(如密码修改,自动审批规则的录入等)。 |
|||
Log4j--demo | log4j--demo | ||
1.首先导入commons-logging.jar包和commons-logging-api-1.1.jar和log4j-1.2.17.jar 2.log4j.properties(放在src文件夹下面) #log4j.rootCategory=INFO,stdout,file #配置根Logger log4j.rootLogger=DEBUG,file,CONSOLE log4j.additivity.org.apache=true #日志信息输出到控制台 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=DEBUG log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d %l-%m%n #输出到指定的日志文件 log4j.appender.file=org.apache.log4j.DailyRollingFileAppender #日志文件的输出路径为d:/hplog/mylogs.log log4j.appender.file.File=d\:/hplog/mylogs.log log4j.appender.FILE.MaxFileSize=10MB log4j.appender.file.layout=org.apache.log4j.PatternLayout #输出DEBUG级别以上的日志 log4j.appender.file.Threshold = DEBUG log4j.appender.file.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %l-%m%n 3.在java类中添加Logger类成员变量 private Logger log = LogManager.getLogger(类名.class); 接着给该变量设置setter和getter方法 |
|||
我的校验码生成技术--demo | 我的校验码生成技术--demo | ||
我的生成校验码技术--demo(采用java反射技术和dwr技术) 0.准备工作:首先需要导入dwr.jar包 1.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>demo232</display-name> <servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app> 2.dwr.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd"> <dwr> <allow> <create creator="new" javascript="obvalidateCode"> <param name="class" value="com.test.GenerateNumber" /> </create> </allow> </dwr> 3.Constants.java package com.test; public class Constants { public static String KEY_1 = "1"; public static String KEY_2 = "2"; public static String KEY_3 = "3"; public static String KEY_4 = "4"; public static String KEY_5 = "5"; public static String KEY_6 = "6"; public static String KEY_7 = "7"; public static String KEY_8 = "8"; public static String KEY_9 = "9"; public static String KEY_10 = "A"; public static String KEY_11 = "B"; public static String KEY_12 = "C"; public static String KEY_13 = "D"; public static String KEY_14 = "E"; public static String KEY_15 = "F"; public static String KEY_16 = "G"; public static String KEY_17 = "H"; public static String KEY_18 = "I"; public static String KEY_19 = "J"; public static String KEY_20 = "K"; public static String KEY_21 = "L"; public static String KEY_22 = "M"; public static String KEY_23 = "N"; public static String KEY_24 = "O"; public static String KEY_25 = "P"; public static String KEY_26 = "Q"; public static String KEY_27 = "R"; public static String KEY_28 = "S"; public static String KEY_29 = "T"; public static String KEY_30 = "U"; public static String KEY_31 = "V"; public static String KEY_32 = "W"; public static String KEY_33 = "X"; public static String KEY_34 = "Y"; public static String KEY_35 = "Z"; public static String COLOR_1 = "orange"; public static String COLOR_2 = "pink"; public static String COLOR_3 = "red"; public static String COLOR_4 = "gray"; public static String COLOR_5 = "blue"; public static String COLOR_6 = "yellow"; } 4.GenerateNumber.java package com.test; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; public class GenerateNumber { public List<String> generate(){ List<String> validateCodeList = new ArrayList<String>(); /**生成随机码*/ //产生1-35之间随机数: for(int i = 0; i < 4; i++){ int x=1+(int)(Math.random()*35); String key = "KEY_"+x; System.out.print(x+"\t"); try { Field field = Constants.class.getField(key); Object str = "C"; try { str = field.get((Object)field.getName()); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } validateCodeList.add(str.toString()); // System.out.println(field.getName()+"\t"+str.toString()); } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } } System.out.println(); for(String s : validateCodeList){ System.out.print(s+"\t"); } System.out.println("\n------------------------"); /**下面生成随机颜色*/ int y=1+(int)(Math.random()*6); try { Field field = Constants.class.getField("COLOR_"+y); try { Object co = (Object)field.get("COLOR_"+y); validateCodeList.add(co.toString()); System.out.println(co.toString()); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } return validateCodeList; } public static void main(String[] args) { new GenerateNumber().generate(); } } 5.showTest.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>dwr级联显示</title> <!-- 使用的是相对路径,下面这个引用dwr/interface也是固定写法 --> <script type='text/javascript' src='dwr/interface/obvalidateCode.js'></script> <!-- 下面这两个引用是固定写法,因为这两个文件是在dwr.jar中 --> <script type='text/javascript' src='dwr/engine.js'></script> <script type='text/javascript' src='dwr/util.js'></script> <script type="text/javascript"> function hptest(){ obvalidateCode.generate(show); } obvalidateCode.generate(show); function show(data){ var st = data.toString(); var s = st.split(","); //alert(s); for(var i = 0; i < s.length-1; i++){ DWRUtil.setValue("stext_"+i,s[i]); } if(s.length > 4){ document.getElementById("bgspan").style.backgroundColor=s[4]; } } function checkValidateCode(){ var v1 = DWRUtil.getValue("stext_0"); var v2 = DWRUtil.getValue("stext_1"); var v3 = DWRUtil.getValue("stext_2"); var v4 = DWRUtil.getValue("stext_3"); var v_total = v1+v2+v3+v4; //alert(v1+","+v2+","+v3+","+v4); var colValue = document.getElementById("colValue").value; if(colValue != ""){ if(v_total == colValue){ alert(v_total+"______"+colValue); alert("校验码输入正确"); }else{ alert(v_total+"______"+colValue); alert("校验码输入错误"); } } } </script> </head> <body> <form id="myform"> <b>验证码 :</b><input type="text" id="colValue" /> <div id="bgspan" style="width:4%;"><I><b> <span id="stext_0"></span> <span id="stext_1"></span> <span id="stext_2"></span> <span id="stext_3"></span></b></I> </div> <br /> <input type="button" value="validate" onclick="checkValidateCode()" /> </form> </body> </html> |
|||
dwr demo | dwr demo | ||
1.导入dwr.jar包 2.配置dwr过滤器(web.xml) 3.配置dwr.xml 4.编写类文件 5.编写jsp文件 ---------------------- 1.导入dwr.jar包即可 2.在web.xml中加入dwr过滤器即加入如下代码 <servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> 3.配置dwr.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd"> <dwr> <allow> <create creator="new" javascript="ruleop"> <param name="class" value="com.test.ProvinceOP" /> </create> </allow> </dwr> 4.编写类文件ProvinceOP.java package com.test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ProvinceOP { static Logger log = LoggerFactory.getLogger(ProvinceOP.class); public String sayHello(String name){ System.out.println("Wellcom to "+name); return "Wellcom to "+name; } public List setProvince() throws Exception{ List list = new ArrayList(); InputStreamReader ips = new InputStreamReader(new FileInputStream("d:\\licensetool\\province.txt"),"utf-8"); BufferedReader br = new BufferedReader(ips); String str = null; br.readLine(); //下面循环从第二行开始按行读取文本 while((str = br.readLine()) != null){ list.add(str); log.info("hp: "+str); System.out.println(str); } return list; } public List setCity(String province){ List list = new ArrayList(); try{ InputStreamReader ips = new InputStreamReader(new FileInputStream("d:\\licensetool\\city.txt"),"utf-8"); BufferedReader br = new BufferedReader(ips); String str = null; br.readLine(); while((str = br.readLine()) != null){ String[] content = str.split("="); //System.out.println(content[0]+"==="+content[1]); if(!"".equals(str) && content[0].equals(province)){ String c = content[1].substring(1, content[1].length()-1); String[] citys = c.split(","); for(String cs : citys){ list.add(cs); } break; } } }catch(Exception e){ e.printStackTrace(); } return list; } // public static void main(String[] args) throws Exception { // List<String> list = new ArrayList<String>(); // String a = ""; // list.add(a); // String b = "哈尔滨"; // if(!list.contains(b)){ // list.add(b); // } // String c = "佳木斯"; // if(!list.contains(c)){ // list.add(c); // } // String d = "绥化"; // if(!list.contains(d)){ // list.add(d); // } // System.out.println("list.size = "+list.size()); // for(String s : list){ // System.out.println(s); // } // // } } 5.编写jsp文件show.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>dwr级联显示</title> <!-- 使用的是相对路径,下面这个引用dwr/interface也是固定写法 --> <script type='text/javascript' src='dwr/interface/ruleop.js'></script> <!-- 下面这两个引用是固定写法,因为这两个文件是在dwr.jar中 --> <script type='text/javascript' src='dwr/engine.js'></script> <script type='text/javascript' src='dwr/util.js'></script> <script type="text/javascript"> function hptest(){ //ruleop.getProvince($(myform).province.value,show); ruleop.sayHello("zhangsan",show); } ruleop.setProvince(showProvince); function show(data){ alert(data); } function showProvince(data){ DWRUtil.removeAllOptions("province"); DWRUtil.addOptions("province",{"":"select province"}); DWRUtil.addOptions("province",data); } function setCity(province){ ruleop.setCity(province,showCitys); } function showCitys(data){ DWRUtil.removeAllOptions("city"); DWRUtil.addOptions("city",{"":"select city"}); DWRUtil.addOptions("city",data); } </script> </head> <body> <form id="myform"> <b>Province :</b> <select id="province" name="province" onchange="setCity(this.value)"></select><br /> <b>City :</b> <select id="city" name="city"><option>select city</option></select> <input type="button" value="click me" onclick="hptest()" /> </form> </body> </html> 7.province.txt province(省份) 陕西 黑龙江 云南 广西 福建 湖南 安徽 8.city.txt province=[city,city] 陕西=[西安,安康,商洛,铜川,渭南,咸阳,榆林,汉中,延安,宝鸡] 黑龙江=[大庆,哈尔滨,鸡西,牡丹江,双鸭山,绥化,齐齐哈尔,黑河] 云南=[昆明,邵通,文山] 广西=[北海,崇左,防城,贵港,桂林,柳州,南宁,钦州,玉林] 福建=[龙岩,南平,宁德市,莆田,三明,福州,漳州] 湖南=[衡阳,娄底,永州,邵阳] 安徽=[安庆,蚌埠,滁州,合肥,淮北,六安,宿州,芜湖,马鞍山,铜陵,黄山,宣城] |
|||
SQL中的日期操作 | sql中的日期操作 | ||
select * from lkitem where rncid=787 and purpose='Commercial Project' and status='LK Released' AND entity = 'RNC' and (decision_time is not null) order by decision_time DESC ------------------------------------- --求最近三个月即将到期的 SELECT a.expiretime,a.status,a.purpose,a.* FROM lkitem a WHERE a.entity = 'RNC' AND a.status = 'LK Released' AND a.purpose = 'External Trial' AND a.province = '浙江' AND a.expiretime >= (SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 'thetime') AND a.expiretime < (SELECT dateadd(mm,2,(SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))) 'thetime') ORDER BY a.expiretime asc ------------------------------------- --查询系统当前日期 SELECT convert(VARCHAR(10),getdate(),120) 'thetime' --查询从系统当前日期算3个月后的日期 SELECT dateadd(mm,3,(SELECT convert(VARCHAR(10),getdate(),120) 'thetime')) --查询本月的第一天 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) --查询本月的最后一天 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) --查询上一个月的最后一天 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) --查询本月的第一天 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) --从本月的第一天开始算,查询第三个月的最后一天 SELECT dateadd(mm,2,(SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))) |
|||
sql server 2005-----SQL语句及分页sql | sql server 2005-----sql语句分页sql | ||
--查询地理课比生物课成绩高的学生信息 SELECT a.StuId,a.StuName, b.CourseId,b.CourseName,c.Score,e.CourseId,e.CourseName,d.Score FROM tblStudent a, tblCourse b,tblScore c,tblScore d,tblCourse e WHERE a.StuId = c.StuId AND b.CourseId = c.CourseId AND d.CourseId = e.CourseId AND b.CourseName <> e.CourseName AND a.StuId = d.StuId AND e.CourseId = d.CourseId AND b.CourseName = '地理' AND e.CourseName = '生物' AND c.Score > d.Score SELECT a.StuId, a.StuName FROM tblStudent a WHERE (SELECT b.Score FROM tblScore b WHERE b.StuId = a.StuId AND b.CourseId = (SELECT d.CourseId FROM tblCourse d WHERE d.CourseName = '地理')) > (SELECT c.Score FROM tblScore c WHERE c.StuId = a.StuId AND c.CourseId = (SELECT d.CourseId FROM tblCourse d WHERE d.CourseName = '生物')) --查询平均成绩大于75分的学生学号和平均成绩 SELECT StuId,avg(Score) FROM tblScore GROUP BY StuId HAVING avg(Score) > 75 --查询所有学生的学号、姓名、选课数、总成绩 SELECT d.stuId, e.StuName, d.courses, d.scores FROM (SELECT a.StuId 'StuId', count(b.CourseName) 'courses',count(c.Score) 'scores' FROM tblStudent a, tblCourse b, tblScore c WHERE a.StuId = c.StuId AND b.CourseId = c.CourseId GROUP BY a.StuId) d, tblStudent e WHERE d.StuId = e.StuId --查询没有学过徐小明老师课程的学生 SELECT a.StuId,a.StuName,b.CourseName,b.TeaId, d.TeaName FROM tblStudent a, tblCourse b,tblTeacher d WHERE b.TeaId <> (SELECT c.TeaId FROM tblTeacher c WHERE c.TeaName = '徐小明') AND d.TeaId <> (SELECT c.TeaId FROM tblTeacher c WHERE c.TeaName = '徐小明') AND b.TeaId = d.TeaId ORDER BY a.StuId,b.CourseId --sql server分页查询 SELECT * FROM tblCourse --每页显示2条记录,查询第一页,(1-1)*2 = 0 SELECT TOP 2 * FROM tblCourse WHERE CourseId NOT IN(SELECT TOP 0 CourseId FROM tblCourse ORDER BY CourseId ) ORDER BY CourseId --每页显示2条记录,查询第二页,(2-1)*2 = 2 SELECT TOP 2 * FROM tblCourse WHERE CourseId NOT IN(SELECT TOP 2 CourseId FROM tblCourse ORDER BY CourseId ) ORDER BY CourseId --每页显示2条记录,查询第三页, (3-1)*2 = 4 SELECT TOP 2 * FROM tblCourse WHERE CourseId NOT IN(SELECT TOP 4 CourseId FROM tblCourse ORDER BY CourseId ) ORDER BY CourseId --每页显示2条记录,查询第四页, (4-1)*2 = 6 SELECT TOP 2 * FROM tblCourse WHERE CourseId NOT IN(SELECT TOP 6 CourseId FROM tblCourse ORDER BY CourseId ) ORDER BY CourseId --每页显示2条记录,查询第五页, (5-1)*2 = 8 SELECT TOP 2 * FROM tblCourse WHERE CourseId NOT IN(SELECT TOP 8 CourseId FROM tblCourse ORDER BY CourseId ) ORDER BY CourseId --查询各科成绩前三名的记录 SELECT t.字段名 FROM (SELECT 字段(可以是多表关联的字段) ,row_number() over(order by 某个排序字段 desc) r FROM 表名 where 过滤条件 ) t where t.r <= (每页显示条数*要查询的页) and t.r > (每页显示条数*(要查询的页-1)) --sql server 2005 及以上版本的sql分页查询 --每页显示2条记录,查询第1页 SELECT t.CourseId,t.CourseName, t.TeaId FROM (SELECT a.*,row_number() over(order by CourseId) r FROM tblCourse a) t where t.r <= (2*1) and t.r > (2*(1-1)) --每页显示2条记录,查询第2页 SELECT t.CourseId,t.CourseName, t.TeaId FROM (SELECT a.*,row_number() over(order by CourseId) r FROM tblCourse a) t where t.r <= (2*2) and t.r > (2*(2-1)) |
|||
sql server 2005 及以上版本的sql分页查询 | sql server 2005 及以上版本的sql分页查询 | ||
SELECT t.字段名 FROM (SELECT 字段(可以是多表关联的字段) ,row_number() over(order by 某个排序字段 desc) r FROM 表名 where 过滤条件 ) t where t.r <= (每页显示条数*要查询的页) and t.r > (每页显示条数*(要查询的页-1)) ---------------------- SELECT t.字段名 FROM (SELECT 字段(可以是多表关联的字段) ,row_number() over(order by 某个排序字段 desc) r FROM 表名 where 过滤条件 ) t where t.r <= (每页显示条数*要查询的页) and t.r > (每页显示条数*(要查询的页-1)) --sql server 2005 及以上版本的sql分页查询 --每页显示2条记录,查询第1页 SELECT t.CourseId,t.CourseName, t.TeaId FROM (SELECT a.*,row_number() over(order by CourseId) r FROM tblCourse a) t where t.r <= (2*1) and t.r > (2*(1-1)) --每页显示2条记录,查询第2页 SELECT t.CourseId,t.CourseName, t.TeaId FROM (SELECT a.*,row_number() over(order by CourseId) r FROM tblCourse a) t where t.r <= (2*2) and t.r > (2*(2-1)) |
|||
用java 程序实现二进制像十进制转化 或十进制转化为二进制 | 用java 程序实现二进制像十进制转化 或十进制转化为二进制 | ||
超简单,如下例: //10进制->2进制 String a = "-1195";//输入数值 BigInteger src = new BigInteger(a);//转换为BigInteger类型 System.out.println(src.toString(2));//转换为2进制并输出结果 //2进制->10进制 String a = "10010101011";//输入数值 BigInteger src = new BigInteger(a, 2);//转换为BigInteger类型 System.out.println(src.toString());//转换为2进制并输出结果 由此可见,有2点要注意: 1. BigInteger的构造函数 BigInteger(String src)默认参数字符串为10进制数值 BigInteger(String src, int x)第2个参数x是指定第一个参数src的进制类型 2. toString方法 toString()默认把数值按10进制数值转化为字符串。 toString(int x)把数值按参数x的进制转化为字符串。 |
|||
sql server 日期操作 | sql server 日期操作 | ||
sql server 日期操作 http://www.w3school.com.cn/sql/func_dateadd.asp http://blog.csdn.net/jinbi/article/details/7020338 http://www.cnblogs.com/joeblackzqq/archive/2010/11/23/1885112.html http://dev.yesky.com/422/30958422.shtml http://www.cnblogs.com/zhangzhifeng/archive/2013/08/01/3229981.html http://www.javake.com.cn/db/mssql/20130511/6439.html http://database.51cto.com/art/201009/226223.htm http://blog.csdn.net/jinbi/article/details/7020338 |
|||
System.Data.SqlClient.SqlError: 备份集中的数据库备份与现有的 'XXX' 数据库不同 | system.data.sqlclient.sqlerror: 备份集中的数据库备份与现有的 'xxx' 数据库不同 | ||
System.Data.SqlClient.SqlError: 备份集中的数据库备份与现有的 'XXX' 数据库不同 2011-07-01 10:07:26| 分类: 数据库 | 标签: |举报 |字号大 中 小 订阅 System.Data.SqlClient.SqlError: 备份集中的数据库备份与现有的 'XXX' 数据库不同。 在sql server 2008 r2 版本中还原从sql server 2008 express备份出来的数据库时,提示上述错误。 百度后解决。 原因如下: 在sql server 2005以上版本,做还原时,不要建立数据库。 比如要还原test数据库,不要新建一个test库。而是直接选择还原的文件。此时在要还原的数据库列表中就会出现test库。选中即可。 而以前的版本需要先建立数据库,然后再还原。 还原的时候, 选项-勾覆盖现有数据库。 |
|||
JAVA读写文件如何避免中文乱码 | java读写文件如何避免中文乱码 | http://zhidao.baidu.com/question/2073995085632361068.html | |
/*** 读取文件内容** @param filePathAndName * String 如 c://1.txt 绝对路径 * @return boolean*/public static String readFile(String filePathAndName) { String fileContent = "";try {File f = new File(filePathAndName); if(f.isFile()&&f.exists()){ InputStreamReader read = new InputStreamReader(new FileInputStream(f),"UTF-8"); BufferedReader reader=new BufferedReader(read); String line; while ((line = reader.readLine()) != null) { fileContent += line;}read.close();}} catch (Exception e) { System.out.println("读取文件内容操作出错"); e.printStackTrace();}return fileContent;} |
|||
异地备份2 | 异地备份2 | ||
package com.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class BatUtil { public static void main(String[] args) { Process p; //test.bat中的命令是ipconfig/all // String cmd="d:\\test\\batFile\\test.bat"; // String cmd="d:\\test\\batFile\\copyFile.bat"; String cmd = "d:\\test\\batFile\\copy.bat"; /** 将0.0.0.0上的目录A中的文件拷贝到1.1.1.1机器上的d:\目标文件B中 * copy.bat的内容如下:(假设目标文件所在的ip为1.1.1.1,源文件所在的ip为0.0.0.0) * xcopy \\0.0.0.0\共享的文件夹名称A d:\目标文件中B /e /i /f /c /Y */ try { //执行命令 p = Runtime.getRuntime().exec(cmd); //取得命令结果的输出流 InputStream fis=p.getInputStream(); //用一个读输出流类去读 InputStreamReader isr=new InputStreamReader(fis); //用缓冲器读行 BufferedReader br=new BufferedReader(isr); String line=null; //直到读完为止 while((line=br.readLine())!=null) { System.out.println(new String(line.getBytes("iso-8859-1"),"gbk")); } } catch (IOException e) { e.printStackTrace(); } } } |
|||
linux上部署java web应用 | linux上部署java web应用 | ||
svn服务器的 配置: 1.配置文件的位置:cd /myfile/test/conf/ 2. vim authz 关闭svn: # killall svnserve 启动服务器 # svnserve -d -r /svndata -d表示以daemon方式(后台运行)运行 -r /svndata指定根目录是/svndata [groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe admin = lisi,wangwu 在 后面添加用户的名字;(如果删除用户 请删除对应的人名) 3.vim passwd 为用户添加密码 添加密码格式为 添加一行 用户名 = 密码 如下面的格式 [users] # harry = harryssecret # sally = sallyssecret lisi = 111111 wangwu = 111111 4.保存上面的文件,关于vim的操作命令,可以上网查 ---------------------------------------------------------------------- 假设正式服务器ip:0.0.0.0 假设测试服务器ip:1.1.1.1 ftp工具:filezilla linux连接客户端:putty ################################################ Linux目录介绍: ftp上传目录 /myfile/ftp/project/ 如果ftp无法连接或不显示文件目录 需要关闭防火墙 service iptables stop 1. 进入目录 cd /myfile/ftp/project/ 2. 查看目录下的文件 ls -la /myfile/ftp/project/ 3. 删除文件:rm -f update.jsp (格式为:rm -f filename ,使用的是相对路径删除,要进入文件所在的文件夹,示例中 update.jsp为文件的名称 ) 4. 删除文件夹:rm -fr file (使用的是相对路径删除,file是要删除的文件夹,删除文件夹需要添加一个参数r) 5. 复制文件夹 cp -r /myfile/ftp/project/demo1/ /tomcat_file/ 将ftp上传文件夹下的项目文件copy到 项目要部署的文件 Tomcat的安装目录 /myfile/local/tomcat7/ 项目的部署目录:/tomcat_file 部署是将项目的文件夹命名为demo1 放到该文件夹下既可 不要将项目放到tomcat安装目录下的webapps下, 1. 关闭tomcat sh /myfile/ftp/project/tomcat7/bin/shutdown.sh 2. 启动tomcat sh /myfile/ftp/project/tomcat7/bin/startup.sh 3.查看tomcat的启动日志 tail -f -n800 /myfile/ftp/project/tomcat7/logs/catalina.out (n 后面的数字表示显示日志文件最后的400行,命令中n和数字之间没有空格) 注意:在查看日志的界面需要 使用ctrl+c 来退出界面 6. 部署项目: (1) 先删除已经部署的项目文件夹 : rm -rf /tomcat_file/demo1 (2) 将上传的文件复制到/tomcat_file 下 cp -r /myfile/ftp/project/demo1/ /tomcat_file/ (3) 启动tomcat即可 7. 将测试服务器的项目copy到正式服务器 scp -r /tomcat_file/demo1/ root@0.0.0.0:/tomcat_file/ |
|||
java异地备份 | java异地备份 | ||
使用java执行批处理文件进行异地备份: 1. BatUtil.java package com.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class BatUtil { public static void main(String[] args) { Process p; //test.bat中的命令是ipconfig/all // String cmd="d:\\test\\batFile\\test.bat"; String cmd="d:\\test\\batFile\\copyFile.bat"; try { //执行命令 p = Runtime.getRuntime().exec(cmd); //取得命令结果的输出流 InputStream fis=p.getInputStream(); //用一个读输出流类去读 InputStreamReader isr=new InputStreamReader(fis); //用缓冲器读行 BufferedReader br=new BufferedReader(isr); String line=null; //直到读完为止 while((line=br.readLine())!=null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } } 2.copyFile.bat copy "d:\\test\\backup\\eNodeB_20140108.txt" "\\10.23.30.36\\d$" |
|||
java web定时任务 | java web定时任务 | ||
需要导入struts的commons-io-2.0.1.jar包 java web 定时任务的实现: 一. 自定义一个监听器 1. MyListener.java package com.tdtech.pdm.lisener; import java.util.Timer; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import com.tdtech.pdm.util.TaskExecution; /** * 自定义监听器 */ public class MyLisener implements ServletContextListener{ private Timer t; @Override public void contextDestroyed(ServletContextEvent arg0) { if(t != null){ t.cancel(); } System.out.println("监听器销毁...."); } @Override public void contextInitialized(ServletContextEvent arg0) { t = new Timer(); t.schedule(new TaskExecution(), 10 * 1000, 24 * 60 * 60 * 1000); } } 二.定义一个定时任务类 2. TaskExecution.java package com.tdtech.pdm.util; import java.util.TimerTask; /** * 定时任务 */ public class TaskExecution extends TimerTask{ @Override public void run() { System.out.println("定时任务启动了...."); FileUtil.main(null); } } 三.定义一个文件备份的工具类 3. FileUtil.java package com.tdtech.pdm.util; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.commons.io.FileUtils; /** * 文件拷贝 */ public class FileUtil { private String fileName = "D:\\codefile\\testfile\\"; private String destDirectory = "D:\\test\\backup\\"; private void copyFile() throws IOException{ File file = new File(fileName); if(file.exists()){ if(file.isDirectory()){ File[] fs = file.listFiles(); //全部复制 for(File f : fs){ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String prefix = f.getName().substring(f.getName().lastIndexOf(".")); String fname = f.getName().substring(0, f.getName().lastIndexOf("."))+"_"; File df = new File(destDirectory + fname + sdf.format(new Date()) + prefix); if(!df.exists()){ df.createNewFile(); }else{ df.delete(); df.createNewFile(); } FileUtils.copyFile(f, df); } } } } public static void main(String[] args) { FileUtil fu = new FileUtil(); try { fu.copyFile(); System.out.println("文件备份成功....."); } catch (IOException e) { e.printStackTrace(); } } } 四.在web.xml中配置自定义监听器 4. <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <listener> <display-name>配置自定义监听器</display-name> <listener-class>com.tdtech.pdm.lisener.MyLisener</listener-class> </listener> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app> |
|||
重写hashCode和equals方法2 | 重写hashcode和equals方法2 | ||
1. Person.java package com.pojo; public class Person { private Integer id; private String sex; // private Integer age; private String name; @Override public int hashCode() { Integer h = 0; int s = h.hashCode(); if(id != null){ s += id.hashCode(); } if(name != null){ s += name.hashCode(); } if(sex != null){ s += sex.hashCode(); } if(age != null){ s += age.hashCode(); } return s; } /**那本类的对象与参数Obj进行是否相等比较*/ @Override public boolean equals(Object obj) { if(this == obj){ return true; } return false; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 2. Student.java package com.pojo; public class Student extends Person{ private String country; //国籍 public Student(){ super(); } @Override public int hashCode() { int h = super.hashCode(); if(this.country != null){ h += this.country.hashCode(); } return h; } /**将本类的对象与参数Obj进行是否相等比较*/ @Override public boolean equals(Object obj) { Student s = null; if(obj instanceof Student){ s = (Student) obj; } if((s.getId() != null && s.getId() == s.getId()) && (s.getName() != null && super.getName().equals(s.getName())) && (s.getAge() != null && super.getAge() == s.getAge()) && (s.getSex() != null && super.getSex().equals(s.getSex())) && (s.country != null && s.country.equals(this.country))){ return true; } return false; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } } 3. CopyDemo2.java package com.test; import com.pojo.Student; /** * 测试类--模拟批量复制 */ public class CopyDemo2 { public static void main(String[] args) { Student s = new Student(); s.setId(2013001); s.setAge(12); s.setCountry("中国"); s.setName("李四"); s.setSex("男"); Student s2 = new Student(); s2.setId(2013001); s2.setAge(12); s2.setCountry("中国"); s2.setName("李四"); s2.setSex("男"); Student s3 = new Student(); s3.setId(2013001); s3.setAge(12); s3.setCountry("中国"); s3.setName("李四"); s3.setSex("女"); Student s4 = new Student(); System.out.println("s == s2 ? "+(s.equals(s2)?"相等":"不相等")); System.out.println("s == s3 ? "+(s.equals(s3)?"相等":"不相等")); System.out.println("s == s4 ? "+(s.equals(s4)?"相等":"不相等")); //对象的copy s4 = s; System.out.println("从s复制后s == s4 ? "+(s.equals(s4)?"相等":"不相等")); int i = 2; Student[] sd = null; if(i > 0){ sd = new Student[i]; } for(int j = 0; j < i; j++){ sd[j] = s; } for(int j = 0; j< sd.length; j++){ System.out.println("从s复制后s == sd["+j+"] ? "+(s.equals(sd[j])?"相等":"不相等")); } } } |
|||
重写hashCode方法和equals方法demo2 | 重写hashcode方法和equals方法demo2 | ||
1. Person.java package com.pojo; public class Person { private Integer id; private String sex; // private Integer age; private String name; @Override public int hashCode() { Integer h = 0; int s = h.hashCode(); if(id != null){ s += id.hashCode(); } if(name != null){ s += name.hashCode(); } if(sex != null){ s += sex.hashCode(); } if(age != null){ s += age.hashCode(); } return s; } /**那本类的对象与参数Obj进行是否相等比较*/ @Override public boolean equals(Object obj) { if(this == obj){ return true; } return false; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 2. Student.java package com.pojo; public class Student extends Person{ private String country; //国籍 public Student(){ super(); } @Override public int hashCode() { int h = super.hashCode(); if(this.country != null){ h += this.country.hashCode(); } return h; } /**将本类的对象与参数Obj进行是否相等比较*/ @Override public boolean equals(Object obj) { Student s = null; if(obj instanceof Student){ s = (Student) obj; } if((s.getId() != null && s.getId() == s.getId()) && (s.getName() != null && super.getName().equals(s.getName())) && (s.getAge() != null && super.getAge() == s.getAge()) && (s.getSex() != null && super.getSex().equals(s.getSex())) && (s.country != null && s.country.equals(this.country))){ return true; } return false; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } } 3. CopyDemo2.java package com.test; import com.pojo.Student; /** * 测试类--模拟批量复制 */ public class CopyDemo2 { public static void main(String[] args) { Student s = new Student(); s.setId(2013001); s.setAge(12); s.setCountry("中国"); s.setName("李四"); s.setSex("男"); Student s2 = new Student(); s2.setId(2013001); s2.setAge(12); s2.setCountry("中国"); s2.setName("李四"); s2.setSex("男"); Student s3 = new Student(); s3.setId(2013001); s3.setAge(12); s3.setCountry("中国"); s3.setName("李四"); s3.setSex("女"); Student s4 = new Student(); System.out.println("s == s2 ? "+(s.equals(s2)?"相等":"不相等")); System.out.println("s == s3 ? "+(s.equals(s3)?"相等":"不相等")); System.out.println("s == s4 ? "+(s.equals(s4)?"相等":"不相等")); //对象的copy s4 = s; System.out.println("从s复制后s == s4 ? "+(s.equals(s4)?"相等":"不相等")); int i = 2; Student[] sd = null; if(i > 0){ sd = new Student[i]; } for(int j = 0; j < i; j++){ sd[j] = s; } for(int j = 0; j< sd.length; j++){ System.out.println("从s复制后s == sd["+j+"] ? "+(s.equals(sd[j])?"相等":"不相等")); } } } |
|||
重写hashCode方法和equals方法demo | 重写hashcode方法和equals方法demo | ||
1. Person.java package com.pojo; public class Person { private Integer id; private String sex; // private Integer age; private String name; @Override public int hashCode() { Integer h = 0; int s = h.hashCode(); if(id != null){ s += id.hashCode(); } if(name != null){ s += name.hashCode(); } if(sex != null){ s += sex.hashCode(); } if(age != null){ s += age.hashCode(); } return s; } /**那本类的对象与参数Obj进行是否相等比较*/ @Override public boolean equals(Object obj) { if(this == obj){ return true; } return false; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 2. Student.java package com.pojo; public class Student extends Person{ private String country; //国籍 public Student(){ super(); } @Override public int hashCode() { int h = super.hashCode(); if(this.country != null){ h += this.country.hashCode(); } return h; } /**将本类的对象与参数Obj进行是否相等比较*/ @Override public boolean equals(Object obj) { Student s = null; if(obj instanceof Student){ s = (Student) obj; } if((s.getId() != null && s.getId() == s.getId()) && (s.getName() != null && super.getName().equals(s.getName())) && (s.getAge() != null && super.getAge() == s.getAge()) && (s.getSex() != null && super.getSex().equals(s.getSex())) && (s.country != null && s.country.equals(this.country))){ return true; } return false; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } } 3. CopyDemo.java package com.test; import com.pojo.Student; /** * 测试类 */ public class CopyDemo { public static void main(String[] args) { Student s = new Student(); s.setId(2013001); s.setAge(12); s.setCountry("中国"); s.setName("李四"); s.setSex("男"); Student s2 = new Student(); s2.setId(2013001); s2.setAge(12); s2.setCountry("中国"); s2.setName("李四"); s2.setSex("男"); Student s3 = new Student(); s3.setId(2013001); s3.setAge(12); s3.setCountry("中国"); s3.setName("李四"); s3.setSex("女"); Student s4 = new Student(); System.out.println("s == s2 ? "+(s.equals(s2)?"相等":"不相等")); System.out.println("s == s3 ? "+(s.equals(s3)?"相等":"不相等")); System.out.println("s == s4 ? "+(s.equals(s4)?"相等":"不相等")); } } |
|||
jquery-uploadify批量上传 | |||
1. upload2.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" 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" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <base href="<%=basePath%>"> <link href="<%=basePath%>uploadify2/uploadify.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="<%=basePath%>uploadify2/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="<%=basePath%>uploadify2/swfobject.js"></script> <script type="text/javascript" src="<%=basePath%>uploadify2/jquery.uploadify.v2.1.4.min.js"></script> </head> <body> <div id="fileQueue"></div> <input type="file" name="uploadify" id="uploadify" /> <p> <a href="javascript: jQuery('#uploadify').uploadifyUpload()">开始上传</a> <a href="javascript:jQuery('#uploadify').uploadifyClearQueue()">取消所有上传</a> </p> </body> <script type="text/javascript"> //官方网址:http://www.uploadify.com/ $(document).ready(function(){ //$("#uploadify").uploadifySettings('scriptData', {'name':'liudong','age':22}); $("#uploadify").uploadify({ 'uploader' : "<%=basePath%>uploadify2/uploadify.swf", 'script' : "<%=basePath%>/servlet/UploadPhotoServlet", 'cancelImg' : "<%=basePath%>uploadify2/cancel.png", 'folder' : "uploads",//上传文件存放的路径,请保持与uploadFile.jsp中PATH的值相同 'queueId' : "fileQueue", 'queueSizeLimit' : 10,//限制上传文件的数量 'fileExt' : "*.rar,*.zip,*.png,*.txt", //'fileDesc' : "RAR *.rar",//限制文件类型 'auto' : false, 'multi' : true,//是否允许多文件上传 'simUploadLimit': 2,//同时运行上传的进程数量 'buttonText': "files", //'scriptData': {'name':'liudong','age':22},//这个参数用于传递用户自己的参数,此时'method' 必须设置为GET, 后台可以用request.getParameter('name')获取名字的值 'method' : "GET" }); //$("#uploadify").uploadifySettings(); }); </script> </html> 2. UploadPhotoServlet.java package com.org.servlet; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import com.db.ReadTxtUtil; @SuppressWarnings("serial") public class UploadPhotoServlet extends HttpServlet { /** * Constructor of the object. */ public UploadPhotoServlet() { super(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.print(" This is "); out.print(this.getClass()); out.println(", using the GET method"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } @SuppressWarnings({ "rawtypes", "unchecked" }) public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String savePath = this.getServletConfig().getServletContext().getRealPath(""); System.out.print("-----"+savePath); savePath = savePath+"/uploads/"; System.out.println("上传路径:"+savePath); File f1 = new File(savePath); if(!f1.exists()){ f1.mkdirs(); } DiskFileItemFactory fac = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(fac); upload.setHeaderEncoding("utf-8"); List fileList = null; try { fileList = upload.parseRequest(req); } catch (FileUploadException e) { e.printStackTrace(); } if(fileList==null){ resp.getWriter().print("No file upload!"); return; } Iterator<FileItem> it = fileList.iterator(); String name = ""; String extName = ""; while(it.hasNext()){ FileItem item = it.next(); if(!item.isFormField()){//isFormField介绍:true=表单输入 域,false=文件上传域。 name = item.getName(); //long size = item.getSize(); //String type = item.getContentType(); if(name == null || name.trim().equals("")){ continue; } //扩展名格式 if(name.lastIndexOf(".")>=0){ extName = name.substring(name.lastIndexOf(".")); } File file = null; do{ //生成文件名 // name = UUID.randomUUID().toString(); Date date = new Date(); DateFormat df = new SimpleDateFormat("yyyyMMddkkmmssSS"); name = name.substring(0, name.lastIndexOf(".")) + "_"+df.format(date); file = new File(savePath+name+extName); }while(file.exists()); File saveFile = new File(savePath+name+extName); try { item.write(saveFile); ReadTxtUtil rtu = new ReadTxtUtil(); Map<String, String> uploadProReconMap = rtu.readUploadFile(new FileInputStream(saveFile)); Map<String, String> proReconNameMap = rtu.getProReconNameMap(new BufferedReader(new FileReader(new File("D:\\codefile\\testfile\\PRoReconConstant.txt")))); Map<String, String> proReconMap = new LinkedHashMap<String, String>(); for(Map.Entry<String, String> obj : uploadProReconMap.entrySet()){ String key = obj.getKey(); String value = obj.getValue(); if(proReconNameMap.containsKey(key)){ proReconMap.put(proReconNameMap.get(key), value); } } System.out.println("*********话说白骨精与孙悟空的恋情-begin"); for(Map.Entry<String, String> obj : proReconMap.entrySet()){ System.out.println(obj.getKey()+"="+obj.getValue()); } System.out.println("*********话说白骨精与孙悟空的恋情-end"); } catch (Exception e) { e.printStackTrace(); } } } resp.getWriter().print(name+extName); } } 3. ReadTxtUtil.java package com.db; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.LinkedHashMap; import java.util.Map; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class ReadTxtUtil { public Map<String , String> readUploadFile(FileInputStream fis){ Map<String, String> map = new LinkedHashMap<String, String>(); try { Workbook wb = WorkbookFactory.create(fis); Sheet sheet = wb.getSheetAt(1); for(int i = 3; i < sheet.getLastRowNum(); i++){ Row r = sheet.getRow(i); Cell c1 = r.getCell(1); Cell c2 = r.getCell(2); System.out.println(c1.toString()+"="+c2.toString()); map.put(c1.toString(), c2.toString()); } } catch (InvalidFormatException e) { e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return map; } public Map<String,String> getProReconNameMap(BufferedReader br){ Map<String,String> map = new LinkedHashMap<String, String>(); try{ String s = null; while((s = br.readLine()) != null){ if(s.contains("proReconFileName")){ continue; } String[] st = s.split("="); map.put(st[0].trim(), st[1].trim()); System.out.println(s); } br.close(); }catch(Exception e){ return null; } return map; } public static void main(String[] args){ File file = new File("D:\\codefile\\testfile\\PRoReconConstant.txt"); BufferedReader br = null; try { br = new BufferedReader(new FileReader(file)); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } Map<String, String> map = new ReadTxtUtil().getProReconNameMap(br); System.out.println(map.size()); } } 4. web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>demo1</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>UploadPhotoServlet</servlet-name> <servlet-class>com.org.servlet.UploadPhotoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UploadPhotoServlet</servlet-name> <url-pattern>/servlet/UploadPhotoServlet</url-pattern> </servlet-mapping> </web-app> |
|||
jdbc连接数据库23 | |||
1. 表t_proReconRecord的结构定义: prr_id int ; //主键 contract_id int ; //合同号 ttr_id int ; //解决方案id sell_id int; //网元 pr_values text ; //工勘信息 webModelDetail varchar ; //细分的网元类型 config_id int; //bill清单编号 2. ProjectReconRecord.java package com.pojo; /** * 工勘记录表 */ public class ProjectReconRecord { private Integer prr_id; //主键 private Integer contract_id; //合同号 private Integer ttr_id; //解决方案id private Integer sell_id; //网元 private String pr_values; //工勘信息 private String webModelDetail; //细分的网元类型 private Integer config_id; //bill清单编号 public Integer getPrr_id() { return prr_id; } public void setPrr_id(Integer prr_id) { this.prr_id = prr_id; } public Integer getContract_id() { return contract_id; } public void setContract_id(Integer contract_id) { this.contract_id = contract_id; } public String getPr_values() { return pr_values; } public void setPr_values(String pr_values) { this.pr_values = pr_values; } public Integer getTtr_id() { return ttr_id; } public void setTtr_id(Integer ttr_id) { this.ttr_id = ttr_id; } public Integer getSell_id() { return sell_id; } public void setSell_id(Integer sell_id) { this.sell_id = sell_id; } public String getWebModelDetail() { return webModelDetail; } public void setWebModelDetail(String webModelDetail) { this.webModelDetail = webModelDetail; } public Integer getConfig_id() { return config_id; } public void setConfig_id(Integer config_id) { this.config_id = config_id; } } 3. DBUtil.java package com.db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class DBUtil { private Connection conn; private PreparedStatement ps; private ResultSet rs; public Connection getConn() { return conn; } public PreparedStatement getPs() { return ps; } public ResultSet getRs() { return rs; } public Connection getConnection(){ try{ String username = "root"; String password = "dfd12df"; String url = "jdbc:mysql://localhost:3306/db_hp"; Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(url, username, password); System.out.println("数据库连接成功"); }catch(Exception e){ conn = null; } return conn; } public PreparedStatement getPreparedStatement(String sql){ try{ ps = conn.prepareStatement(sql); }catch(Exception e){ e.printStackTrace(); } return null; } public ResultSet getResultSet(){ try{ rs = ps.executeQuery(); }catch(Exception e){ e.printStackTrace(); } return rs; } public void close(){ try{ if(rs != null){ rs.close(); } if(ps != null){ ps.close(); } if(conn != null){ conn.close(); } }catch(Exception e){ e.printStackTrace(); } } public static void main(String[] args){ DBUtil du = new DBUtil(); du.getConnection(); } } 4. CommonDB.java package com.db; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.pojo.ProjectReconRecord; public class CommonDB<T> { private T t; public void setT(T t){ this.t = t; } public T getT(){ return this.t; } /**查询数据库*/ public List<?> findListBySql(T t, String sql){ this.setT(t); List<ProjectReconRecord> list = new ArrayList<ProjectReconRecord>(); DBUtil du = new DBUtil(); du.getConnection(); du.getPreparedStatement(sql); ResultSet rs = du.getResultSet(); try{ ProjectReconRecord p = null; /** 1为ProjectReconRecord */ int flg = 0; if(this.getT().getClass().equals(ProjectReconRecord.class)){ flg = 1; } while(rs.next()){ if(flg == 1){ p = new ProjectReconRecord(); Integer prr_id = rs.getInt("prr_id"); Integer contract_id = rs.getInt("contract_id"); Integer ttr_id = rs.getInt("ttr_id"); Integer sell_id = rs.getInt("sell_id"); String pr_values = rs.getString("pr_values"); Integer config_id = rs.getInt("config_id"); p.setPrr_id(prr_id); p.setContract_id(contract_id); p.setTtr_id(ttr_id); p.setSell_id(sell_id); p.setPr_values(pr_values); p.setConfig_id(config_id); list.add(p); continue; }else{ break; } } }catch(Exception e){ e.printStackTrace(); }finally{ du.close(); } System.out.println("rs是否关闭?"+(du.getRs()==null?"是":"否")); System.out.println("ps是否关闭?"+(du.getPs()==null?"是":"否")); System.out.println("conn是否关闭?"+(du.getConn()==null?"是":"否")); return list; } public static void main(String[] args) { CommonDB<ProjectReconRecord> cd = new CommonDB<ProjectReconRecord>(); cd.setT(new ProjectReconRecord()); List<ProjectReconRecord> list = (List<ProjectReconRecord>) cd.findListBySql(new ProjectReconRecord(), "select * from t_proReconRecord where contract_id = 227 and ttr_id = 6 and sell_id = 12"); for(ProjectReconRecord p : list){ System.out.println("contract_id = "+p.getContract_id()+", "+ "ttr_id = "+p.getTtr_id()+", sell_id = "+p.getSell_id()+", config_id = "+p.getConfig_id()+", prr_values = "+p.getPr_values()); } } } 4. ProReconRecordUtil.java import java.util.*; /**对上传的工勘的结果进行处理的工具类*/ public class ProReconRecordUtil { public static void main(String[] args){ //基站 int enb_sell_id = 12; String enb_prr_value = "pr_en_1=新建机房,pr_en_2=青青小美,pr_en_3=20.0,pr_en_4=30.0,pr_en_6=上走线," +"pr_en_7=一般地区,pr_en_8=20.0,pr_en_9=直流-48V,pr_en_10=室外落地," +"pr_en_12=1.8GHz eRRU3251,pr_en_13=华为,pr_en_14=直流,pr_en_15=抱杆安装," +"pr_en_16=室外,pr_en_17=2.0,pr_en_18=3.0,pr_en_19=1.0,pr_en_20=6.144G-单模-2km," +"pr_en_21=2.0,pr_en_24=单模,pr_en_27=40.0,pr_en_28=2.0,pr_en_34=50.0,pr_en_35=50.0," +"pr_en_36=否,pr_en_37=否,pr_en_50=0度,pr_en_52=抱杆,pr_en_53=是,pr_en_54=40.0," +"pr_en_60=光口,pr_en_61=单模10km,pr_en_63=LC-LC,pr_en_64=单模,pr_en_65=20.0," +"pr_en_69=5.0,pr_en_70=5.0,pr_en_90=10.0,pr_en_91=单相三芯电源线,pr_en_92=10.0"; //实际使用这个地方的值从数据库中获取得到 int totalPrNumber = 152; handPrValue(enb_sell_id, enb_prr_value, totalPrNumber); //核心网 int hardCore_sell_id = 13; String hardCore_prr_value = "pr_en_1=是,pr_en_9=1,pr_en_2=2,pr_en_5=2,pr_en_7=一般地区,pr_en_10=3"; //实际使用这个地方的值从数据库中获取得到 int hardCore_totalPrNumber = 10; handPrValue(hardCore_sell_id, hardCore_prr_value, hardCore_totalPrNumber); } /**对上传的工勘的结果进行处理*/ public static Map<String, String> handPrValue(int sell_id, String prr_value, int totalPrNumber){ int[] indexArray = {1,5,9,14,16}; String[] prArray = prr_value.split(","); String[] prName = new String[prArray.length]; String[] prValue = new String[prArray.length]; if(prArray.length > 0){ for(int i = 0; i < prArray.length; i++){ String[] p_v = prArray[i].split("="); prName[i] = p_v[0]; prValue[i] = p_v[1]; } } Map<String,String> map = new LinkedHashMap<String, String>(); for(int i = 0; i < totalPrNumber; i++){ boolean flg = false; for(int j = 0; j < prName.length; j++){ if(prName[j].equals("pr_en_"+(i+1))){ map.put(prName[j],prValue[j]); flg = true; break; }else{ continue; } } if(!flg){ map.put("pr_en_"+(i+1),"-10000"); } } for(Map.Entry<String,String> obj : map.entrySet()){ System.out.println(obj.getKey() + " = "+obj.getValue()); } System.out.println("map.size = "+map.size()); System.out.println("---------------------------------"); return map; } } |
|||
java自定义标签 | |||
自定义标签和标签库函数的学习--自己的Demo 自定义表单标签和标签库函数:.tld文件必须放在WEB-INF下 1. viewIpTag.tld <?xml version="1.0" encoding="UTF-8" ?> <!-- 这是从 绿色版\apache-tomcat-7.0.42\webapps\examples\WEB-INF\jsp2\jsp2-example-taglib.tld 模板中拷贝过来的 --> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <description>我的自定义标签</description> <tlib-version>1.0</tlib-version> <short-name>自定义标签</short-name> <uri>/thisIsMyTag</uri> <tag> <!-- 标签属性的名称 --> <name>colname</name> <tag-class>com.happiness.tag.ShowLocalIP</tag-class> <!-- 有没有标签体,这里empty表示没有,有的话就写jsp --> <body-content>JSP</body-content> <attribute> <description>姓名</description> <name>username</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> <attribute> <description>性别</description> <name>sex</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> <attribute> <description>年龄</description> <name>age</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> </tag> <function> <description>显示表格行的函数</description> <name>showTableRow</name> <function-class>com.happiness.tag.SelfFunction</function-class> <function-signature>java.lang.String pdType(java.lang.String)</function-signature> </function> </taglib> 2. ShowLocalIP.java package com.happiness.tag; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; import com.happiness.pojo.StudentPojo; public class ShowLocalIP extends TagSupport{ private String username; private String sex; private Integer age; @Override public int doStartTag() throws JspException { HttpServletRequest request = (HttpServletRequest)this.pageContext.getRequest(); JspWriter out = this.pageContext.getOut(); // String ip = request.getRemoteAddr(); // List<StudentPojo> ss = new ArrayList<StudentPojo>(); // ss.add(new StudentPojo("张三","男",20)); // ss.add(new StudentPojo("李四","男",20)); // ss.add(new StudentPojo("王五","女",20)); // ss.add(new StudentPojo("刘麻子","女",20)); try{ out.print("<tr width='50%'>"); out.print(" <td width='30%'>"+this.username+"</td>"); out.print(" <td width='30%'>"+this.sex+"</td>"); out.print(" <td width='30%'>"+this.age+"</td>"); out.print("</tr>"); }catch(Exception e){ throw new RuntimeException(e); } return super.doStartTag(); } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } } 3. SelfFunction.java package com.happiness.tag; public class SelfFunction { /**方法必须为static类型的*/ public static String pdType(String ageStr){ Integer age = null; if(ageStr == null || "".equals(ageStr)){ age = 0; }else{ age = Integer.parseInt(ageStr); } if(age < 18) return "青少年"; else if(age >= 18 && age < 40) return "青年"; else if(age >= 40 && age < 60) return "青壮年"; else return "老年"; } } 4. index.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib uri="/thisIsMyTag" prefix="tt"%> <html> <head> <title>My JSP 'ELDemo.jsp' starting page</title> </head> <body> 表格如下: <!-- 因为没有标签体,所以直接一个标签就可以了 --> <table> <!-- 自定义标签实现的表格行 --> <tt:colname username="张三" sex="男" age="20"></tt:colname> <tt:colname username="李四" sex="男" age="23"></tt:colname> <tt:colname username="王五" sex="女" age="25"></tt:colname> </table> <!-- 自定义标签库函数的使用 --> 16岁: ${tt:showTableRow("16")}<br /> 26岁: ${tt:showTableRow("26")}<br /> 46岁: ${tt:showTableRow("46")}<br /> 66岁: ${tt:showTableRow("66")}<br /> </body> </html> |
|||
jquery批量文件上传-uploadify | |||
1. upload2.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" 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" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <base href="<%=basePath%>"> <link href="<%=basePath%>uploadify2/uploadify.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="<%=basePath%>uploadify2/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="<%=basePath%>uploadify2/swfobject.js"></script> <script type="text/javascript" src="<%=basePath%>uploadify2/jquery.uploadify.v2.1.4.min.js"></script> </head> <body> <div id="fileQueue"></div> <input type="file" name="uploadify" id="uploadify" /> <p> <a href="javascript: jQuery('#uploadify').uploadifyUpload()">开始上传</a> <a href="javascript:jQuery('#uploadify').uploadifyClearQueue()">取消所有上传</a> </p> </body> <script type="text/javascript"> //官方网址:http://www.uploadify.com/ $(document).ready(function(){ //$("#uploadify").uploadifySettings('scriptData', {'name':'liudong','age':22}); $("#uploadify").uploadify({ 'uploader' : "<%=basePath%>uploadify2/uploadify.swf", 'script' : "<%=basePath%>/servlet/UploadPhotoServlet", 'cancelImg' : "<%=basePath%>uploadify2/cancel.png", 'folder' : "uploads",//上传文件存放的路径,请保持与uploadFile.jsp中PATH的值相同 'queueId' : "fileQueue", 'queueSizeLimit' : 10,//限制上传文件的数量 'fileExt' : "*.rar,*.zip,*.png,*.txt", //'fileDesc' : "RAR *.rar",//限制文件类型 'auto' : false, 'multi' : true,//是否允许多文件上传 'simUploadLimit': 2,//同时运行上传的进程数量 'buttonText': "files", //'scriptData': {'name':'liudong','age':22},//这个参数用于传递用户自己的参数,此时'method' 必须设置为GET, 后台可以用request.getParameter('name')获取名字的值 'method' : "GET" }); //$("#uploadify").uploadifySettings(); }); </script> </html> 2. UploadPhotoServlet.java package com.org.servlet; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import com.db.ReadTxtUtil; @SuppressWarnings("serial") public class UploadPhotoServlet extends HttpServlet { /** * Constructor of the object. */ public UploadPhotoServlet() { super(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.print(" This is "); out.print(this.getClass()); out.println(", using the GET method"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } @SuppressWarnings({ "rawtypes", "unchecked" }) public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String savePath = this.getServletConfig().getServletContext().getRealPath(""); System.out.print("-----"+savePath); savePath = savePath+"/uploads/"; System.out.println("上传路径:"+savePath); File f1 = new File(savePath); if(!f1.exists()){ f1.mkdirs(); } DiskFileItemFactory fac = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(fac); upload.setHeaderEncoding("utf-8"); List fileList = null; try { fileList = upload.parseRequest(req); } catch (FileUploadException e) { e.printStackTrace(); } if(fileList==null){ resp.getWriter().print("No file upload!"); return; } Iterator<FileItem> it = fileList.iterator(); String name = ""; String extName = ""; while(it.hasNext()){ FileItem item = it.next(); if(!item.isFormField()){//isFormField介绍:true=表单输入 域,false=文件上传域。 name = item.getName(); //long size = item.getSize(); //String type = item.getContentType(); if(name == null || name.trim().equals("")){ continue; } //扩展名格式 if(name.lastIndexOf(".")>=0){ extName = name.substring(name.lastIndexOf(".")); } File file = null; do{ //生成文件名 // name = UUID.randomUUID().toString(); Date date = new Date(); DateFormat df = new SimpleDateFormat("yyyyMMddkkmmssSS"); name = name.substring(0, name.lastIndexOf(".")) + "_"+df.format(date); file = new File(savePath+name+extName); }while(file.exists()); File saveFile = new File(savePath+name+extName); try { item.write(saveFile); ReadTxtUtil rtu = new ReadTxtUtil(); Map<String, String> uploadProReconMap = rtu.readUploadFile(new FileInputStream(saveFile)); Map<String, String> proReconNameMap = rtu.getProReconNameMap(new BufferedReader(new FileReader(new File("D:\\codefile\\testfile\\PRoReconConstant.txt")))); Map<String, String> proReconMap = new LinkedHashMap<String, String>(); for(Map.Entry<String, String> obj : uploadProReconMap.entrySet()){ String key = obj.getKey(); String value = obj.getValue(); if(proReconNameMap.containsKey(key)){ proReconMap.put(proReconNameMap.get(key), value); } } System.out.println("*********话说白骨精与孙悟空的恋情-begin"); for(Map.Entry<String, String> obj : proReconMap.entrySet()){ System.out.println(obj.getKey()+"="+obj.getValue()); } System.out.println("*********话说白骨精与孙悟空的恋情-end"); } catch (Exception e) { e.printStackTrace(); } } } resp.getWriter().print(name+extName); } } 3. ReadTxtUtil.java package com.db; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.LinkedHashMap; import java.util.Map; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class ReadTxtUtil { public Map<String , String> readUploadFile(FileInputStream fis){ Map<String, String> map = new LinkedHashMap<String, String>(); try { Workbook wb = WorkbookFactory.create(fis); Sheet sheet = wb.getSheetAt(1); for(int i = 3; i < sheet.getLastRowNum(); i++){ Row r = sheet.getRow(i); Cell c1 = r.getCell(1); Cell c2 = r.getCell(2); System.out.println(c1.toString()+"="+c2.toString()); map.put(c1.toString(), c2.toString()); } } catch (InvalidFormatException e) { e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return map; } public Map<String,String> getProReconNameMap(BufferedReader br){ Map<String,String> map = new LinkedHashMap<String, String>(); try{ String s = null; while((s = br.readLine()) != null){ if(s.contains("proReconFileName")){ continue; } String[] st = s.split("="); map.put(st[0].trim(), st[1].trim()); System.out.println(s); } br.close(); }catch(Exception e){ return null; } return map; } public static void main(String[] args){ File file = new File("D:\\codefile\\testfile\\PRoReconConstant.txt"); BufferedReader br = null; try { br = new BufferedReader(new FileReader(file)); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } Map<String, String> map = new ReadTxtUtil().getProReconNameMap(br); System.out.println(map.size()); } } 4. web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>demo1</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>UploadPhotoServlet</servlet-name> <servlet-class>com.org.servlet.UploadPhotoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UploadPhotoServlet</servlet-name> <url-pattern>/servlet/UploadPhotoServlet</url-pattern> </servlet-mapping> </web-app> |
|||
jquery批量文件上传 | jquery批量文件上传 | http://www.uploadify.com/ | |
1. upload2.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" 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" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <base href="<%=basePath%>"> <link href="<%=basePath%>uploadify2/uploadify.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="<%=basePath%>uploadify2/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="<%=basePath%>uploadify2/swfobject.js"></script> <script type="text/javascript" src="<%=basePath%>uploadify2/jquery.uploadify.v2.1.4.min.js"></script> </head> <body> <div id="fileQueue"></div> <input type="file" name="uploadify" id="uploadify" /> <p> <a href="javascript: jQuery('#uploadify').uploadifyUpload()">开始上传</a> <a href="javascript:jQuery('#uploadify').uploadifyClearQueue()">取消所有上传</a> </p> </body> <script type="text/javascript"> //官方网址:http://www.uploadify.com/ $(document).ready(function(){ //$("#uploadify").uploadifySettings('scriptData', {'name':'liudong','age':22}); $("#uploadify").uploadify({ 'uploader' : "<%=basePath%>uploadify2/uploadify.swf", 'script' : "<%=basePath%>/servlet/UploadPhotoServlet", 'cancelImg' : "<%=basePath%>uploadify2/cancel.png", 'folder' : "uploads",//上传文件存放的路径,请保持与uploadFile.jsp中PATH的值相同 'queueId' : "fileQueue", 'queueSizeLimit' : 10,//限制上传文件的数量 'fileExt' : "*.rar,*.zip,*.png,*.txt", //'fileDesc' : "RAR *.rar",//限制文件类型 'auto' : false, 'multi' : true,//是否允许多文件上传 'simUploadLimit': 2,//同时运行上传的进程数量 'buttonText': "files", //'scriptData': {'name':'liudong','age':22},//这个参数用于传递用户自己的参数,此时'method' 必须设置为GET, 后台可以用request.getParameter('name')获取名字的值 'method' : "GET" }); //$("#uploadify").uploadifySettings(); }); </script> </html> 2. UploadPhotoServlet.java package com.org.servlet; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import com.db.ReadTxtUtil; @SuppressWarnings("serial") public class UploadPhotoServlet extends HttpServlet { /** * Constructor of the object. */ public UploadPhotoServlet() { super(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.print(" This is "); out.print(this.getClass()); out.println(", using the GET method"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } @SuppressWarnings({ "rawtypes", "unchecked" }) public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String savePath = this.getServletConfig().getServletContext().getRealPath(""); System.out.print("-----"+savePath); savePath = savePath+"/uploads/"; System.out.println("上传路径:"+savePath); File f1 = new File(savePath); if(!f1.exists()){ f1.mkdirs(); } DiskFileItemFactory fac = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(fac); upload.setHeaderEncoding("utf-8"); List fileList = null; try { fileList = upload.parseRequest(req); } catch (FileUploadException e) { e.printStackTrace(); } if(fileList==null){ resp.getWriter().print("No file upload!"); return; } Iterator<FileItem> it = fileList.iterator(); String name = ""; String extName = ""; while(it.hasNext()){ FileItem item = it.next(); if(!item.isFormField()){//isFormField介绍:true=表单输入 域,false=文件上传域。 name = item.getName(); //long size = item.getSize(); //String type = item.getContentType(); if(name == null || name.trim().equals("")){ continue; } //扩展名格式 if(name.lastIndexOf(".")>=0){ extName = name.substring(name.lastIndexOf(".")); } File file = null; do{ //生成文件名 // name = UUID.randomUUID().toString(); Date date = new Date(); DateFormat df = new SimpleDateFormat("yyyyMMddkkmmssSS"); name = name.substring(0, name.lastIndexOf(".")) + "_"+df.format(date); file = new File(savePath+name+extName); }while(file.exists()); File saveFile = new File(savePath+name+extName); try { item.write(saveFile); ReadTxtUtil rtu = new ReadTxtUtil(); Map<String, String> uploadProReconMap = rtu.readUploadFile(new FileInputStream(saveFile)); Map<String, String> proReconNameMap = rtu.getProReconNameMap(new BufferedReader(new FileReader(new File("D:\\codefile\\testfile\\PRoReconConstant.txt")))); Map<String, String> proReconMap = new LinkedHashMap<String, String>(); for(Map.Entry<String, String> obj : uploadProReconMap.entrySet()){ String key = obj.getKey(); String value = obj.getValue(); if(proReconNameMap.containsKey(key)){ proReconMap.put(proReconNameMap.get(key), value); } } System.out.println("*********话说白骨精与孙悟空的恋情-begin"); for(Map.Entry<String, String> obj : proReconMap.entrySet()){ System.out.println(obj.getKey()+"="+obj.getValue()); } System.out.println("*********话说白骨精与孙悟空的恋情-end"); } catch (Exception e) { e.printStackTrace(); } } } resp.getWriter().print(name+extName); } } 3. ReadTxtUtil.java package com.db; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.LinkedHashMap; import java.util.Map; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class ReadTxtUtil { public Map<String , String> readUploadFile(FileInputStream fis){ Map<String, String> map = new LinkedHashMap<String, String>(); try { Workbook wb = WorkbookFactory.create(fis); Sheet sheet = wb.getSheetAt(1); for(int i = 3; i < sheet.getLastRowNum(); i++){ Row r = sheet.getRow(i); Cell c1 = r.getCell(1); Cell c2 = r.getCell(2); System.out.println(c1.toString()+"="+c2.toString()); map.put(c1.toString(), c2.toString()); } } catch (InvalidFormatException e) { e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return map; } public Map<String,String> getProReconNameMap(BufferedReader br){ Map<String,String> map = new LinkedHashMap<String, String>(); try{ String s = null; while((s = br.readLine()) != null){ if(s.contains("proReconFileName")){ continue; } String[] st = s.split("="); map.put(st[0].trim(), st[1].trim()); System.out.println(s); } br.close(); }catch(Exception e){ return null; } return map; } public static void main(String[] args){ File file = new File("D:\\codefile\\testfile\\PRoReconConstant.txt"); BufferedReader br = null; try { br = new BufferedReader(new FileReader(file)); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } Map<String, String> map = new ReadTxtUtil().getProReconNameMap(br); System.out.println(map.size()); } } 4. web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>demo1</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>UploadPhotoServlet</servlet-name> <servlet-class>com.org.servlet.UploadPhotoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UploadPhotoServlet</servlet-name> <url-pattern>/servlet/UploadPhotoServlet</url-pattern> </servlet-mapping> </web-app> |
|||
jdbc连接数据库 | jdbc连接数据库 | ||
1. 表t_proReconRecord的结构定义: prr_id int ; //主键 contract_id int ; //合同号 ttr_id int ; //解决方案id sell_id int; //网元 pr_values text ; //工勘信息 webModelDetail varchar ; //细分的网元类型 config_id int; //bill清单编号 2. ProjectReconRecord.java package com.pojo; /** * 工勘记录表 */ public class ProjectReconRecord { private Integer prr_id; //主键 private Integer contract_id; //合同号 private Integer ttr_id; //解决方案id private Integer sell_id; //网元 private String pr_values; //工勘信息 private String webModelDetail; //细分的网元类型 private Integer config_id; //bill清单编号 public Integer getPrr_id() { return prr_id; } public void setPrr_id(Integer prr_id) { this.prr_id = prr_id; } public Integer getContract_id() { return contract_id; } public void setContract_id(Integer contract_id) { this.contract_id = contract_id; } public String getPr_values() { return pr_values; } public void setPr_values(String pr_values) { this.pr_values = pr_values; } public Integer getTtr_id() { return ttr_id; } public void setTtr_id(Integer ttr_id) { this.ttr_id = ttr_id; } public Integer getSell_id() { return sell_id; } public void setSell_id(Integer sell_id) { this.sell_id = sell_id; } public String getWebModelDetail() { return webModelDetail; } public void setWebModelDetail(String webModelDetail) { this.webModelDetail = webModelDetail; } public Integer getConfig_id() { return config_id; } public void setConfig_id(Integer config_id) { this.config_id = config_id; } } 3. DBUtil.java package com.db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class DBUtil { private Connection conn; private PreparedStatement ps; private ResultSet rs; public Connection getConn() { return conn; } public PreparedStatement getPs() { return ps; } public ResultSet getRs() { return rs; } public Connection getConnection(){ try{ String username = "root"; String password = "dfd12df"; String url = "jdbc:mysql://localhost:3306/db_hp"; Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(url, username, password); System.out.println("数据库连接成功"); }catch(Exception e){ conn = null; } return conn; } public PreparedStatement getPreparedStatement(String sql){ try{ ps = conn.prepareStatement(sql); }catch(Exception e){ e.printStackTrace(); } return null; } public ResultSet getResultSet(){ try{ rs = ps.executeQuery(); }catch(Exception e){ e.printStackTrace(); } return rs; } public void close(){ try{ if(rs != null){ rs.close(); } if(ps != null){ ps.close(); } if(conn != null){ conn.close(); } }catch(Exception e){ e.printStackTrace(); } } public static void main(String[] args){ DBUtil du = new DBUtil(); du.getConnection(); } } 4. CommonDB.java package com.db; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.pojo.ProjectReconRecord; public class CommonDB<T> { private T t; public void setT(T t){ this.t = t; } public T getT(){ return this.t; } /**查询数据库*/ public List<?> findListBySql(T t, String sql){ this.setT(t); List<ProjectReconRecord> list = new ArrayList<ProjectReconRecord>(); DBUtil du = new DBUtil(); du.getConnection(); du.getPreparedStatement(sql); ResultSet rs = du.getResultSet(); try{ ProjectReconRecord p = null; /** 1为ProjectReconRecord */ int flg = 0; if(this.getT().getClass().equals(ProjectReconRecord.class)){ flg = 1; } while(rs.next()){ if(flg == 1){ p = new ProjectReconRecord(); Integer prr_id = rs.getInt("prr_id"); Integer contract_id = rs.getInt("contract_id"); Integer ttr_id = rs.getInt("ttr_id"); Integer sell_id = rs.getInt("sell_id"); String pr_values = rs.getString("pr_values"); Integer config_id = rs.getInt("config_id"); p.setPrr_id(prr_id); p.setContract_id(contract_id); p.setTtr_id(ttr_id); p.setSell_id(sell_id); p.setPr_values(pr_values); p.setConfig_id(config_id); list.add(p); continue; }else{ break; } } }catch(Exception e){ e.printStackTrace(); }finally{ du.close(); } System.out.println("rs是否关闭?"+(du.getRs()==null?"是":"否")); System.out.println("ps是否关闭?"+(du.getPs()==null?"是":"否")); System.out.println("conn是否关闭?"+(du.getConn()==null?"是":"否")); return list; } public static void main(String[] args) { CommonDB<ProjectReconRecord> cd = new CommonDB<ProjectReconRecord>(); cd.setT(new ProjectReconRecord()); List<ProjectReconRecord> list = (List<ProjectReconRecord>) cd.findListBySql(new ProjectReconRecord(), "select * from t_proReconRecord where contract_id = 227 and ttr_id = 6 and sell_id = 12"); for(ProjectReconRecord p : list){ System.out.println("contract_id = "+p.getContract_id()+", "+ "ttr_id = "+p.getTtr_id()+", sell_id = "+p.getSell_id()+", config_id = "+p.getConfig_id()+", prr_values = "+p.getPr_values()); } } } 4. ProReconRecordUtil.java import java.util.*; /**对上传的工勘的结果进行处理的工具类*/ public class ProReconRecordUtil { public static void main(String[] args){ //基站 int enb_sell_id = 12; String enb_prr_value = "pr_en_1=新建机房,pr_en_2=青青小美,pr_en_3=20.0,pr_en_4=30.0,pr_en_6=上走线," +"pr_en_7=一般地区,pr_en_8=20.0,pr_en_9=直流-48V,pr_en_10=室外落地," +"pr_en_12=1.8GHz eRRU3251,pr_en_13=华为,pr_en_14=直流,pr_en_15=抱杆安装," +"pr_en_16=室外,pr_en_17=2.0,pr_en_18=3.0,pr_en_19=1.0,pr_en_20=6.144G-单模-2km," +"pr_en_21=2.0,pr_en_24=单模,pr_en_27=40.0,pr_en_28=2.0,pr_en_34=50.0,pr_en_35=50.0," +"pr_en_36=否,pr_en_37=否,pr_en_50=0度,pr_en_52=抱杆,pr_en_53=是,pr_en_54=40.0," +"pr_en_60=光口,pr_en_61=单模10km,pr_en_63=LC-LC,pr_en_64=单模,pr_en_65=20.0," +"pr_en_69=5.0,pr_en_70=5.0,pr_en_90=10.0,pr_en_91=单相三芯电源线,pr_en_92=10.0"; //实际使用这个地方的值从数据库中获取得到 int totalPrNumber = 152; handPrValue(enb_sell_id, enb_prr_value, totalPrNumber); //核心网 int hardCore_sell_id = 13; String hardCore_prr_value = "pr_en_1=是,pr_en_9=1,pr_en_2=2,pr_en_5=2,pr_en_7=一般地区,pr_en_10=3"; //实际使用这个地方的值从数据库中获取得到 int hardCore_totalPrNumber = 10; handPrValue(hardCore_sell_id, hardCore_prr_value, hardCore_totalPrNumber); } /**对上传的工勘的结果进行处理*/ public static Map<String, String> handPrValue(int sell_id, String prr_value, int totalPrNumber){ int[] indexArray = {1,5,9,14,16}; String[] prArray = prr_value.split(","); String[] prName = new String[prArray.length]; String[] prValue = new String[prArray.length]; if(prArray.length > 0){ for(int i = 0; i < prArray.length; i++){ String[] p_v = prArray[i].split("="); prName[i] = p_v[0]; prValue[i] = p_v[1]; } } Map<String,String> map = new LinkedHashMap<String, String>(); for(int i = 0; i < totalPrNumber; i++){ boolean flg = false; for(int j = 0; j < prName.length; j++){ if(prName[j].equals("pr_en_"+(i+1))){ map.put(prName[j],prValue[j]); flg = true; break; }else{ continue; } } if(!flg){ map.put("pr_en_"+(i+1),"-10000"); } } for(Map.Entry<String,String> obj : map.entrySet()){ System.out.println(obj.getKey() + " = "+obj.getValue()); } System.out.println("map.size = "+map.size()); System.out.println("---------------------------------"); return map; } } |
|||
jquery_demo_1 | jquery_demo_1 | ||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript" src="js/jquery-1.6.2.js"></script> <script type="text/javascript"> $(document).ready(function(){ for(var i = 1; i <= 4; i++){ var _append = "tr_append_"+i; $("#"+_append).hide(); } $("#tr_1").hover(function(){ $("#tr_append_1").show(); },function(){ $("#tr_append_1").hide(); }); $("#tr_2").hover(function(){ $("#tr_append_2").show(); },function(){ $("#tr_append_2").hide(); }); $("#tr_3").hover(function(){ $("#tr_append_3").show(); },function(){ $("#tr_append_3").hide(); }); $("#tr_4").hover(function(){ $("#tr_append_4").show(); },function(){ $("#tr_append_4").hide(); }); }); </script> <style type="text/css"> tr{ margin-up : 10px; background-color:white; } #tr_append_1,#tr_append_2,#tr_append_3,#tr_append_4{ background-color:lightblue; } #nobgcolor{ background-color:white; } td{ align:left; } </style> </head> <body> <table width="600px"> <tr id="tr_1"> <td>jquery 事件1</td> <td>mouseover</td> </tr> <tr id="tr_append_1"><td id="nobgcolor"></td><td width="400px;">当鼠标指针移到某个Dom节点上的时候会触发mouseover事件</td></tr> <tr id="tr_2"> <td>jquery 事件2</td> <td>mouseout</td> </tr> <tr id="tr_append_2"><td id="nobgcolor"></td><td width="400px;">当鼠标指针移出某个Dom节点上的时候会触发mouseout事件</td></tr> <tr id="tr_3"> <td>jquery 事件3</td> <td>change</td> </tr> <tr id="tr_append_3"><td id="nobgcolor"></td><td width="400px;">当前Dom节点的值改变时候会触发change事件</td></tr> <tr id="tr_4"> <td>jquery 事件4</td> <td>hover</td> </tr> <tr id="tr_append_4"><td id="nobgcolor"></td><td width="400px;">当鼠标指针移入或移出时会触发hover事件</td></tr> </table> </body> </html> |
|||
手动编译java文件 | 手动编译java文件 | ||
1. 假设在d:\codefile下建立一个src文件夹和一个classes文件夹 2. 进入src文件下: 假设src文件在d:\codefile下 cd d:\codefile\file 3. 输入命令javac -d ../classes Test.java 这样就可以对src下的Test.java文件进行编译了, 编译后的.class文件放在跟src文件夹同级的classes文件夹下 4. 运行.class文件 java Test |
|||
java泛型编程 | java泛型编程 | ||
1. Animal.java package com.pojo; public class Animal { public String name; public Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } } 2. Cat.java package com.pojo; public class Cat extends Animal{ private Integer fourFoot; public Integer getFourFoot() { return fourFoot; } public void setFourFoot(Integer fourFoot) { this.fourFoot = fourFoot; } } 3. Bird.java package com.pojo; public class Bird extends Animal{ private Integer twoFoot; public Integer getTwoFoot() { return twoFoot; } public void setTwoFoot(Integer twoFoot) { this.twoFoot = twoFoot; } } 4. Demo.java package com.test; import java.util.ArrayList; import java.util.List; import com.pojo.Animal; import com.pojo.Bird; import com.pojo.Cat; import com.pojo.Person; import com.pojo.Worker; public class Demo { private List list = new ArrayList(); /** * 定义泛型方法 */ public <T> String getStr(T s){ if(s instanceof String){ return "this is a string : "+s.toString(); }else{ return "this is not a string : "+s.toString(); } } public <T> List<T> getTMap(List<T> ld , List<? extends T> ls){ for(T t : ls){ ld.add(t); } return ld; } public <T> void saveObj(T o){ list.add(o); } public static void main(String[] args) { List<String> ls = new ArrayList<String>(); // List<Object> lo = ls; //error Demo d = new Demo(); String s = d.getStr(1); System.out.println(s); String s2 = d.getStr("hello kity"); System.out.println(s2); Cat cat_1 = new Cat(); cat_1.setName("kit猫"); cat_1.setAge(2); cat_1.setFourFoot(4); Cat cat_2 = new Cat(); cat_2.setName("cool猫"); cat_2.setAge(1); cat_2.setFourFoot(4); List<Cat> cat = new ArrayList<Cat>(); cat.add(cat_1); cat.add(cat_2); List<Animal> ans = d.getTMap(new ArrayList<Animal>(), cat); d.showMessage(ans); Bird b_1 = new Bird(); b_1.setName("喜鹊"); b_1.setAge(2); b_1.setTwoFoot(2); Bird b_2 = new Bird(); b_2.setName("黄莺"); b_2.setAge(1); b_2.setTwoFoot(2); List<Bird> bs = new ArrayList<Bird>(); bs.add(b_1); bs.add(b_2); List<Animal> lb = d.getTMap(new ArrayList<Animal>(), bs); d.showMessage(lb); Cat c = new Cat(); c.setName("coffee猫"); c.setAge(1); c.setFourFoot(4); d.saveObj(c); Bird b = new Bird(); b.setName("麻雀"); b.setAge(1); b.setTwoFoot(2); d.saveObj(b); System.out.println("***************************************"); d.showMessage(d.list); } public <T> void showMessage(List<T> lb){ for(T t : lb){ if(t instanceof Animal){ Integer footNumber = 0; Animal a = (Animal)t; if(a instanceof Bird) footNumber = 2; else if(a instanceof Cat) footNumber = 4; System.out.println(a.getName()+", "+a.getAge()+", "+(footNumber == 0 ? "":footNumber)+"条腿"); } } } } |
|||
自定义标签和标签库函数的学习 | 自定义标签和标签库函数的学习 | ||
自定义标签和标签库函数的学习--自己的Demo 自定义表单标签和标签库函数:.tld文件必须放在WEB-INF下 1. viewIpTag.tld <?xml version="1.0" encoding="UTF-8" ?> <!-- 这是从 绿色版\apache-tomcat-7.0.42\webapps\examples\WEB-INF\jsp2\jsp2-example-taglib.tld 模板中拷贝过来的 --> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <description>我的自定义标签</description> <tlib-version>1.0</tlib-version> <short-name>自定义标签</short-name> <uri>/thisIsMyTag</uri> <tag> <!-- 标签属性的名称 --> <name>colname</name> <tag-class>com.happiness.tag.ShowLocalIP</tag-class> <!-- 有没有标签体,这里empty表示没有,有的话就写jsp --> <body-content>JSP</body-content> <attribute> <description>姓名</description> <name>username</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> <attribute> <description>性别</description> <name>sex</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> <attribute> <description>年龄</description> <name>age</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> </tag> <function> <description>显示表格行的函数</description> <name>showTableRow</name> <function-class>com.happiness.tag.SelfFunction</function-class> <function-signature>java.lang.String pdType(java.lang.String)</function-signature> </function> </taglib> 2. ShowLocalIP.java package com.happiness.tag; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; import com.happiness.pojo.StudentPojo; public class ShowLocalIP extends TagSupport{ private String username; private String sex; private Integer age; @Override public int doStartTag() throws JspException { HttpServletRequest request = (HttpServletRequest)this.pageContext.getRequest(); JspWriter out = this.pageContext.getOut(); // String ip = request.getRemoteAddr(); // List<StudentPojo> ss = new ArrayList<StudentPojo>(); // ss.add(new StudentPojo("张三","男",20)); // ss.add(new StudentPojo("李四","男",20)); // ss.add(new StudentPojo("王五","女",20)); // ss.add(new StudentPojo("刘麻子","女",20)); try{ out.print("<tr width='50%'>"); out.print(" <td width='30%'>"+this.username+"</td>"); out.print(" <td width='30%'>"+this.sex+"</td>"); out.print(" <td width='30%'>"+this.age+"</td>"); out.print("</tr>"); }catch(Exception e){ throw new RuntimeException(e); } return super.doStartTag(); } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } } 3. SelfFunction.java package com.happiness.tag; public class SelfFunction { /**方法必须为static类型的*/ public static String pdType(String ageStr){ Integer age = null; if(ageStr == null || "".equals(ageStr)){ age = 0; }else{ age = Integer.parseInt(ageStr); } if(age < 18) return "青少年"; else if(age >= 18 && age < 40) return "青年"; else if(age >= 40 && age < 60) return "青壮年"; else return "老年"; } } 4. index.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib uri="/thisIsMyTag" prefix="tt"%> <html> <head> <title>My JSP 'ELDemo.jsp' starting page</title> </head> <body> 表格如下: <!-- 因为没有标签体,所以直接一个标签就可以了 --> <table> <!-- 自定义标签实现的表格行 --> <tt:colname username="张三" sex="男" age="20"></tt:colname> <tt:colname username="李四" sex="男" age="23"></tt:colname> <tt:colname username="王五" sex="女" age="25"></tt:colname> </table> <!-- 自定义标签库函数的使用 --> 16岁: ${tt:showTableRow("16")}<br /> 26岁: ${tt:showTableRow("26")}<br /> 46岁: ${tt:showTableRow("46")}<br /> 66岁: ${tt:showTableRow("66")}<br /> </body> </html> |
|||
自定义标签和标签库函数的学习--自己的Demo | 自定义标签和标签库函数的学习--自己的demo | ||
自定义标签和标签库函数的学习--自己的Demo 自定义表单标签和标签库函数:.tld文件必须放在WEB-INF下 1. viewIpTag.tld <?xml version="1.0" encoding="UTF-8" ?> <!-- 这是从 绿色版\apache-tomcat-7.0.42\webapps\examples\WEB-INF\jsp2\jsp2-example-taglib.tld 模板中拷贝过来的 --> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <description>我的自定义标签</description> <tlib-version>1.0</tlib-version> <short-name>自定义标签</short-name> <uri>/thisIsMyTag</uri> <tag> <!-- 标签属性的名称 --> <name>colname</name> <tag-class>com.happiness.tag.ShowLocalIP</tag-class> <!-- 有没有标签体,这里empty表示没有,有的话就写jsp --> <body-content>JSP</body-content> <attribute> <description>姓名</description> <name>username</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> <attribute> <description>性别</description> <name>sex</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> <attribute> <description>年龄</description> <name>age</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> </tag> <function> <description>显示表格行的函数</description> <name>showTableRow</name> <function-class>com.happiness.tag.SelfFunction</function-class> <function-signature>java.lang.String pdType(java.lang.String)</function-signature> </function> </taglib> 2. ShowLocalIP.java package com.happiness.tag; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; import com.happiness.pojo.StudentPojo; public class ShowLocalIP extends TagSupport{ private String username; private String sex; private Integer age; @Override public int doStartTag() throws JspException { HttpServletRequest request = (HttpServletRequest)this.pageContext.getRequest(); JspWriter out = this.pageContext.getOut(); // String ip = request.getRemoteAddr(); // List<StudentPojo> ss = new ArrayList<StudentPojo>(); // ss.add(new StudentPojo("张三","男",20)); // ss.add(new StudentPojo("李四","男",20)); // ss.add(new StudentPojo("王五","女",20)); // ss.add(new StudentPojo("刘麻子","女",20)); try{ out.print("<tr width='50%'>"); out.print(" <td width='30%'>"+this.username+"</td>"); out.print(" <td width='30%'>"+this.sex+"</td>"); out.print(" <td width='30%'>"+this.age+"</td>"); out.print("</tr>"); }catch(Exception e){ throw new RuntimeException(e); } return super.doStartTag(); } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } } 3. SelfFunction.java package com.happiness.tag; public class SelfFunction { /**方法必须为static类型的*/ public static String pdType(String ageStr){ Integer age = null; if(ageStr == null || "".equals(ageStr)){ age = 0; }else{ age = Integer.parseInt(ageStr); } if(age < 18) return "青少年"; else if(age >= 18 && age < 40) return "青年"; else if(age >= 40 && age < 60) return "青壮年"; else return "老年"; } } 4. index.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib uri="/thisIsMyTag" prefix="tt"%> <html> <head> <title>My JSP 'ELDemo.jsp' starting page</title> </head> <body> 表格如下: <!-- 因为没有标签体,所以直接一个标签就可以了 --> <table> <!-- 自定义标签实现的表格行 --> <tt:colname username="张三" sex="男" age="20"></tt:colname> <tt:colname username="李四" sex="男" age="23"></tt:colname> <tt:colname username="王五" sex="女" age="25"></tt:colname> </table> <!-- 自定义标签库函数的使用 --> 16岁: ${tt:showTableRow("16")}<br /> 26岁: ${tt:showTableRow("26")}<br /> 46岁: ${tt:showTableRow("46")}<br /> 66岁: ${tt:showTableRow("66")}<br /> </body> </html> |
|||
jython_3 | jython_3 | ||
1. BomVo.java package com.newbee; public class BomVo { private Integer id; private String bom_no; private Integer bom_num; private String headerText; private Integer bom_sort_no; private String re_address; public BomVo(Integer id, String bom_no, Integer bom_num, String headerText, Integer bom_sort_no, String re_address) { this.id = id; this.bom_no = bom_no; this.bom_num = bom_num; this.headerText = headerText; this.bom_sort_no = bom_sort_no; this.re_address = re_address; } public BomVo(String bom_no, Integer bom_num, String headerText, Integer bom_sort_no, String re_address) { this.bom_no = bom_no; this.bom_num = bom_num; this.headerText = headerText; this.bom_sort_no = bom_sort_no; this.re_address = re_address; } public BomVo(String bom_no) { this.bom_no = bom_no; } public BomVo() { } public String getRe_address() { return re_address; } public void setRe_address(String re_address) { this.re_address = re_address; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getBom_no() { return bom_no; } public void setBom_no(String bom_no) { this.bom_no = bom_no; } public Integer getBom_num() { return bom_num; } public void setBom_num(Integer bom_num) { this.bom_num = bom_num; } public String getHeaderText() { return headerText; } public void setHeaderText(String headerText) { this.headerText = headerText; } public Integer getBom_sort_no() { return bom_sort_no; } public void setBom_sort_no(Integer bom_sort_no) { this.bom_sort_no = bom_sort_no; } } 2. ProjectReconRecord.java package com.newbee; public class ProjectReconRecord { private Integer prr_id; private Integer contract_id; private Integer ttr_id; private Integer sell_id; private String prr_value; private String webDetail; private Integer config_id; public ProjectReconRecord(){ } public ProjectReconRecord(Integer prr_id, Integer contract_id, Integer ttr_id, Integer sell_id, String prr_value, String webDetail, Integer config_id) { this.prr_id = prr_id; this.contract_id = contract_id; this.ttr_id = ttr_id; this.sell_id = sell_id; this.prr_value = prr_value; this.webDetail = webDetail; this.config_id = config_id; } public Integer getPrr_id() { return prr_id; } public void setPrr_id(Integer prr_id) { this.prr_id = prr_id; } public Integer getContract_id() { return contract_id; } public void setContract_id(Integer contract_id) { this.contract_id = contract_id; } public Integer getTtr_id() { return ttr_id; } public void setTtr_id(Integer ttr_id) { this.ttr_id = ttr_id; } public Integer getSell_id() { return sell_id; } public void setSell_id(Integer sell_id) { this.sell_id = sell_id; } public String getPrr_value() { return prr_value; } public void setPrr_value(String prr_value) { this.prr_value = prr_value; } public String getWebDetail() { return webDetail; } public void setWebDetail(String webDetail) { this.webDetail = webDetail; } public Integer getConfig_id() { return config_id; } public void setConfig_id(Integer config_id) { this.config_id = config_id; } } 3. SToBUtil.java package com.newbee; import java.util.HashMap; import java.util.Map; import java.util.Set; import org.python.core.PyDictionary; import org.python.core.PyFunction; import org.python.core.PyInteger; import org.python.core.PyList; import org.python.core.PyObject; import org.python.core.PyString; public class SToBUtil { private Integer contract_id; //合同号 private Integer ttr_id; //解决方案id private Integer sell_id; //网元id private String webDetail; //网元详细分类 /**转换(针对非基站)*/ public void stob(){ //工勘List PyList proReconList = new PyList(); ProjectReconRecord prr = new ProjectReconRecord(1, contract_id, ttr_id, sell_id, "pr_en_1=朝阳广顺桥南,pr_en_2=是,pr_en_3=否", "terminal", -1); proReconList.add(prr); //网元对应的销售清单List PyList pl = new PyList(); BomVo b1 = new BomVo(1, "DHY:TD-M01-010-001", 1, "", 0, ""); BomVo b2 = new BomVo(1, "DHY:TD-M01-010-002", 2, "", 0, ""); BomVo b6 = new BomVo(1, "DHY:TD-M01-010-006", 6, "", 0, ""); pl.add(b1); pl.add(b2); pl.add(b6); //启动信息表对象 PyList pList = new PyList(); pList.add(new BomVo()); PyFunction py_terminal = JythonFactory.getInstance().getPyFunctionFromJythonFile("stob_terminal", "test_terminal_new.py"); PyDictionary pl_terminal = (PyDictionary)py_terminal.__call__(proReconList,pl); Set<String> set = pl_terminal.keySet(); for(String key : set){ System.out.println("dhy = "+key+", number = "+pl_terminal.get(key)); } System.out.println("*********************************"); // PyFunction py_terminal_2 = JythonFactory.getInstance().getPyFunctionFromJythonFile("test", "terminal_2.py"); // PyList pL_terminal_2 = (PyList)py_terminal_2.__call__(proReconList,pl); //// PyList pL_terminal_2 = (PyList)py_terminal_2.__call__(); // for(int i = 0; i < pL_terminal_2.size(); i++){ // BomVo b = (BomVo)pL_terminal_2.get(i); // System.out.println("dhy = "+b.getBom_no()+", number = "+b.getBom_num()+ ", id = "+ b.getId()); // } // PyFunction py_terminal_2 = JythonFactory.getInstance().getPyFunctionFromJythonFile("test", "testclass.py"); // py_terminal_2.__call__(); Map<PyObject , PyObject> bBomMap = new HashMap<PyObject , PyObject>(); for(String key : set){ Integer num = (Integer)pl_terminal.get(key); bBomMap.put(new PyString(key), new PyInteger(num)); } PyFunction py_7 = JythonFactory.getInstance().getPyFunctionFromJythonFile("test_terminal", "test_terminal_new.py"); PyDictionary pb_7 = new PyDictionary(bBomMap); PyList terminal_list = (PyList)py_7.__call__(pb_7); for(int i = 0; i < terminal_list.size(); i++){ BomVo b = (BomVo)terminal_list.get(i); System.out.println("dhy = "+b.getBom_no()+", number = "+b.getBom_num()+ ", headerText = "+ b.getHeaderText() +", address = "+b.getRe_address()); // System.out.println("dhy = "+b.getBom_no()+", number = "+b.getBom_num()+ ", headerText = "+ ConstantHandler.hand(headerText[0])+"/"+ConstantHandler.hand(headerText[1])+", address = "+ConstantHandler.hand(b.getRe_address())); } } public static void main(String[] args){ SToBUtil su = new SToBUtil(); su.stob(); } } 4. test_terminal_new.py # -*- coding: utf-8 -*- from com.newbee import BomVo from com.newbee import ProjectReconRecord class Bom(BomVo): def __init__(self,bom_no,id,bom_num,headerText,bom_sort_no,re_address): self.bom_no = bom_no self.id = id self.bom_num = bom_num self.headerText = headerText self.bom_sort_no = bom_sort_no self.re_address = re_address def changeBom_no(self,bom_no): self.bom_no = bom_no def changeId(self,id): self.id = id def changeBom_num(self,bom_num): self.bom_num = bom_num def changeHeaderText(self,headerText): self.headerText = headerText def changeBom_sort_no(self,bom_sort_no): self.bom_sort_no = bom_sort_no def changeRe_address(self,re_address): self.re_address = re_address class ProjectReconRecordVo(ProjectReconRecord): def __init__(self): self.prr_id = 'prr_id' self.contract_id = 'contract_id' self.ttr_id = 'ttr_id' self.sell_id = 'sell_id' self.prr_value = 'prr_value' self.webDetail = 'webDetail' self.config_id = 'config_id' def setPrr_id(self,prr_id): self.prr_id = prr_id def setContract_id(self,contract_id): self.contract_id = contract_id def setTtr_id(self,ttr_id): self.ttr_id = ttr_id def setSell_id(self,sell_id): self.sell_id = sell_id def setPrr_value(self,prr_value): self.prr_value = prr_value def setWebDetail(self,webDetail): self.webDetail = webDetail def setConfig_id(self,config_id): self.config_id = config_id def getPrr_id(self): return self.prr_id def getContract_id(self): return self.contract_id def getTtr_id(self): return self.ttr_id def getSell_id(self): return self.sell_id def getPrr_value(self): return self.prr_value def getWebDetail(self): return self.webDetail def getConfig_id(self): return self.config_id def stob_terminal(proReconList,pl): proRecon = proReconList[0] newProReconList = proRecon.getPrr_value().split(',') proReconMap = {} for m in range(len(newProReconList)): tempProReconList = newProReconList[m].split('=') proReconMap[tempProReconList[0]] = tempProReconList[1] newBBomMap = {} for n in range(len(pl)): b = pl[n] bDhy = b.getBom_no() print bDhy if bDhy == 'DHY:TD-M01-010-001': if 'DHY:TD-P01-010-001' in newBBomMap: p01 = newBBomMap['DHY:TD-P01-010-001'] newBBomMap['DHY:TD-P01-010-001'] = p01 + b.getBom_num() else: newBBomMap['DHY:TD-P01-010-001'] = b.getBom_num() newBBomMap['DHY:TD-P01-010-002'] = 1 elif bDhy == 'DHY:TD-M01-010-002': if proReconMap['pr_en_2'].encode('utf-8') == '是': newBBomMap['DHY:TD-P01-020-001'] = 2 * b.getBom_num() elif proReconMap['pr_en_3'].encode('utf-8') == '否': newBBomMap['DHY:TD-P01-020-002'] = b.getBom_num() newBBomMap['DHY:TD-P01-020-003'] = 2 * b.getBom_num() elif bDhy == 'DHY:TD-M01-010-003': newBBomMap['DHY:TD-P01-030-001'] = b.getBom_num() elif bDhy == 'DHY:TD-M01-010-004': newBBomMap['DHY:TD-P01-040-001'] = b.getBom_num() elif bDhy == 'DHY:TD-M01-010-005': newBBomMap['DHY:TD-P01-050-001'] = b.getBom_num() elif bDhy == 'DHY:TD-M01-010-006': if 'DHY:TD-P01-010-001' in newBBomMap: p01 = newBBomMap['DHY:TD-P01-010-001'] newBBomMap['DHY:TD-P01-010-001'] = p01 + 3 * b.getBom_num() else: newBBomMap['DHY:TD-P01-060-001'] = 3 * b.getBom_num() elif bDhy == 'DHY:TD-M01-010-007': newBBomMap['DHY:TD-P01-070-001'] = 5 * b.getBom_num() else : pass return newBBomMap def test_terminal(bBomMap): bBomList = [] for (bDhy,v) in bBomMap.items(): print bDhy , v if bDhy == 'DHY:TD-P01-010-001': bBomList.append(Bom(bDhy,0,v,'terminal/huaweinengji',1,'北京'.decode('utf-8'))) elif bDhy == 'DHY:TD-P01-010-002': bBomList.append(Bom(bDhy,0,v,'terminal/huaweiwuxian',2,'上海'.decode('utf-8'))) elif bDhy == 'DHY:TD-P01-020-001': bBomList.append(Bom(bDhy,0,v,'terminal/huaweinengji',1,'北京'.decode('utf-8'))) elif bDhy == 'DHY:TD-P01-020-002': bBomList.append(Bom(bDhy,0,v,'terminal/huaweiwuxian',1,'北京'.decode('utf-8'))) elif bDhy == 'DHY:TD-P01-020-003': bBomList.append(Bom(bDhy,0,v,'terminal/huaweinengji',3,'长沙'.decode('utf-8'))) elif bDhy == 'DHY:TD-P01-030-001': bBomList.append(Bom(bDhy,0,v,'terminal/huaweinengji',3,'长沙'.decode('utf-8'))) elif bDhy == 'DHY:TD-P01-040-001': bBomList.append(Bom(bDhy,0,v,'terminal/waicai',1,'北京'.decode('utf-8'))) elif bDhy == 'DHY:TD-P01-050-001': bBomList.append(Bom(bDhy,0,v,'terminal/waicai',2,'上海'.decode('utf-8'))) elif bDhy == 'DHY:TD-P01-070-001': bBomList.append(Bom(bDhy,0,v,'terminal/huaweinengji',4,'广州'.decode('utf-8'))) else : pass return bBomList |