1、document.mailform.submit();名为mailform的表单的提交
2、PropertiesReader.getMessage和Properties文件操作类,获取配置文件内容
3、String和Boolean互相转换
String转Boolean:
String a = "true";
Boolean.getBoolean(a);
Boolean转String:
boolean b = true;
String s = String.valueOf(b);
4、url中传参特殊字符#、%、&等需要编码处理,避免传参错误;
常用的前端编码和解码函数: escape()函数,encodeURI() 方法,encodeURIComponent() 方法
encodeURI 和 decodeURI操作完整URI;encodeURIComponent()操作的是URI组件;
5、url通过浏览器传参中文编码格式问题,后端通过java.net.URLDecoder.decode(corpcode, "UTF-8")解码,前端通过java.net.URLDecoder.encode编码;
6、java命令行运行jar:java -jar special.jar
7、远程debug配置:在startup.bat头部添加set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address= 8888
8、多个for循环中,break;跳出所有循环,continue;跳出当前循环。
9、jquery的prev方法:var j=jquery(obj).prev();
<ul>
<li>list item 1</li>
<li>list item 2</li>
<li class="third-item">list item 3</li>
<li>list item 4</li>
<li>list item 5</li>
</ul>
$('li.third-item').prev().css('background-color', 'red');
10、val() 方法返回或设置被选元素的 value 属性。
memnoEle.val("");
返回 value 属性:
$(selector).val()
设置 value 属性:
$(selector).val(value)
11、attr() 方法设置或返回被选元素的属性和值。
当该方法用于返回属性值,则返回第一个匹配元素的值。
当该方法用于设置属性值,则为匹配元素设置一个或多个属性/值对。
返回属性的值:
$(selector).attr(attribute)
设置属性和值:
$(selector).attr(attribute,value)
使用函数设置属性和值:
$(selector).attr(attribute,function(index,currentvalue))
设置多个属性和值:
$(selector).attr({attribute:value, attribute:value,...})
12、response.getWriter()返回的是PrintWriter,这是一个打印输出流。
response.getWriter().print(),不仅可以打印输出文本格式的(包括html标签),还可以将一个对象以默认的编码方式转换为二进制字节输出
response.getWriter().write(),只能打印输出文本格式的(包括html标签),不可以打印对象。
13、window.open()打开新窗口,window.opener调用父窗口方法和属性,window.showModalDialog()打开模式化窗口,禁止操作父窗口
14、css样式常用display
div{display:block} 有换行作用。
案例:图片做背景,隐藏图片上文字http://www.divcss5.com/jiqiao/j55.shtml
div{display:None } 隐藏对象及对象内容。
案例:CSS隐藏HTML内容 http://www.divcss5.com/jiqiao/j55.shtml
div{display:Inline } 在一排显示。
代表案例,对li列表默认一排显示li{display:Inline }
15、jQuery(obj).val();document.getElementById("memno").value;val是jquery的方法,value是原生js的方法
16、<input type="text" οnkeyup="SomeJavaScriptCode" οnblur=""/>onblur失去焦点以后触发的事件,onkeyup事件会在键盘按键被松开时发生。
17、jQuery方法:
$('#erromes').css('visibility', 'visible');
$('#erromes').html("重新输入");
$('#newCorpcardno').focus();
$('#shelterDiv').css('height', $(document).height());
18、jQuery的ajax请求:
jQuery.ajax({
url : "/xxxx.action",
data : {memno : value},
success: function (data) {
var hiddenCorpcardno=jQuery(corpcardnoEle).prev();
hiddenCorpcardno.val(data.toString());
}, error: function() {
alert("错误!");
}
});
19、yaml是类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。可以用多种语言编写,比如java,python,Ruby
20、continue是指结束执行本次循环中其他语句;break指跳出本次循环(for循环);
21、获取Web项目的全路径
String strDirPath = request.getSession().getServletContext().getRealPath("/");
request.getSession().getServletContext().getRealPath(url); 把虚拟路径映射为实际路径
22、jQuery.noConflict();取消jquery框架对$字符变量的使用,优先加载文件中使用的库
23、el表达式:
${name}
EL的内置对象:pageScope,requestScope,sessionScope,applicationScope)<br>
如果不指定范围,它的搜索顺序为:pageScope---applicationScope<br>
--------------举例----------------
${requestScope.hello }
---------------------------------
hellp(EL表达式:指定范围从session中取得):值为“${sessionScope.hello } ”
24、jstl标签库:
(1)设置变量
<c:set value="allUsers" var="users">
${users.name}
</c:set>
(2)赋值输出
<c:out value="123"></c:out>
(3)when条件判断
<c:when test="${name1 gt name2}">
</c:when>
(4)if条件判断
<c:if test="${v1 lt v2 }">
v1 小于v2 <br>
</c:if>
(5)循环遍历
<c:forEach items="${users}" var="user">
<tr>
<td>${user.name }</td>
<td>${user.age }</td>
<td>${user.group.name }</td>
</tr>
</c:forEach>
25、lambda表达式:
(变量)->表达式
()->{;return...}
26、多线程执行任务:
execute和submit
四种线程池:
Executors.newCacheThreadPool():可缓存线程池,先查看池中有没有以前建立的线程,如果有,就直接使用。如果没有,就建一个新的线程加入池中,缓存型池子通常用于执行一些生存期很短的异步型任务
Executors.newFixedThreadPool(int n):创建一个可重用固定个数的线程池,以共享的无界队列方式来运行这些线程。
Executors.newScheduledThreadPool(int n):创建一个定长线程池,支持定时及周期性任务执行
Executors.newSingleThreadExecutor():创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
缓冲队列BlockingQueue和自定义线程池ThreadPoolExecutor
27、创建线程:
继承thread类或实现Runnable接口
28、JSON.parseObject(planJson, new TypeReference<Plan>(){})是把字符串planjson转化为相应的JSONObject对象,“键值对”形式,然后通过new TypeReference<Plan>(){ }匿名内部类来吧planjson的JSONObject转化为Plan对象,
29、
(1)HTTP 接口(RESTful)
基于HTTP协议开发的接口现在应用是最为广泛的,这类API使用起来简单明了,因为它是轻量级的、跨平台、跨语言的,但凡是第三方提供的API都会有HTTP版本的接口。
RESTful API也是基于HTTP协议的,只不过RESTful它并不是一种规范,它是一种设计准则,用不同的HTTP动词(GET、POST、DELETE、PUT等)来表达不同的请求。
(2)RPC 接口
RPC技术是指远程过程调用,它本质上是一种Client/Server模式,可以像调用本地方法一样去调用远程服务器上的方法,它支持多种协议(如:HTTP、TCP、UDP、自定协议)和多种数据传输方式(如:Json、XML、Binary、Protobuf等)。
(3)Web Service 接口
Web Service其实是一种概念,我们可以将以WEB形式提供的服务称为Web Service,所以像RESTful、XML-RPC、SOAP等都可以当成是Web Service的一种实现方式。
不过Web Service接口和HTTP接口存在一些细小区别就是,Web Service接口支持更复杂的对象,而HTTP接口更多的就是传输字符串或者JSON文本。
30、webservice
(1)@WebService:标记发布的类
@WebService(name="MobtService", targetNamespace = Const.WS_TNS)
(2)@WebMethod:标记发布的方法
@WebMethod(operationName = "forget")
(3)@WebParam:标记参数名
forget(@WebParam(name = "id") String id)
(4)@JsonIgnoreProperties
此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。
写法将此标签加在model 类的类名上 ,可以多个属性也可以单个属性
//生成json时将name和age属性过滤
@JsonIgnoreProperties({"name"},{"age"})
(5)@JsonIgnore
此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。
生成json 时不生成age 属性
(6)@JsonFormat
此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = “yyyy-MM-dd HH-mm-ss”)
(7)@JsonSerialize
此注解用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点。
(8)@JsonDeserialize
此注解用于属性或者setter方法上,用于在反序列化时可以嵌入我们自定义的代码,类似于上面的@JsonSerialize
(9)@Transient
ORM框架将忽略该属性;
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则ORM框架默认其注解为@Basic;
//表示该字段在数据库表中没有
31、HTTP协议响应:
常见状态代码、状态描述、说明:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
32、URL
以下面的URL为例:
http://blog.sina.com.cn/s/blog_537ad6610102xtb1.html?tj=hist
(1)协议部分,代表页面使用的是http协议,在Internet中可以使用多种协议,如HTTP,FTP等等。在"HTTP"后面的“//”为分隔符;
(2)域名部分,blog.sina.com.cn,也可以使用IP地址作为域名使用如:192.168.55.14:8080,其中8080为端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口80/tcp;
(3)虚拟目录部分,从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/s/”
(4)文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“blog_537ad6610102xtb1.html”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名
(5)锚部分:从“#”开始到最后,都是锚部分。锚部分也不是一个URL必须的部分(可以理解为定位)
(6)参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“7.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。