2016年4月到7月笔记整理

 

order by date

2016-04-14

  1. 将Print Spooler系统服务设置为手动启动, 会影响 LPD Service服务。停止。所以一并设置。

    reason:Print Spooler系统服务是打印机相关的服务, 描述为:将文件加载到内存后供稍后打印 LPD Service 描述为:使用TCP/IP和行式打印机远程工具协议。。。。。打印机相关。

  2. 删除window服务 sc delete Apache2.4
  3. 修改tomcat,在目录下显示文件夹内容,有什么文件
     <servlet>
         <servlet-name>default</servlet-name>
         <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
         <init-param>
             <param-name>debug</param-name>
             <param-value>0</param-value>
         </init-param>
         <init-param>
             <param-name>listings</param-name>
             <param-value>true</param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
     </servlet>
    

    将listening的false是型改为true,即可

2016-04-28

break和continue

break的作用是跳出当前循环块(for、while、do while)或程序块(switch)。在循环块中的作用是跳出当前正在循环的循环体。在程序块中的作用是中断和下一个case条件的比较。

continue用于结束循环体中其后语句的执行,并跳回循环程序块的开头执行下一次循环,而不是立刻循环体。

2016-04-30

Timer 类和TimeTask类

notify(), wait();

2016-05-21

如果某个Servlet的映射路径是’/’则该Servlet是缺省Servlet,他处理所有其他Servlet都不处理的请求。 (所有的请求都是访问Servlet的,访问网页资源的时候正是通过缺省Servlet来实现的)

2016-05-26

短信接口 sgip

java读取配置文件

Properties p = new Properties();
try {
	InputStream propfile=Config.class.getClassLoader().getResourceAsStream(configFile);
	p.load(propfile);
} catch (FileNotFoundException e) {
	e.printStackTrace();
} catch (IOException e) {
	e.printStackTrace();
}

2016-05-28

db4o的apide 汉化 查看计算机端口使用情况 netstat -a -n 查看端口被什么应用所使用 netstat -a -n -b 合并写 -anb

<marquee>123</marquee>跑马灯效果  html一共52个标签
<b>加粗文本
<i>倾斜文本
<hr/>横线
xhtml  文档类型声明
<sub>下标字  <sup>上标字
修改快捷键修改快捷键修改快捷键

2016-06-05

添加本地安全策略,阻止别人ping自己 win+R secpol.msc-参考文章地址 主要是修改本地网络层的icmp协议

2016-06-06

  1. 修改console.查看所有console 可以如下设置 preference->run/debug->console 设置limit console output 为false,方便调试时,查看全部console。
  2. cris添加视频质量监控功能.

2016-06-07

字符读取

while (br.ready()) {  
  myreadline = br.readLine();  
  rtString=rtString+myreadline;  
}  

2016-06-08

xml xpath

解析XML的时候,如果将Namespace打开,则在解析生成document的时候,会查询里面是否有Schema,查询xmln。

如果没有还好,如果有的话,但是链接失效了,那么,就会返回很糟糕的数据。

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
// do not setNamespace Aware = true unless the Schema is exist!  
//factory.setNamespaceAware(true);  有则true,反则false;
DocumentBuilder builder = factory.newDocumentBuilder();  
Document doc = builder.parse(is);   

xpth异常

  1. The markup in the document following the root element must be well-formed. XML是树状结构,一定要有个最外层的标签套住

  2. Invalid byte 1 of 1-byte UTF-8 sequence 异常分析和解决 “org.dom4j.DocumentException: Invalid byte 1 of 1-byte UTF-8 sequence.”异常分析和解决: 分析: 该异常由下面的reader.read(file);语句抛出: SAXReader reader = new SAXReader(); Document doc = reader.read(file); 产生这个异常的原因是: 所读的xml文件实际是GBK或者其他编码的,而xml内容中却用<?xml version="1.0" encoding="utf-8"?>指定编码为utf-8,所以就报异常了! 解决方法: 在解析XML前,将XML编码为UTF-8。 如:req.setCharacterEncoding("UTF-8"); 如:new ByteArrayInputStream(submitDataParam.getBytes("UTF-8"))

  3. Invalid byte 2 of 2-byte UTF-8 sequence 异常分析和解决 原因: saxReader.read()读取的流中包含中文报错: 解决:

     SAXReader saxReader = new SAXReader(); 
     byte[] bytes = requestMsg.getBytes(); 
     InputStream in = new ByteArrayInputStream(bytes); 
     InputStreamReader strInStream = new InputStreamReader(in, "GBK"); //即在读流时指定编码
     Document document = saxReader.read(strInStream);
    

map遍历

Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3");
//第一种:普遍使用,二次取值
System.out.println("通过Map.keySet遍历key和value:");
for(String key:map.keySet()){
  System.out.println(key+"-----"+map.get(key));
}
//第二种
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<String,String>> it=map.entrySet().iterator();
while(it.hasNext()){
  Entry<String,String>entry=it.next();
  System.out.println(entry.getKey()+"------"+entry.getValue());
}
//3.第三种:推荐,尤其是容量大时
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
  System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
//4.
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
for (String v : map.values()) {
  System.out.println("value= " + v);
}

String的内存问题

String str=new String(MSG_L_SPLIT);
String strr=str;//此时strr只是str的引用
以后使用引用,
char MSG_C_SPLIT[] = { 0x09 };
String n = String.valueOf(MSG_C_SPLIT);
System.out.println("-"+n+"-");

public static String valueOf(char data[]) {
	return new String(data);
}

取消avalon在页面加载之前显示花括号问题

.ms-controller,.ms-important,[ms-controller],[ms-important]{
	visibility: hidden;
}
//直接使用append(char数组,不需要new Stirng())
char MSG_C_SPLIT=0x09;
System.out.println("12"+MSG_C_SPLIT+"22");
char MSG_L_SPLIT[] = { 0x0d, 0x0a };
StringBuffer sb=new StringBuffer("888");
sb.append(MSG_L_SPLIT);	

2016-06-10

  • innerHTML:元素标签内部的文本,包含HTML标签
  • innerText:……………….不
  • outerHTML:包含元素自身的标签
  • outerText
  • nodeName
  • parentNode
  • childNodes
  • nextSibling:下一个同胞节点
  • previousSibling:上一个同胞节点
  • style:

事件

  • onload:页面或图片加载完毕后
  • onclick:
  • ondblclick:双击
  • onkeydown:键盘某按键按下
  • onkeypress:键盘某按键按下并松开
  • onkeyup: 键盘某按键松开
  • onmousedown: 鼠标按钮按下
  • onmousemove: 鼠标移动
  • onmouseout: 鼠标从某元素移开
  • onmuseover:鼠标移到某元素
  • onmouseup:鼠标松开

2016-06-14

window.location.hrefdocument.location.href可以被赋值,然后跳转到其它页面,document.URL只能读不能写

2016-06-17

js获取当前网站信息

url:location.protocol+"//"+location.host+"/interview/date/select.do"

aop配置.切面

2016-06-24

word-wrap:break-word; table中文字自动换行 style="text-align:center;vertical-align:middle"

2016-06-27

阻抗不匹配 对象转关系的浪费

2016-06-29

alt+shift+j eclipse自动生成注释

SELECT 
  * 
FROM
  hfvast_alarm 
WHERE STR_TO_DATE(alarmTime, '%Y%m%d%H%i%s') > STR_TO_DATE('201606290000', '%Y%m%d%H%i%s') 
  AND STR_TO_DATE(alarmTime, '%Y%m%d%H%i%s') < STR_TO_DATE('201606282359', '%Y%m%d%H%i%s') 
  AND messageType IN ('yes1', 'yes2') 

2016-07-04

如果eclipse项目名出现红色大感叹号–jar包路径错误或missing

cookie的最大限制为4096字节

2016-07-05

$.post('yourAction',{'orgid':id},function(data){
  if(typeof JSON == 'undefined'){
    $('head').append($("<script type='text/javascript' src='page/duty/Scripts/json2.js'>"));
  }
})

2016-07-10

  • style=”position: absolute;” 设置此属性值为 absolute 会将对象拖离出正常的文档流绝对定位而不考虑它周围内容的布局。
  • SOA架构
  • git tag 显示所有标签
  • git checkout tagname 检出对应标签下的内容

2016-07-13

ZXUSS_VS8000CID=省中心USS 西单4K直播转码 频道断流告警 频道入向码流中断 停止转码

2016-07-14

html 页面相关  tab  缩进,, Shift+tab  删除缩进

1. 禁止浏览器或代理服务器 cache 页面,页面后退功能将失效 by zzq
    response.setHeader("Pragma", "no-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);

2. 添加Image对象和HTMLImageElement
    var img1 = new Image(); // HTML5 Constructor
    img1.src = 'loading.gif';
    img1.alt = 'alt';
    document.body.appendChild(img1);

    var img2 = document.createElement('img'); // use DOM HTMLImageElement
    img2.src = '234.png';
    img2.alt = 'alt text';
    //	document.body.appendChild(img2);

    // using first image in the document
    alert(document.images[0].src);
3. 屏蔽F5刷新 其他键类似获取keycode值即可
    with (event){    
        if (keyCode==116){    //116为f5键
            event.keyCode = 0; //取消按键
            event.cancelBubble = true; //取消事件处理
            return false;    
        }    
    }

-Xms512m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

eclipse 查看变量或方法被调用的快捷键如下:

  1. 双击选中变量或者方法
  2. 键盘上Ctrl+shift+G组合键,如下图显示结果:
  • Ctrl+Shift+T:查找类
  • Ctrl+Shift+G;类在哪里被调用
  • 选中类的名称,然后按F4:查看类的继承关系
  • Ctrl+Shift+- 折叠代码

2016-07-15

js中定义全局变量

  1. function最外层使用 var x=4; x即为全局–显式定义
  2. function内部定义 不带var定义 y=5 当该function运行后, y就会变为全局
  3. window.test=6; eg:window.jQuery = window.$ = jQuery;
  • 全局变量的优点:
    1. 可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗。
  • 全局变量的缺点:
    1. 全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存。与局部变量的动态分配、动态释放相比,生存期比较长,因此过多的全局变量会占用较多的内存单元。
    2. 全局变量破坏了函数的封装性能。函数象一个黑匣子,一般是通过函数参数和返回值进行输入输出,函数内部实现相对独立。但函数中如果使用了全局变量,那么函数体内的语句就可以绕过函数参数和返回值进行存取,这种情况破坏了函数的独立性,使函数对全局变量产生依赖。同时,也降低了该函数的可移植性。
    3. 全局变量使函数的代码可读性降低。由于多个函数都可能使用全局变量,函数执行时全局变量的值可能随时发生变化,对于程序的查错和调试都非常不利。 因此,如果不是万不得已,最好不要使用全局变量。
  • git pull origin master 拉取远程更新

2016-07-18

js 闭包理解,类似于java中类的写法 提供了对外的getter setter 方法

java js 中的 按值传递 按引用传递 按共享传递

var obj = {x : 1};
function foo(o) {
    o.x = 3;
}
foo(obj);
console.log(obj.x); // 3, 被修改了!

var obj = {x : 1};
function foo(o) {
    o = 100;
}
foo(obj);
console.log(obj.x); // 仍然是1, obj并未被修改为100.

基本类型是按值传递,而对于对象来说传入的是对象指向的地址,也可以认为其是特殊的按值传递。如果在函数内对对象的属性进行操作,实际就是对其指向对象的属性进行操作。但是,如果对其整体进行操作(比如:o = 100或者o = []),其实际是新定于了对象,实参的引用地址为新的对象的引用地址,与原来的引用没有任何关系,所以不会对原来的对象造成改变。

2016-07-19

java 创建对象的五种方式

  1. new关键字
  2. Class.forName(…).newInstance()
  3. Constructor.newInstance()
  4. clone();需要实体类实现cloneable接口,并重载其方法
  5. 反序列化.

新知识 clone的浅克隆和深克隆

  1. 浅 上面第四种.生成的新对象的属性如果是对象还是会引用同一个对象
    1. 对象及其属性对象都实现如上第四步
    2. 反序列化,记得实现Serializable接口声明

onload 和 DOMContentLoaded事件 一个是页面元素全部加载完成,一个是dom加载完成,其他图片什么不需要记载完成

angular js

  1. 浏览器载入HTML,然后把它解析成DOM。
  2. 浏览器载入angular.js脚本。
  3. AngularJS等到DOMContentLoaded事件触发。
  4. AngularJS寻找ng-app指令,这个指令指示了应用的边界。
  5. 使用ng-app中指定的模块来配置注入器($injector)。
  6. 注入器($injector)是用来创建“编译服务($compile service)”和“根作用域($rootScope)”的。
  7. 编译服务($compile service)是用来编译DOM并把它链接到根作用域($rootScope)的。
  8. ng-init指令将“World”赋给作用域里的name这个变量。
  9. 通过的替换,整个表达式变成了“Hello World”。

涉及到原生js的闭包和原型链 在angular中为作用域

运行$digest循环 通过$parse这个内部服务来进行表达式的运算 调用$parse实现手动解析表达式 $watch监听

2016-07-20

  1. 必填项 验证某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可: <input type="text" required />
avalon配置
禁用自带加载器 
avalon.config({
	loader:false
})
.ms-controller{
	visibility:hidden
}
修改花括号
avalon.config({
	interpolate:["[[","]]"];
})
作用域绑定
ms-controller 会向上一级查找
ms-important   不会.....
ms-skip        不应用任何vm属性
显示隐藏与双向绑定
双向同步/双工绑定
ms-duplex(双工)
ms-visible(显示隐藏)
ms-click
ms-class
ms-attr
ms-href
ms-src
ms-duplex-string="sex"

2016-07-24

Faststone Capture注册码 用户名:c1ikm 注册码:AXMQX-RMMMJ-DBHHF-WIHTV 或 AXOQS-RRMGS-ODAQO-APHUU

2016-07-27

parameter是指函数定义中参数,–形参 argument指的是函数调用时的实际参数。–实参

<form action="comm_addProduct.do?method=saveProduct" method="post" enctype="multipart/form-data">  
  <input name="imgFile" id="imgFile" type="file" />  
</form>  

这里只需注意关键的地方,就是在FORM表单里必须有enctype=”multipart/form-data”属性。

当前台的表单提交到后台后,我们重点来注意后台是如何处理上传过来的文件的。关键代码如下:

/** 
 * 上传图片文件,并保存到指定的路径当中 
 */  
public void addImage(HttpServletRequest request,String path1,String path2) {  
    //转型为MultipartHttpRequest(重点的所在)  
    MultipartHttpServletRequest multipartRequest=  (MultipartHttpServletRequest) request;  
    //获得第1张图片(根据前台的name名称得到上传的文件)   
    MultipartFile imgFile1  =  multipartRequest.getFile  ("imgFile");  
  
    //定义一个数组,用于保存可上传的文件类型  
    List fileTypes = new ArrayList();  
    fileTypes.add("jpg");  
    fileTypes.add("jpeg");  
    fileTypes.add("bmp");  
    fileTypes.add("gif");  
  
    //保存第一张图片  
    if(!(imgFile1.getOriginalFilename() ==null ||   "".equals(imgFile1.getOriginalFilename()))) {  
        /* 下面调用的方法,主要是用来检测上传的文件是否属于允  许上传的类型范围内,及根据传入的路径名 
          * 自动创建文件夹和文件名,返回的File文件我们可以  用来做其它的使用,如得到保存后的文件名路径等 
          * 这里我就先不做多的介绍。 
          */  
        File file1 = this.getFile(imgFile1, fileTypes,  path1,path2);  
  
  }  
}  

其实上面的代码还是比较简单的,重点再于将我们常见的request对象转换为MultipartHttpRequest对象,有了这个对象,我们就可以得到用户上传的文件了,在上面我们还做了一些事,那就是判断用户上传的文件类型是否属于我们所定义的那个一、判断用户上传的文件是否属于我们定义的类型范围之内,第二、将文件保存到指定的路径,这个路径是我们自己创建的。

/** 
 * 通过传入页面读取到的文件,处理后保存到本地磁盘,并返回一个已经创建好的File 
 * @param imgFile 从页面中读取到的文件 
 * @param typeName  商品的分类名称 
 * @param brandName 商品的品牌名称 
 * @param fileTypes 允许的文件扩展名集合 
 * @return 
 */  
private File getFile(MultipartFile imgFile,String typeName,String brandName,List fileTypes) {  
    String fileName = imgFile.getOriginalFilename();  
    //获取上传文件类型的扩展名,先得到.的位置,再截取从.的下一个位    置到文件的最后,最后得到扩展名  
    String ext = fileName.substring(fileName.lastIndexOf(".")    +1,fileName.length());  
    //对扩展名进行小写转换  
    ext = ext.toLowerCase();  
    
    File file = null;  
    //如果    扩展名属于允许上传的类型,则创建文件  
    if(fileTypes.contains(ext)) {                      
        file = this.creatFolder(typeName, brandName, fileName);  
        try {  
            imgFile.transferTo(file);                   //保存上传的文    件  
        } catch (IllegalStateException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
    return file;  
}

2016-07-28

$ netstat -aon|findstr "5037"
  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       9840

  查找端口号是5037被谁占用,结果显示被pid围9840的程序占用.

2016-07-31

  • JMX Java Management Extensions,即Java管理扩展
  • JMS 消息发送与接收
  • RMI java 远程调用
  • 为tomcat开启jmx
  • Sigar jar包
  • Ctrl+Shift+V 打开vscode md的窗口