11

**

一直在努力,从来未放弃!

**

2016.3.7第一天上班。
1.判断上传文件是不是图片格式

function checkPic(){
    var picPath=document.getElementById("fileToUpload").value;
    var type=picPath.substring(picPath.lastIndexOf(".")+1,picPath.length).toLowerCase();
    if(type!="jpg"&&type!="bmp"&&type!="gif"&&type!="png"&&type!="jpeg"){
        alert("请上传正确的图片格式");
        return false;
    }
    return true;
}   


<img id="upload" alt="" style="width: 200px; height: 200px"
    src="/resources/pictureView/zanwutupian.jpg">
<input id="fileToUpload" style="display: none" type="file"
    name="upfile"><br />

2.img标签中src属性放绝对路径不能显示

<img src="E:\work\workspace\sites\ROOT\resources\a.jpg">

不建议这么写。建议用相对路径。如果是项目的话获取工程根目录,然后在找到图片。

<img src="/resources/a.jpg">

3.在项目中需要做文件的上传与下载。上传是用ajax做的,做下载的时候也想用ajax做,可惜出现问题,后台代码没有任何问题,但是浏览器没有任何反应,找了好长时间才发现为什么。
切记:下载的时候,如果是用ajax异步提交的,就不会弹出下载框,要用form表单提交才行。

4.拿到一个dbf数据库,需要在本机创建表空间和用户来测试使用。
创建临时表空间,数据表空间,用户,赋予用户权限

create temporary tablespace bcpcms_temp  
tempfile 'E:\work\tablespace\bcpcms_temp.dbf' 
size 4096m  
autoextend on  
next 4096m maxsize 20480m  
extent management local;  

create tablespace bcpcms_data  
logging  
datafile 'E:\work\tablespace\bcpcms_data.dbf' 
size 4096m  
autoextend on  
next 4096m maxsize 20480m  
extent management local;  

create user bcpcmsold identified by oracle  
default tablespace bcpcms_temp  
temporary tablespace bcpcms_data; 

grant connect,resource,dba to bcpcmsold;
//删除dbf文件,如表空间名称为sqlt
DROP TABLESPACE SALT

5.在servlet中如何使用被Spring管理的service
我在项目中采用的是硬编码方法。当然还有其它方法,以后有时间再补充。

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(request.getServletContext());  
        MediaService mediaService = (MediaService)wac.getBean("mediaService"); 
        }

6.公司网站要迁移和二次开发,要做excel的导入导出。参考了旧项目和原来派得公司育种。发现都不适合自己要做的,开发也遇到很多问题,不过现在终于完成了,代码和思路以后补充。暂留空位。
下面写些遇到的问题:
HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls
XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx
对于不同版本的EXCEL文档要使用不同的工具类,如果使用错了,会提示如下错误信息。
org.apache.poi.openxml4j.exceptions.InvalidOperationException
org.apache.poi.poifs.filesystem.OfficeXmlFileException

7.(MultipartHttpServletRequest) request转换类型错误
有两点注意:
第一点:bmsmvc-servlet.xml中配置

<bean id="multipartResolver"  
 class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
    <!-- 设置上传文件的最大尺寸为1MB -->  
    <property name="maxUploadSize">  
        <value>1048576</value>  
    </property>  
</bean>  

第二点:enctype=”multipart/form-data”一定要写

<form action="/importExcle.action" method="post" name="excelUploadForm" id="excelUploadForm" 
 enctype="multipart/form-data">
<input id="excelToUpload" style="display: none" type="file" name="excelToUpload">
</form>

8.JDK5新特性之一
String… excludeProperty表示不定参数,也就是调用这个方法的时候这里可以传入多个String对象.在接收的方法里面,循环接收处理。

//例如传入arrCompress 这个参数
String[] arrCompress = compressStr.split(",");

9.在做压缩文件功能的时候,遇到
zipoutputstream 没有 setEncoding(“gbk”)方法。
悲剧啊,找了好久,才发现原来少导入包了,只有导入apache-ant-zip.jar这个包后,才能使用这个方法。

10.问题描述:
页面中有2个dialog,外层dialgo关闭时,里层dialog的table数据刷新
解决方案:
外层里new一个里层对象,调用里层对象的refresh方法。

2016.3.28
11.问题描述:
.live事件被重复绑定
难道真的是春乏秋困?脑子一丁点转不动,点击一个新建按钮,添加一个媒体后,再点击新建,就会添加2个一样的媒体,找不到原因,看着一个个弹出框,烦,后来发现原来是重复绑定了。项目中用的是.live事件,记得一定要.die。同样的,
.bind也要unbind。
解决方案:

jQuery("#mediaToolbar").find("#mediaNew").die("click").live("click", self.mediaNew);              //新建按钮

jQuery的click绑定有多种,解除绑定的方式也不相同
1)使用.bind()绑定事件,在1.7之后建议使用on,使用.unbind()解除绑定
2)使用.live()绑定事件,使用.die()解除绑定
3)使用.delegate()绑定事件,使用undelegate()解除

2016.3.30
12.项目中用了DataTables做为展示数据的表格。该控件支持分页,而且又漂亮。官网地址http://www.datatables.net/
问题描述:
用户点击一个按钮时,发起一次数据请求。
如果不先销毁表格,会产生下面错误。
这里写图片描述
解决办法:
将这个表格先销毁,然后在重新生成。

$("#mediaTable").dataTable().fnDestroy();//先把表格销毁,再重建
self.mediaTable=jQuery("#mediaTable").dataTable(self.tableSetting);

问题描述:
往后台传递参数
解决方法:

"sAjaxSource" : "/getAllMediaByPageInfo.action",
"fnServerParams" : function(aoData) {
                aoData.push( { "name": "id",  "value": id } );
            },  

2016.4.1
今天上午一直没精打采的,浑浑噩噩的感觉。下午发生了一件事,我快气炸了,沉默着。不在沉默中爆发,就在沉默中死亡。我现在刚刚拥有的一切,刚让自己从沉沦中走出,让自己做什么事情都畏手畏脚,我的前途比什么都重要,自己甚至不敢去维护自己合法的权益。明明知道是这个结果,自己还傻傻的去做。我真够傻的。多一些愤怒憎恨,就多一些鞭策!我想平平静静的生活,可你们不让!等着吧!我恨的一切我都会报复!
13.书写规则有误
问题描述:
这里写图片描述
解决方案:

//values是字符串,需要加引号
url : "/UploadAction?data='"+values+"'",         

2016.4.7
14.数据库查询SQL语句错误

//正确
select * from bms_media_1 where(parentid = 0 and  suffix = 0 and  name = 2 and  ISFOLDER = 1) 
//错误
select * from bms_media_1 where(parentid = 0 and  suffix =   and  name = 2 and  ISFOLDER = 1)       

解释:数据库中suffix字段查询的时候不能为空,必须有特定的查询值

15.图片

"bmp", "png", "tif", "tiff", "gif", "jpg", "jpeg", "pcx", "tga"

声音

"mp3", "mp2", "wav", "wma", "mid", "midi","ra", "3gp",  "aif", "snd", "au", "rmi"

多媒体

"rm", "rmvb", "avi", "mpe", "mpg", "mpeg", "vob", "vod", "flv", "mp4", "mov", "wmv", "asf", "asx", "m2ts", "ts", "mts", "mkv", "m2v", "m2t", "swf", "ppt", "pps", "pptx", "ppsx", "htm", "html"

16.createCriteria是单例模式,增加条件时,要在后面加.连续写

MediaExample example = new MediaExample();
        if(isFolder.equals("0")){//文件
    example.createCriteria().andParentidEqualTo(Long.parseLong(parentId)).andSuffixEqualTo(suffix).andNameEqualTo(mediaName).andIsfolderEqualTo(Short.valueOf(isFolder));
        }
        if(isFolder.equals("1")){//文件夹
    example.createCriteria().andParentidEqualTo(Long.parseLong(parentId)).andNameEqualTo(mediaName).andIsfolderEqualTo(Short.valueOf(isFolder));
        }
List<Media> mediaList = mediaDAO.selectByExample(example);

2016.4.8
17.前台数据集合封装成json格式,后台解析.常用啊。
JSON.stringify。直接上代码,前后台

//前台
var data = new Array();
var media = {
        name : mediaName,
        suffix : suffix,
        description : description
    };
data.push(media);
var data1 = JSON.stringify(data); 
jQueryAjaxExt({
    type : "post",
    url : "/mediaNameVerifyRepeat.action",
    data : {
        data:data1
    },
    success : function(ret) {}
//后台
//dataStr = [{"name":"菠萝.jpg"},{"name":"草莓 - 副本.jpg"}]
String dataStr = request.getParameter("data");   
// 首先把字符串转成 JSONArray  对象      
JSONArray json = JSONArray.fromObject(dataStr); 
if(json.size()>0){
// 遍历 jsonarray 数组,把每一个对象转成 json 对象
  for(int i=0;i<json.size();i++){
    JSONObject job = json.getJSONObject(i);  
    System.out.println(job.get("name")) ;// 得到 每个对象中的属性值
  }
}

2016.4.11
18.图片验证码错误
错误描述:
javax.imageio.IIOException: Can’t create output stream!
这里写图片描述
解决方案:
ImageIO.write(image, “JPEG”, os) 这种方式 来生成图片、验证码 tomcat必须要有temp文件夹。

2016.4.14
19.引用js文件的时候,假如在外层页面引入了,就不要在里层页面重复引用,否则会导致js方法的重复调用。
如:a.jsp里面包含b.jsp。
a.jsp里面引用了c.js,
b.jsp里面如果再次引用c.js就会导致一些错误。如:点击事件被触发两次,先触发里层,后触发外层。

20.jquery each的中断方法
在each代码块内不能使用break和continue,要实现break和continue的功能的话,要使用其它的方式
break—-用return false;
continue –用return ture;

$("input[name='folderName']").each(function() {
        return false;//跳出循环
});

21.判断字符串数组是否含有重复元素,在网上看见的那铺天盖地的都是那三种方法,我就果断被坑,遇到{11,111,1111}这种形式完坑。
现在我用一种折中的方式来判断,就是判断数组去重复前后的长度,如果不一样,就表明含有重复元素

    //数组去重
    self.uniqueArray = function(data){  
           data = data || [];  
           var a = {};  
           for (var i=0; i<data.length; i++) {  
               var v = data[i];  
               if (typeof(a[v]) == 'undefined'){  
                    a[v] = 1;  
               }  
           };  
           data.length=0;  
           for (var i in a){  
                data[data.length] = i;  
           }  
           return data;  
    };  
    //检查是否存在重复的媒体名称--前台
    self.isContainRepeatMediaNamePre = function(data){
        var ary = new Array();
        for(var i = 0; i < data.length; i++){
            ary.push(data[i].name);
        }
        //ary={11,111,1111};
        var len1 = ary.length;
        self.uniqueArray(ary);
        var len2 = ary.length;
        if(len1 != len2){
            alert("存在重复的媒体名称,请检查后再保存");
            return false;
        }else{
            return true;
        }
    };

2016.4.15
今天周五了,有木有兴奋。
22.ztree双击事件:展开或折叠节点
ztree单击事件:点击文件夹右侧页面查询列表,点击最下层文件右侧跳转编辑页面
问题描述:双击事件的时候要屏蔽掉单击事件
解决方案:暂时只想到延迟加载这么个方式

    var TimeFn = null;//定义setTimeout执行方法
    //双击事件
    self.zTreeOnDblClick = function(event, treeId, treeNode) {
        clearTimeout(TimeFn);// 取消上次延时未执行的方法
    };
    //用于捕获 zTree 上鼠标点击之后的事件回调函数
    self.nodeOnClick = function(event, treeId, treeNode) {
        clearTimeout(TimeFn);// 取消上次延时未执行的方法
        TimeFn = setTimeout(function(){ //执行延时
        if(treeNode.isfolder*1 == 1){     //文件夹    子节点列表
                window.mediaManage.loadListPage();
            }else{                            //文件     编辑页面
                window.mediaManage.mediaEdit(null);
            }
        },300);
    };

2016.4.18
又是新的一周,哎。时间好快,周末两天过的非常无聊,自己一点毅力没有。人总是做梦,却不付诸实践。找借口没用啊。
我看过的第一本玄幻小说,是郭敬明的幻城,高一的时候看的。那个时候才接触小说,各种喜欢。而我到现在为止,也能回味,也能再次细看一遍的小说,都过去十多年了,我依然记忆尤新,小说的名字《魔染梦土》,高二的时候看的。那时候囊中羞涩,只买了连载中的一本,上了大学,立马找出来读了一遍。我是个怀旧的人,对一些东西总是念念不忘,昨天又看了看这本小说,心里说不出的感伤。我真正意义上喜欢的第一本小说。怀旧总不是个好词,让自己很难过。

23.往后台传递字符串类型参数,不要把很多参数罗列在一些,用一些特殊符号来分割,就觉得没问题了。假如用户输入数据就包括特殊符号呢?就会出现很多问题。我感觉正确的做法就是:所有的参数,封装成json类型。一 一对应。

24.去掉字符串首尾空格
(以前在派得工作的时候,用的都是str.replace(” “, “”); 去掉所有空格,包括首尾、中间。今天做项目,才发现这个有问题,万一用户就想输入中间存在空格呢?现在改正过来,在前台往后台传递参数的时候,就去掉首尾空格。)

//去掉字符串首尾空格    
//1.正则表达式
function trimStr(str){return str.replace(/(^\s*)|(\s*$)/g,"");}
function save(){
    var ss = "  aa  dd  dd  ll  ";
    var s = trimStr(ss);
    alert("000"+s+"000");//000aa  dd  dd  ll000
}
//2. jQuery.trim()
var folderName = jQuery.trim($(this).attr("value"));

25.ajaxfileupload其实就是用表单来提交

26.不要是个js就放到window上,某个单独页面用到的js,就不要放window上,只有全局整个页面的js,才放到window上

//js文件
function mediaManage() {}
window.mediaManage = new mediaManage();

27.

//把字符串转换成数字   *1
var isfolder = re.isfolder*1;

2016.4.20
日复一日,哎
28.人都是逼着逼着,不会的也会了,也有解决方法了。来公司快2个月了,一直很纠结一个问题。项目用的spring mvc,前台不能都靠ajax动态提交,总需要表单,昨天终于找到个方法,就是jquery的一个插件jquery.form.js中的ajaxSubmit方法,提交后再接收后台返回数据。其实是自己太笨。

//js
function complaintNew() {
    $('#complaintForm').ajaxSubmit({
          type: 'post', // 提交方式 get/post
          url: '/complaintNew.action', // 需要提交的 url
          data: {
              data: "123"
          },
          success: function(ret) {
              alert(ret.ok);
          }
      });
    return false;
};
//jsp
<form id="complaintForm" name="complaintForm"  enctype="multipart/form-data" >
</form>
//后台java
@RequestMapping(value="/complaintNew.action")
   public void complaintNew(HttpServletRequest request,HttpServletResponse response) throws IOException{
    JSONObject obj = new JSONObject();
    try{
        String data = request.getParameter("data"); //1
        obj.accumulate("ok", "响应成功");
        response.getWriter().write(obj.toString());
    }catch(Exception e){
        e.printStackTrace();
    }
   }

2016.4.27
29.ajaxsubmit提交后,后台成功后,前台提示

<pre style="word-wrap:break-word;white-space:pre-wrap;">{"ok":true}</pre>

解决:

//js
$('#complaintForm').ajaxSubmit({
          type: 'post', 
          url: '/complaintNew.action', 
          dataType: "json",//这里返回方式要写成json
          success: function(ret) {
              if(ret.ok == true){
                  window.complaintManage.loadPage();
              }else{
                  alert(ret.reason);
              }
          }
});
//java   加上这句
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");

2016.5.3
刚过完五一,回来上班啦。感觉堆积了好多任务要做。

30.jQuery 名称冲突
使用自己的名称(比如 aa)来代替 $ 符号

 var aa=jQuery.noConflict();

31.最近写oracle视图用到的oracle函数

//NVL(E1, E2)
NVL(E1, E2)的功能为:如果E1为NULL,则函数返回E2,但此函数有一定局限,所以就有了NVL2函数。
拓展:NVL2函数:Oracle/PLSQL中的一个函数,Oracle在NVL函数的功能上扩展,提供了NVL2函数。NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。
//UNION
UNION 操作符用于合并两个或多个 SELECT 语句的结果集.请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

2016.5.5
菩提本无树,明镜亦非台,本来无一物,何处惹尘埃。
最近有种皈依佛门的冲动。

32.jQuery radio的取值与赋值

//赋值   给值为2的radio赋值
$("input[name='radioName'][value=2]").attr("checked",true);
//取值  
jQuery("input[name='sex']:checked").val();//性别

2016.5.17
33.js中alert弹出的对话框

//alert显示双引号
alert('"eeee"');//单引号
alert("\"eeee\"");//转义
//alert换行
alert("ee\ndd");//\n换行

34.java读取excel文件的数字、时间

/*
EXCEL导入
DiskFileItemFactory factory = new DiskFileItemFactory(); 
ServletContext servletContext = request.getSession().getServletContext();  
File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");  
factory.setRepository(repository);  
ServletFileUpload upload = new ServletFileUpload(factory); 
List<FileItem> items = upload.parseRequest(request); 
for (FileItem item : items) {}
InputStream input = item.getInputStream();
XSSFWorkbook workBook = new XSSFWorkbook(input);
XSSFSheet sheet = workBook.getSheetAt(0);
XSSFRow row = sheet.getRow(i);
*/
//1.java读取excel单元格中的数字(例如:输入123),读出来之后是double型的(值为123.0),但是想要显示String型(显示123)
XSSFCell cell = row.getCell(j);
cell.setCellType(XSSFCell.CELL_TYPE_STRING); 
//2.java读取excel单元格中的日期
if(DateUtil.isCellDateFormatted(row.getCell(j))) {
    Date date2 = row.getCell(j).getDateCellValue();     
    // Thu Feb 02 00:00:00 CST 2012  之后再根据时间需要处理                    
}

35.多个if要加上else,多个if并列,会都执行一次,会降低效率,加上else可以提高效率。

36.try…catch不要多用,在程序外面一个大的就行了。里层除非是在catch的情况下有跳转、返回等操作,否则不要在内层用很多try…catch

2016.5.18
37.错误描述:(这个问题有待继续想想,先把自己项目的解决方法写上)

//service两个方法都加入了事务,里层事务抛出异常时,最后程序抛出的是外层异常
//框架采用的是spring管理声明式事务
//在Service类中使用子事务(insert)时,当子事务抛出异常后,此异常//处理掉不继续往外抛,spring在提交主事务时会抛出
org.springframework.transaction.UnexpectedRollbackException: **Transaction has been rolled back because it has been marked as rollback**

解决方案:

service方法上的@Transactional事务去掉,只保留insert方法的事务,就可以了。

2016.5.19
昨天被人骗了,心里好难过。自己被骗过好几次了,每次都不长记性。好傻。对社会充满失望,对自己都是迷茫。好想过平平凡凡、安安稳稳的日子。自己是很幼稚,但我好想远离这个可怕的世界。
38.项目编码导致的错误,这个地方也要改成UTF-8
这里写图片描述

2016.5.26
39.file文本域清空

var file = document.getElementById("fileToUpload");
 // for IE, Opera, Safari, Chrome
if (file.outerHTML) {
    file.outerHTML = file.outerHTML;
} else { // FF(包括3.5)
    file.value = "";
}

2016.5.27
40. js中”==”和”===”

//1、对于string,number等基础类型,==和===是有区别的
1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等
2)同类型比较,直接进行“值”比较,两者结果一样
//2、对于Array,Object等高级类型,==和===是没有区别的
进行“指针地址”比较
//3、基础类型与高级类型,==和===是有区别的
1)对于==,将高级转化为基础类型,进行“值”比较
2)因为类型不同,===结果为false

2016.5.31
天天生气,天天生气。不能保持一颗平和的心。
41.遍历ArrayList的4种方法

List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
//方法1
Iterator it1 = list.iterator();
while(it1.hasNext()){
    System.out.println(it1.next());
}
//方法2  怪异!
for(Iterator it2 = list.iterator();it2.hasNext();){
    System.out.println(it2.next());
}
//方法3
for(String tmp:list){
    System.out.println(tmp);
}
//方法4
for(int i = 0;i < list.size(); i ++){
    System.out.println(list.get(i));
}

2016.6.7
马上要七一建党节了,中心要排练一个朗诵节目。占去了很多时间,最近工作还很忙,各种时间紧。后天就是端午假期了,很兴奋,很激动。工作再忙,也要抽时间回家看看。

42.需求:需要查询PARENTID =0,并且CATEGORY不等于1并且不等于3的值。但是有些CATEGORY的值是空,如果不用NVL函数,则这些CATEGORY为空的数据就查询不出来。
解决:

//用于oracle sql语句。oracle中没有isnull,可以用NVL函数来代替
select t.* from BMS_QUALIFICATION_3 t where t.PARENTID = 0 and  NVL(t.CATEGORY,0)<>1 and NVL(t.CATEGORY,0)<>3 

2016.6.21
好久没写日志了啊。
前段时间一直忙着排练商务部七一建党节的演出。耽误了不少时间和工作。这周终于恢复正轨了。
昨天晚上第一次从公司骑自行车回家,50里路,一个半小时到家。还淋了多半路雨。锻炼身体,长期坚持吧。

2016.6.30
我们开发组就3个人,昨天走了一个,来了一个。
哎。
43.今天遇到一个问题。以前做的都是错的,要翻过来重新改。哎,思路不对,就做项目,真悲剧。
问题:产品新增页面在保存的时候,需要同时上传附件。
思路:
1.保存产品基本信息—-新增操作
2.更新页面状态为update
3.上传附件,成功后,更新产品表信息—-上传后,更新操作

2016.7.22
44.判断oracle数据库中是否存在某个表

//返回1:存在    返回0:不存在    
//bms_article_1:数据库表名
 SELECT count(*) FROM ALL_TABLES WHERE TABLE_NAME = UPPER('bms_article_1')

2016.7.26
45.EXCEL中换行

ALT+enter

46.判断JSONObject是否为null

JSONObject obj = new JSONObject();
if(!obj.isNullObject()){}

2016-8-4
47.需求:数据库表2个字段,根据一个字段分成2组,求每组的最大值。
后台用的是ibatis.

后台配置文件:
//注意返回的resultClass="java.util.HashMap" 
<select id="getBriefingAttributeByMapTransform" resultClass="java.util.HashMap" parameterClass="java.util.HashMap">
    SELECT  max (CASE WHEN attributeid = #totalCountAttribute# THEN attributevalue*1 ELSE NULL END) maxTotalCount, max (CASE WHEN attributeid = #currentCountAttribute# THEN attributevalue*1 ELSE NULL END) maxCurrentCount FROM BMS_BRIEFING_ATTR_$TABLESITE$ 
    </select>

2016-8-9
48.POI导出excel时,设置导出的excel单元格为日期格式,方便把导出的excel再次导入到数据库

//日期格式       
XSSFCellStyle cellStyle = workBook.createCellStyle();
XSSFDataFormat format = workBook.createDataFormat();
cellStyle.setDataFormat(format.getFormat("yyyy/MM/dd"));
cell.setCellStyle(cellStyle);  
cell.setCellValue(contractExt.getBegindate()); 

49.获取页面iframe里的元素

//获取iframe里面id=editor_id的textarea内容
var obj = window.frames["editIframe"];
var value = obj.document.getElementById("editor_id").value;

2016-8-30
哎,好久没写博客了,最近工作特别忙,盐行业项目,其实这不是理由。。。
50.oracle10g导出的dmp文件,导入到oracle11g数据库,
导入之前,要先创建好表空间
这里写图片描述

51.eclipse里面的java项目,导入到myeclipse10中时,报错,可能原因:
少了一些jar包。可以在myeclipse10中新建一个java项目,看看跟新导入的项目有什么区别,如:我出的错误是,少了Java EE 6 Libraries,需要引入这个包。
这里写图片描述

2016-9-2
52.返回n天前日期

//返回:2016-08-03
public static void main(String[] args){
    String timeStr = getDateStr("yyyy-MM-dd",30);
    System.out.println(timeStr);
}
/**
 * 返回n天前日期
 * @param format 返回日期格式
 * @param day    天数
 * @lds
 */
public static String getDateStr(String format,int day){
    SimpleDateFormat sdf = new SimpleDateFormat(format);
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.DATE, cal.getTime().getDate()-day);
    return sdf.format(cal.getTime());
}

2016-9-19
今天是我和妈妈的生日,昨天晚上用公司给的生日蛋糕券,买了一个好利来的蛋糕回家。今天晚上还要加班。很悲剧,我已经攒了十几天的假期了,没有时间调休。
上个月加班16次晚上,2个周六一天。打车票1022大洋。要是直接给钱多好,我就骑自行车回家。

2016-9-21
53.继承、多态:

继承是子类使用父类的方法,而多态则是父类使用子类的方法。
一般,我们使用多态是为了避免在父类里大量重载引起代码臃肿且难于维护。

内部类:

放在一个类的内部的类我们就叫内部类。
1.内部类可以很好的实现隐藏
2.内部类拥有外围类的所有元素的访问权限
3.可是实现多重继承
4.可以避免修改接口而实现同一个类中两种同名方法的调用。

54.抽象类和接口的区别

(1)接口可以被多重implements,抽象类只能被单一extends
(2)接口只有定义,抽象类可以有定义和实现
(3)接口的字段定义默认为:public static final, 抽象类字段默认是"friendly"(本包可见)
(4)当功能需要累积时用抽象类,不需要累积时用接口。
(5)继承是一个 "是不是"的关系,而 接口 实现则是 "有没有"的关系。如果一个类继承了某个抽象类,则子类必定是抽象类的种类,而接口实现则是有没有、具备不具备的关系,比如鸟是否能飞(或者是否具备飞行这个特点),能飞行则可以实现这个接口,不能飞行就不实现这个接口。

2016-9-22
55.取得从1970年到现在的毫秒数

Java.util.Date dat=new Date();
long now=dat.getTime();

56.编码转换,转换为utf-8格式

String b=new String("中".getBytes("utf-8"));
System.out.println(b);//中

57.String and StringBuffer的区别

String:长度给定不可变,当多个字符串联合时要先转为StringBuffer,再联合,速度慢。
StringBuffer:长度可变,可以将多个字符串值直接联合,效率高

58.ArrayList和LinkedList的大致区别:

1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 
2.对于随机访问getset,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 

如果只是查找特定位置的元素或只在集合的末端增加、移除元素,那么使用Vector或ArrayList都可以。如果是对其它指定位置的插入、删除操作,最好选择LinkedList

59.java中Collection与Collections的区别

Collection是集合类的一个顶级接口,其直接继承接口有ListSet
而Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作

60.面向对象的特征

1.抽象:
    找共性,将共有的属性、方法放到父类中
2.继承:
    子类继承于父类,具有父类的所有属性与方法,可以重用,也可以覆盖。 
3.封装:
    一个类包括多个属性及方法。
4. 多态性:
    动态:
    静态:

61.运行时异常与一般异常有何异同

运行时异常:java JVM抛出的异常,代码中不用处理。
一般异常:用户抛出的异常,如果用throws 声明了,调用这个方法的代码必须对其处理。

62.swtich

switch(expr1)中,expr1是一个整数表达式。因此传递给 switchcase 语句的参数应该是 intshortchar 或者 bytelong,string 都不能作用于swtich。

63.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

会执行,在return前执行

2016-9-23
64.char型变量中能不能存贮一个中文汉字?为什么?

能够定义成为一个中文的,因为java中以unicode编码,一个char16个字节,所以放一个中文是没问题的

2016-9-26
65.java异常处理机制
在 Java 应用程序中,异常处理机制为:抛出异常,捕捉异常。

//一些注意:
1.使用try...catch捕获异常
2.一般情况下,不要再finally块中使用renturn或throw等导致方法终止的语句,因为一旦使用,将会导致try块、catch块中的returnthrow语句失效。
3.异常和错误的区别:异常能被程序本身可以处理,错误是无法处理。
4.一旦某个catch捕获到匹配的异常类型,将进入异常处理代码。一经处理结束,就意味着整个try-catch语句结束。其他的catch子句不再有匹配和捕获异常类型的机会。
5.当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。在以下4种特殊情况下,finally块不会被执行:
1)在finally语句块中发生了异常。
2)在前面的代码中用了System.exit()退出程序。
3)程序所在的线程死亡。
4)关闭CPU。

66.java中有几种类型的流

首先应该从两个角度来看:
 从输入输出方面来讲:       Java中有输入流和输出流
 从流的编码方式上来讲:    Java中有字节流和字符流
下面主要讲解从编码方式来看java几种常见的类型的流。
  对于字节流而言:主要继承的抽象类为 InputStream和OutputStream
  对于字符流而言:主要继承的抽象类为 InputStreamReader和OutputStreamReder

Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的.

字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!

Java流有着另一个重要的用途,那就是利用对象流对对象进行序列化。
在一个程序运行的时候,其中的变量数据是保存在内存中的,一旦程序结束这些数据将不会被保存,一种解决的办法是将数据写入文件,而Java中提供了一种机制,它可以将程序中的对象写入文件,之后再从文件中把对象读出来重新建立。这就是所谓的对象序列化。Java中引入它主要是为了RMI(Remote Method Invocation)和Java Bean所用,不过在平时应用中,它也是很有用的一种技术

67. java序列化时候序列ID作用

 简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。
     当实现java.io.Serializable接口的实体(类)没有显式地定义一个名为serialVersionUID,类型为long的变量时,Java序列化机制会根据编译的class自动生成一个serialVersionUID作序列化版本比较用,这种情况下,只有同一次编译生成的class才会生成相同的serialVersionUID 。
如果我们不希望通过编译来强制划分软件版本,即实现序列化接口的实体能够兼容先前版本,未作更改的类,就需要显式地定义一个名为serialVersionUID,类型为long的变量,不修改这个变量值的序列化实体都可以相互进行串行化和反串行化。

问题场景如下:
    环境:
    1)分布式即多台resin服务器;
    2)序列化的java类没有显示定义serialVersionUID;
    3)使用了redis作为缓存(序列化后的对象存入redis缓存中);

    在使用过程,报序列化时候版本不兼容,即serialVersionUID不同异常。由于不显示定义serialVersionUID,在分布式环境,相同类的class在不同resin在的class的serialVersionUID不同,反序列化就容易报此异常。

    所以,在使用序列化过程中,最好显示定义序列号。

68.记录几个面试题,答案以后去网上找找

lock与synchronized区别
缓存实现原理,弱引用
如何实现序列化过程加密
大对象(几M以上)在堆里是怎么存放的
整数数组组合成最大整数算法
2g、3g、wifi下对app的影响
乐观锁和悲观锁区别
spring的event机制
rpc原理
mybatis中join怎么实现
数据库什么时候会死锁,死锁了怎么解决
springmvc加载过程
mybatis动态sql过程
线程池实现原理,java中线程池区别
修改了一个Student.class文件,如何不重启线上服务,而让修改的class生效?
java的class加载过程?
java的内存?String a = "A"; String b = new String("A");  a==b ? a.equals(b) ? 内存中如何存?
sleep与wait的区别?
java中方法循环调用,在栈中如何存储?循环调用会抛什么异常?
hashMap与hashTable区别? hashmap解决冲突的两种方法?
sychronized锁A.CLASS,再锁A的实例a和b,它们之间的关系
memcached与redis区别
rabbitMq、zeroMq、ActiveMQ等区别?
innodb myisam 区别
主键索引与其他字段索引联系与区别
工厂模式
jvm调优的参数
垃圾回收算法,什么时候回收
最大字串
去掉有序数组重复元素最有算法
sql中的常见函数AVG等
rose匹配原理,过程
lock作用

2016-9-27
69.oracle 本地网络服务名配置,点击下一步没反应的解决方法

oracle本地NET服务名配置tnsnames.ora格式的问题
oracle本地NET服务名配置tnsnames.ora文件有严格的格式要求
今天手工修改该配置文件添加了一服务名,用客户端连接时居然报service_name解析错误,于是乎从oracle自带的配置工具配置,居然下一步点了没反应,推测是解析配置文件错误,恢复该配置文件,用oracle自带工具配置成功
事后分析该文件,发现是手工添加时多了一个空格,原来是空格在作怪。​除了空格,比如多了一个标点符号等格式问题,都可能引起这个问题。

70.oracle数据库导出时:EXP-00008:遇到ORACLE错误904问题

本地使用的exp导出工具的版本与数据库服务器端exp版本不一致导致。
在命令操作中发现,本地安装的Oracle 版本是Release 11.2.0.1.0,而数据库服务器端安装的Oracle 是Release 10.2.0.4.0 .

    由于Oracle的imp/exp组件的操作原则--向下兼容,且有一些规则:
    规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器
    规则2:高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件);低版本exp出的dmp文件,高版本可以imp(向下兼容);
    规则3:从Oracle 低版本Export的数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从Oracle 10 到 Oracle 11.对于两个不相邻版本间进行转换,如从Oracle 9 到 Oracle 11,则应先将数据输入到中间版本-Oracle 10,再从中间数据库转入更高版本Oracle 11.

2016-10-13
71.request.getParameterValues与getParameter的区别

//request.getParameterValues(String   name)
是获得如checkbox类(名字相同,但值有多个)的数据。   接收数组变量,如checkobx类型    
//request.getParameter(String   name)
是获得相应名的数据,如果有重复的名,则返回第一个的值. 接收一般变量,如text类型
//例如
<input type="text" name="test" value="1" /> 
<input type="text" name="test" value="2" /> 
<input type="text" name="test" value="3" />
String testList[] = request.getParameterValues("test") ----------------- [1, 2, 3]
String test = request.getParameter("test")------------------ 1

2016-10-19
72.Errors occurred during the build
问题描述:
Eclipse启动项目时,提示Errors occurred during the build。但是项目可以启动不受影响
这里写图片描述
问题解决:
右键项目,将builder中的javascript validator 取消勾选
这里写图片描述

2016-10-25
73.Java.sql.SQLException: 关闭的连接
在获得数据库连接时,若重复使用Connection变量,则除了判断为空外,还要判断是否关闭。否则有可能Connection 变量不为空(null),但出现连接已关闭的问题。
所以要使用conn.isClosed()来判断数据库连接是否已关闭,如关闭则重新建立连接,如没关闭则继续使用;

//应该判断连接是否已关闭  
if(con != null && !con.isClosed())  
    return con; 
/** 
     * 获得数据库连接 
     * @lds
     */  
    public Connection getConnection(){  
        try {  
            //应该判断连接是否已关闭  
            if(con != null && !con.isClosed())  
               return con; 
            String dbDriver = DBDRIVER;  
            String dbUrl = DBURL;  
            String dbUser = DBUSER;  
            String dbPwd = DBPWD;  
            aLogger.info("网页访问量  message=开始尝试连接数据库!");
            Class.forName(dbDriver).newInstance();  // 加载Oracle驱动程序
            con = DriverManager.getConnection(dbUrl, dbUser, dbPwd);  
            aLogger.info("网页访问量  message=连接成功!");
            if(con == null){
                aLogger.info("网页访问量  message=获取数据库连接失败!");
                throw new Exception("获取数据库连接失败!");  
            }
        } catch (Exception e) {  
            aLogger.info(e); 
        }  
        return con;  
    }

2016-10-31
74.查询结果并更新

oracle:

UPDATE b   SET   (ClientName)    =   (SELECT name FROM a WHERE b.id = a.id)
//(例子:现在给的数据,地区是名称,要换成id,因此,写了个查询,然后根据查询结果,进行更新)
UPDATE BMS_AGENT t  SET   (t.areaid)  =  (
       SELECT aa.tareaid FROM (
              select  t2.id tid, a.id tareaid
              from BMS_AGENT t2   join bms_area a
              on t2.business_scope = a.name
               where t2.business_scope is not null  
               order by t2.id asc
       )aa 
WHERE t.id = aa.tid)

mysql:

UPDATE b   SET   ClientName    = a.name    FROM a,b    WHERE a.id = b.id

2016-11-8
今天是谁的生日呢。嘿嘿。农历十月初九
75.ztree自定义设置节点图标
使用iconskin的方法:
生成的css样式,就是在自定义classname后面添加_ico_docu或_ico_open或_ico_close,这三个class分别代表三种状态

//1.zTreeStyle.css添加自定义节点三种状态的样式(templateZone是自定义的classname)
.ztree li span.button.templateZone_ico_docu{
margin-right:2px; background-position:-110px -32px; vertical-align:top; *vertical-align:middle
}
.ztree li span.button.templateZone_ico_open{
margin-right:2px; background-position:-110px -32px; vertical-align:top; *vertical-align:middle
}
.ztree li span.button.templateZone_ico_close{
margin-right:2px; background-position:-110px -32px; vertical-align:top; *vertical-align:middle
}
//2.初始化ztree的js。(把需要自定义设置的节点,通过iconSkin设置,""标识默认,"templateZone"是自己自定义的节点三种状态的图片样式 )
//用于对 Ajax 返回数据进行预处理的函数。(默认为null)
    self.jaxDataFilter = function(treeId, parentNode, ret) {
        if (ret) {
            for(var i =0; i < ret.length; i++) {
                var re = ret[i];
                ret[i].id = re.id;
                ret[i].name = re.name,
                ret[i].parentid = re.parentid;
                var isfolder = re.isfolder*1;
                ret[i].isfolder = isfolder;
                var hasleaf = re.hasleaf*1;
                if(isfolder == 1){
                    ret[i].isParent = true; 
                    ret[i].iconSkin = "";
                }else if(hasleaf == 1){
                    ret[i].isParent = true; 
                    ret[i].iconSkin = "templateZone";
                }else{
                    ret[i].isParent = false;
                }
            }
        }
        return ret;
    };

2016-11-9
76.web项目,国际化语言设置。
前台jsp文件和后台java文件,都要判断并设置客户端浏览器语言。

//jsp页面
<%
   java.util.Locale locale = request.getLocale();
    String language = locale.getLanguage();
    //默认语言:英语
    Locale aNewLocale = new Locale("en","us");
    //判断浏览器语言,如果是中文,就设置显示语言为:中文
    if(language.equalsIgnoreCase("zh")){
        aNewLocale = new Locale("zh","cn");
    }
    session.setAttribute(Globals.LOCALE_KEY, aNewLocale);
%>
//java文件(执行登录系统的方法时,判断并设置浏览器语言)
java.util.Locale locale = request.getLocale();
String language = locale.getLanguage();
Locale aNewLocale = new Locale("en","us");
if(language.equalsIgnoreCase("zh")){
    aNewLocale = new Locale("zh","cn");
}
session.setAttribute(Globals.LOCALE_KEY, aNewLocale);

2016-11-11
这几天忙的要死,也没怎么写博客。
今天双十一啊。最重要的是3周年纪念日,不知不觉,时间过的真快。
哎。不知道自己现在是一种什么情感。

2016-11-21
上周忙的要死,部门经理对项目一再更改需求。我只能忙碌来忙碌去,也木有的空闲写博客。这几天总体而言,还是很高兴的。为什么呢?不说。哈哈。

77.jQuery datatable 的分页样式问题。
样式选择:”sPaginationType” : “bootstrap”,
原始版本只有上一页,下一页,没有首页、尾页及跳转到第几页的功能。
现在增加这几个需求。
原始:
这里写图片描述
修改后:
这里写图片描述

//此处添加...
//此处修改...
//有上面两种注释的地方,就是我在源代码上修改的部分。
$.extend($.fn.dataTableExt.oPagination, {
    "bootstrap": {
        "fnInit": function (oSettings, nPaging, fnDraw) {
            var oLang = oSettings.oLanguage.oPaginate;
            var fnClickHandler = function (e) {
                e.preventDefault();
                if (oSettings.oApi._fnPageChange(oSettings, e.data.action)) {
                    fnDraw(oSettings);
                }
            };

            $(nPaging).addClass('pagination').append(
                '<ul class="pagination">' +
                    '<li class="first disabled"><a href="#">'+oLang.sFirst+'</a></li>'+//此处添加...鲁东顺
                    '<li class="prev disabled"><a href="#">&larr; ' + oLang.sPrevious + '</a></li>' +
                    '<li class="next disabled"><a href="#">' + oLang.sNext + ' &rarr; </a></li>' +
                    '<li class="last disabled"><a href="#">'+oLang.sLast+'</a></li>'+//此处添加...鲁东顺
                    '&nbsp;&nbsp;&nbsp;&nbsp;<input class="redirect4Page" style="margin-top:6px;" id="pagevalue" size="1" value="'+(oSettings.oInstance.fnPagingInfo().iPage+1)+'"type="text"><span><a href="javascript:void(0)" id="redirect4Page" >跳转</a></span>'+
                '</ul>'
            );
            var els = $('a', nPaging);
            $(els[0]).bind( 'click.DT', { action: "first" }, fnClickHandler );//此处添加...鲁东顺
            $(els[1]).bind('click.DT', { action: "previous" }, fnClickHandler);
            $(els[2]).bind('click.DT', { action: "next" }, fnClickHandler);
            $(els[3]).bind( 'click.DT', { action: "last" }, fnClickHandler );//此处添加...鲁东顺

            //此处添加begin...鲁东顺
            //第一种,有跳转按钮,在输入页数后,点击跳转按钮后才会跳转
            //datatables分页跳转
            jQuery(nPaging).find("#redirect4Page").die("click").live("click", function(){
                var ipage = parseInt($(nPaging).find(".redirect4Page").val());
                var oPaging = oSettings.oInstance.fnPagingInfo();
                if(isNaN(ipage) || ipage<1){
                    ipage = 1;
                }else if(ipage>oPaging.iTotalPages){
                    ipage=oPaging.iTotalPages;
                }
                $(nPaging).find(".redirect4Page").val(ipage);
                ipage--;
                oSettings._iDisplayStart = ipage * oPaging.iLength;
                fnDraw( oSettings );
            });
            //第二种,没有跳转按钮,在输入页数后,就直接跳转
            /*
             * //datatables分页跳转
                $(nPaging).find(".redirect").keyup(function(e){
                    var ipage = parseInt($(this).val());
                    var oPaging = oSettings.oInstance.fnPagingInfo();
                    if(isNaN(ipage) || ipage<1){
                        ipage = 1;
                    }else if(ipage>oPaging.iTotalPages){
                        ipage=oPaging.iTotalPages;
                    }
                    $(this).val(ipage);
                    ipage--;
                    oSettings._iDisplayStart = ipage * oPaging.iLength;
                    fnDraw( oSettings );
                });
             */
            //此处添加end...鲁东顺
        },

        "fnUpdate": function (oSettings, fnDraw) {
            var iListLength = 5;
            var oPaging = oSettings.oInstance.fnPagingInfo();
            var an = oSettings.aanFeatures.p;
            var i, j, sClass, iStart, iEnd, iHalf = Math.floor(iListLength / 2);

            if (oPaging.iTotalPages < iListLength) {
                iStart = 1;
                iEnd = oPaging.iTotalPages;
            }
            else if (oPaging.iPage <= iHalf) {
                iStart = 1;
                iEnd = iListLength;
            } else if (oPaging.iPage >= (oPaging.iTotalPages - iHalf)) {
                iStart = oPaging.iTotalPages - iListLength + 1;
                iEnd = oPaging.iTotalPages;
            } else {
                iStart = oPaging.iPage - iHalf + 1;
                iEnd = iStart + iListLength - 1;
            }

            for (i = 0, iLen = an.length; i < iLen; i++) {
                // remove the middle elements
                $('li:gt(1)', an[i]).filter(':not(.next,.last)').remove();//此处修改...鲁东顺 //$('li:gt(0)', an[i]).filter(':not(:last)').remove();

                // add the new list items and their event handlers
                for (j = iStart; j <= iEnd; j++) {
                    sClass = (j == oPaging.iPage + 1) ? 'class="active"' : '';
                    $('<li ' + sClass + '><a href="#">' + j + '</a></li>')
                        .insertBefore($('li.next', an[i])[0])//此处修改...鲁东顺 //.insertBefore($('li:last', an[i])[0])
                        .bind('click', function (e) {
                            e.preventDefault();
                            oSettings._iDisplayStart = (parseInt($('a', this).text(), 10) - 1) * oPaging.iLength;
                            fnDraw(oSettings);
                        });
                }

                //此处修改begin...鲁东顺
                // add / remove disabled classes from the static elements
                if (oPaging.iPage === 0) {
                    $('li.first', an[i]).addClass('disabled');
                    $('li.prev', an[i]).addClass('disabled');
                } else {
                    $('li.first', an[i]).removeClass('disabled');
                    $('li.prev', an[i]).removeClass('disabled');
                }
                if (oPaging.iPage === oPaging.iTotalPages - 1 || oPaging.iTotalPages === 0) {
                    $('li.next', an[i]).addClass('disabled');
                    $('li.last', an[i]).addClass('disabled');
                } else {
                    $('li.next', an[i]).removeClass('disabled');
                    $('li.last', an[i]).removeClass('disabled');
                }
                //此处修改end...鲁东顺
                $(".redirect4Page").val((oPaging.iPage+1));//此处添加...鲁东顺
            }
        }
    }
});

2016-11-22
78.JS、Jquery实现—把后台传过来的时间毫秒数转换成想要的日期格式
后台传过来的数据 creationTime 在后台是Date类型的

(1)毫秒转换成 05-24 月 日格式的

//获得月日得到日期oTime  
function getMoth(str){  
     var oDate = new Date(str),  
     oMonth = oDate.getMonth()+1,  
     oDay = oDate.getDate(),  
     oTime = getzf(oMonth) +'-'+ getzf(oDay);//最后拼接时间  
     return oTime;  
 };  
 console.log(getMoth(1465959000));//使用方法  

(2)毫秒转换成 年月日+时分秒 格式的 1970-01-18 07:12:39
补0操作: 比如2012-2-2 就会变成 2012-02-02
使用方法: getMyDate(data[i].creationTime);

//获得年月日      得到日期oTime  
function getMyDate(str){  
    var oDate = new Date(str),  
    oYear = oDate.getFullYear(),  
    oMonth = oDate.getMonth()+1,  
    oDay = oDate.getDate(),  
    oHour = oDate.getHours(),  
    oMin = oDate.getMinutes(),  
    oSen = oDate.getSeconds(),  
    oTime = oYear +'-'+ getzf(oMonth) +'-'+ getzf(oDay) +' '+ getzf(oHour) +':'+ getzf(oMin) +':'+getzf(oSen);//最后拼接时间  
    return oTime;  
};  
//补0操作  
function getzf(num){  
    if(parseInt(num) < 10){  
        num = '0'+num;  
    }  
    return num;  
} 

(3)毫秒转换成 年月日 时分秒的格式

/*  
  js由毫秒数得到年月日  
  使用: (new Date(data[i].creationTime)).Format("yyyy-MM-dd hh:mm:ss.S")  
  */  
Date.prototype.Format = function (fmt) { //author: meizz  
    var o = {  
        "M+": this.getMonth() + 1, //月份  
        "d+": this.getDate(), //日  
        "h+": this.getHours(), //小时  
        "m+": this.getMinutes(), //分  
        "s+": this.getSeconds(), //秒  
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度  
        "S": this.getMilliseconds() //毫秒  
    };  
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));  
    for (var k in o)  
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));  
    return fmt;  
}; 

2016-11-23
79.double 类型转化为Integer类型

//1.把double先转化成int类型
Double d1 = Double.parseDouble("11");
int b = d1.intValue();
//2.再把int类型转化为Integer类型
Integer count = Integer.valueOf(b);

2016-11-24
80.java校验是否为数字

public static boolean isNum(String str){
    java.util.regex.Pattern pattern=java.util.regex.Pattern.compile("[0-9]*");
    java.util.regex.Matcher match=pattern.matcher(str);
    if(match.matches()==false){
         return false;
    }else{
         return true;
    }
}

2016-12-07
这周已经过去三天了,快烦疯了,什么都没干,就解决了一个jquerytable的刷新后,留在当前页的问题。还有一个列宽有内容列宽不对齐(有滚动条时)的问题,怎么也解决不了,脑袋蒙蒙的,现在快下班了。终于下决心,放弃了,实在受不了这种折磨了。
明天开始继续做我的项目吧。只要是一时半刻解决不了的问题,再也不想办法了。

81.style.display=”“与style.display=”block”的区别

block是强制将页面元素转换成块级元素,可以用来设置块与块之间的格式.空则相反

2016-12-22
82.使用httpclient通过postmethod对象获取返回值,在使用getResonseBodyAsString方法时会出现一个警告
问题描述:

org.apache.commons.httpclient.HttpMethodBase getResponseBody
警告: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended.

解决方法:

//解决前
String returnvalue=postMethod.getResponseBodyAsString();
//解决后
BufferedReader reader = new BufferedReader(new InputStreamReader(postMethod.getResponseBodyAsStream()));  
StringBuffer stringBuffer = new StringBuffer();  
String str = "";  
while((str = reader.readLine())!=null){  
    stringBuffer.append(str);  
}  
String returnvalue = stringBuffer.toString(); 

2016-12-28
83.oracle清空回收站Recycle

//plsql中执行
PURGE recyclebin; 

2017-1-19
新的一年了啊。今天下午公司开年会。很开心。
84.关于项目开发中的时间日期

项目中总会遇到一些日期和时间的格式问题,例如:更新时间,发布日期,要注意细节

这里写图片描述
这里写图片描述

85.

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值