新建父子maven项目 |
maven |
|
1. File -> New -> Project -> Empty Project ->
Project name : microservice-andrew
Project location : D:\workspaceMaven
2. File -> New -> Module.. -> Maven
Create from archetype不勾选 -> next ->
Group Id : com.andrew.microservice
Artifact Id : microservice
Version : 1.0-SNAPSHOT
-> next ->
Module name : microservice
Content root : D:\workspaceMaven\microservice
Module file location : D:\workspaceMaven\microservice
-> delete src
3. microservice -> New -> Module -> Maven
Create from archetype勾选 -> org.apache.camel.archetypes.camel-archetypes-spring -> next ->
Add as module to : com.andrew.microservice:microservice:1.0-SNAPSHOT
Parent : com.andrew.microservice:microservice:1.0-SNAPSHOT
GroupId : com.andrew.microservice
ArtifactId : microservice-common
Version : 1.0-SNAPSHOT
-> Next -> Next ->
Module name : microservicecommon
Content root : D:\workspaceMaven\microservice\microservice-common
Module file location : D:\workspaceMaven\microservice\microservice-common
|
java |
|
|
封装
引用new
重载overload
super this
继承
重写override
多态
抽象类abstract
接口interface
static关键字
final关键字
static代码块
单例模式singletion
访问修饰符
instanceof关键字
equals方法
StringPool和String类
StringBuffer
Object类
包装类和原生数据类型
自动装箱拆箱
Array数组
数组的比较类java.util.Arrays类
冒泡排序
二分查找(有顺序)
ArrayList集合
LinkedList集合
栈和队列
Set接口
HashSet类
TreeSet类
Iterator迭代器
Map接口
HashMap类
Map.Entry内部类
Vector类
Properties类
Generics泛型
增强for循环
可变参数
枚举(Enums)
静态导入
反射
策略模式
代理模式
动态代理类
annotation注解
Exception异常
Frame类
AWT事件模型Event
适配器adapter
观察者模式Observer
InnerClass内部类
IO的File类
递归Recursion
InputStream流
OutputStream流
装饰模式Decorator
字符流InputStreamReader和OutputStreamWriter
RandomAccessFile类
字符集编码CharSet
序列化serializable
线程Thread
Synchronized关键字
TCP协议
UDP协议
套接字Socket
|
struts2中的值栈ActionContext |
struts |
|
广义值栈ActionContext
有的ActionInvocation情况
ActionContext ctx = actionInvocation.getInvocationContext();
没有ActionInvocation情况
ActionContext ctx = ActionContext.getContext();
狭义值栈ValueStack中的OgnlValueStack
包含在广义值栈ActionContext中,主要供页面ognl使用
|
struts2中使用timer interceptor拦截器 |
struts |
|
<interceptor-ref name="timer"/>
<interceptor-ref name="defaultStack"/>
执行结果
信息: Executed action [//helloworldAction!execute] took 151 ms.
定义全局timer拦截器
<interceptors>
<interceptor-stack name="myStack">
<interceptor-ref name="timer"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack"/>
|
struts2中interceptor的覆盖关系 |
struts |
|
defaultStack实在struts-default.xml中默认定义的
1.什么都没有,默认defaultStack
2.只有staticParams,覆盖defaultStack
<interceptor-ref name="staticParams"/>
3.既有staticParams,也有defaultStack
<interceptor-ref name="staticParams"/>
<interceptor-ref name="defaultStack"/>
注意:interceptor-ref的name可以是拦截器,也可以是拦截器栈
|
struts2中全局exception的处理 |
struts |
|
<package name="helloworld" extends="struts-default">
<global-results>
<result name="math-exception">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="math-exception" exception="java.lang.ArithmeticException"/>
<exception-mapping result="math-exception" exception="java.lang.Exception"/>
</global-exception-mappings>
<action name="helloworldAction" class="com.andrew.action.HelloWorldAction">
<result>/s2impl/welcome.jsp</result>
</action>
</package>
1.<global-results>必须配置到<global-exception-mappings>之前
2.页面接收异常信息
<s:property value=”exception”/> 仅仅简单打印出exception对象的例外消息
<s:property value=”exceptionStack”/> 可以打印出exception的堆栈信息
|
struts2中include与global-results |
struts |
|
struts.xml
<struts>
<package name="struts-abstract" extends="struts-default">
<global-results>
<result name="login" type=”redirect”>/login.jsp</result>
</global-results>
</package>
<include file="struts-hotel.xml"></include>
</struts>
总的xml配置文件中package使用struts-default
struts-hotel.xml
<struts>
<package name="hotel" namespace="/hotel" extends="struts-abstract">
<action name="bookingAction" class="com.andrew.action.HotelBookingAction">
<result name="success">/hotel/booking.jsp</result>
</action>
</package>
</struts>
子xml配置文件中package使用父文件中的package名称struts-abstract
注意:这个包由继承struts-default变为继承struts-abstract,以便能访问struts-abstract包下名为login的全局Result
|
struts2中<action>通配符的使用 |
struts |
|
<action name="*_*" class="com.andrew.action.{1}Action" method="{2}">
<result name="toWelcome">/s2impl/welcome.jsp</result>
</action>
name属性的值中“*”代表长度不为0的任意字符串,它可以响应的action只需要名称中间有一个下划线即可
如果使用HelloWorld_create.action作为访问的action名称的话,struts.xml中action名称为HelloWorld_create,第一个通配符匹配HelloWorld,第二个通配符匹配create。因此,由com.andrew.action.HelloWorldAction的create方法来响应
|
css对textarea的处理 |
css |
|
// 禁止拉伸textarea
style="resize:none;"
|
jquery对display样式的处理 |
jquery |
|
// 几种方法设置元素display样式可见
$("#areaSelect").css('display','block');
$("#areaSelect")[0].style.display = 'block';
$("#areaSelect").attr('style','display:block;');
$("#areaSelect").prop('style','display:block;');
$("#areaSelect").show();
// 几种方法设置元素display样式不可见
$("#areaSelect").css('display','none');
$("#areaSelect")[0].style.display = 'none';
$("#areaSelect").attr('style','display:none;');
$("#areaSelect").prop('style','display:none;');
$("#areaSelect").hide();
可见 style="display:block;"
不可见 style="display:none;"
|
native2ascii转码中文properties文件 |
tool |
|
切换properties文件的目录
cd D:\AndrewProject\hyyt-da-1.0\hyyt-da-business\src\main\resources
转码命令native2ascii inputFile outputFile
native2ascii validator_zh_CN.properties validator_zh_CN.properties
|
java基本类型 |
java |
|
1) 整型 : 使用int表示。(32位)
2) 字节型 : 使用byte表示。(8位)
表示-128~127之间的256个整数
3) 短整型 : 使用short表示。(16位)
4) 长整型 : 使用long表示。(64位)
5) 单精度浮点型 : 使用float表示。
所谓浮点型,指的就是小数,也叫做实数,比如1.2。
6) 双精度浮点型 : 使用double表示。
双精度浮点型表示的数据范围要比单精度浮点型大。
7) 字符型 : 使用char表示(char是character的缩写)。
所谓字符,就是单个的字符表示,比如字母a,或者中文张,外面用单引号包围上。
比如char a = 'A'; char b = '张';
8) 布尔类型 : 使用boolean表示。
布尔类型只有两种可能值,分别是true与false。
|
idea快捷键 |
idea |
|
idea快捷键
alt + insert 生成get和set方法
ctrl + D 复制一行
ctrl + X 删除一行
shift + F6 重命名
ctrl + alt + L 格式化代码
ctrl + shift + F 查找
|
tomcat热部署 |
java web |
|
apache-tomcat-9.0.0.M13\conf\server.xml
<Context path="/test" docBase="E:\workspaceWEB\test\WebRoot" reloadable="true" />
|
js常用方法 |
js |
|
// js返回上一页
<a href="javascript:history.back(-1);">返回</a>
|
js中null和undefined的区别 |
js |
|
// js中null和undefined的区别
// null 和 undefined 的值相等,但类型不等
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
|
datatable序号 |
datatable |
|
datatable加序号
{
"sClass": "text-center",
"data": "index",
"render": function (data, type, full, meta) {
// datatable 显示行号
return meta.settings._iDisplayStart + meta.row + 1;
},
"bSortable": false
}
|
js中substr()和substring()的区别 |
js |
|
// js中substr()和substring()的区别
<input type="text" id="str" value="0123456789">
// substr从起始索引号提取字符串中指定数目的字符
// 1234
document.getElementById("str").value.substr(1,4);
// 提取字符串中两个指定的索引号之间的字符
// 123
document.getElementById("str").value.substring(1,4);
|
jquery对disabled属性的处理 |
jquery |
|
// 两种方法设置input元素disabled属性
$('#areaSelect').attr("disabled",true);
$('#areaSelect').attr("disabled","disabled");
// 两种方法移除input元素disabled属性
$('#areaSelect').attr("disabled",false);
$('#areaSelect').removeAttr("disabled");
// 移除disabled属性
// 测试无效
$('#areaSelect').attr("disabled","");
|