查看端口命令:
netstat -anp | grep 8080
杀进程,比如java:
killall -9 java
导出数据库的命令:
mysqldump -uroot --all-databases -p > d:/all.sql.0315
mysqldump db_name --default-character-set=utf8 -p > db_name.sql
修改字段类型:
alter table table_name modify title varchar(200);
网上转载:
昨天遇到这个问题,No result defined for action XXXX and result input。一直以为是不是缓存的问题,试了半天,未果,郁闷至极。后来在struts.xml里边加了<result name="input">/userEdit.jsp</result>,表面看起来好像是没问题了,但实际上,submit以后根本没有进入到action的saveUser这个method/action。郁闷了半天。。。。
昨晚回去想了下,因为之前是没问题的,于是仔细回想昨天jsp页面修改的地方,锁定了几个新加的字段。今天一试,果不其然。jsp页面的字段类型跟UserAction里边的字段类型不一样,比如<s:select list=”departmentList“ name="department" />,departmentList是一个string[]的list,那么department就应该是private String[] department;。。。。
唉,郁闷呀,这种问题有点隐晦哦。解决方法就是在userEdit.jsp页面上加上<s:fielderror />,然后就能在input指向的页面显示字段的错误信息,这样的话就能很快发现是什么问题,改之。
感觉struts2还是挺烦的,很多规则,很多标签,不弄清楚原理、用法,经常会碰到“莫名其妙”的错误。只能一点点积累,慢慢累积经验吧。
在linux上出现No result defined for action and result input 404错误,本地没出现,
最后通过以上方法才知道是data类型的数据转换错误,这个input是拦截器自动返回的,以后注意。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
枚举类型的数据可以直接在value里面写大写的值,到action直接就能转成枚举类型了。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
cursor:鼠标形状参数
CSS鼠标形状参数表:
CSS代码
鼠标形状
style="cursor:hand" 手形
style="cursor:crosshair" 十字形
style="cursor:text"文本形
style="cursor:wait" 沙漏形
style="cursor:move" 十字箭头形
style="cursor:help" 问号形
style="cursor:e-resize"右箭头形
style="cursor:n-resize" 上箭头形
style="cursor:nw-resize" 左上箭头形
style="cursor:w-resize" 左箭头形
style="cursor:s-resize" 下箭头形
style="cursor:se-resize" 右下箭头形
style="cursor:sw-resize" 左下箭头形
还可以自定义鼠标样式,这样鼠标这成你要的图了
style="CURSOR: url(http://image2.sina.com.cn/gm/ol/cross/mouse/arrow40.cur)"
---------------------------------------------------------------------------------------------------------------------------------------------------------------
could not deserialize 不能反序列化
数据库中的数据类型和hibernate中得数据类型 不一致
---------------------------------------------------------------------------------------------------------------------------------------------------------------
关于支付宝返回通知的问题。
如果服务器DNS无法解析支付宝的2个域名:notify.alipay.com 和 www.alipay.com
则会导致 返回的通知 提示验证失败 并且 发货失败
---------------------------------------------------------------------------------------------------------------------------------------------------------------
如何避免不小心关掉web浏览器窗口
<script language="javascript">
g_blnCheckUnload = true;
function RunOnBeforeUnload() {
if (g_blnCheckUnload) {window.event.returnValue = 'You will lose any unsaved content';
}
}
</script>
<body οnbefοreunlοad="RunOnBeforeUnload()">
</body>
---------------------------------------------------------------------------------------------------------------------------------------------------------------
验证密码强度
1、密码由6-32位字母、数字或下划线构成;
2、至少需要一位小写字母;
3、至少需要一位大写字母;
4、至少需要一位数字。
String password = "password";
System.out.println(password != null && password.length() >= 6
&& password.length() <= 32
&& Pattern.compile("[a-z]+").matcher(password).find()
&& Pattern.compile("[A-Z]+").matcher(password).find()
&& Pattern.compile("[\\d]+").matcher(password).find());
---------------------------------------------------------------------------------------------------------------------------------------------------------------
js的三种跳转:
"window.location.href"、"location.href"是本页面跳转
"parent.location.href"外城层跳转
"top.location.href"是最外层的页面跳转
举例说明:
如果A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,如果D中js这样写
"window.location.href"、"location.href":D页面跳转
"parent.location.href":C页面跳转
"top.location.href":A页面跳转
如果D页面中有form的话,
<form>: form提交后D页面跳转
<form target="_blank">: form提交后弹出新页面
<form target="_parent">: form提交后C页面跳转
<form target="_top"> : form提交后A页面跳转
关于页面刷新,D 页面中这样写:
"parent.location.reload();": C页面刷新 (当然,也可以使用子窗口的 opener 对象来获得父窗口的对象:window.opener.document.location.reload(); )
"top.location.reload();": A页面刷新
---------------------------------------------------------------------------------------------------------------------------------------------------------------
ajax返回来的字符串和js中的字符串比较总是不相等,发现是在action中的out.println(result);导致的,加了ln,在result后边就会加上回车,所以会多%0A%0D字符。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
jQuery.get在IE浏览器中会有缓存,解决方法,在url后加上时间戳, 具体如:jQuery.get("<%=request.getContextPath()%>/common/index/loginAction_validateImage?tamp="+new Date().getTime()+"&validataImaPath="+validateImage.src,null, back);
---------------------------------------------------------------------------------------------------------------------------------------------------------------
hql语句查询非空用 is not null
---------------------------------------------------------------------------------------------------------------------------------------------------------------
在Oracle数据库内有一种特殊的表Dual。Dual表是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select中。Dual表由Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2(1)类型,有一行值X。从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
经常写JSP页面的人会对这个属性很熟悉,原理很简单:iterator标签的status属性提供了对于当前行奇偶性等的判断。
JSP中结果集显示如下:
<ww:iterator value="resultList" status="status">
<tr class="<ww:if test="#status.even">row-even</ww:if><ww:else>row-odd</ww:else>">
<td>
<ww:property value=""/>
</td>
</tr>
</ww:iterator>
样式表可以参考:
.row-even{background:#def7c2;} /*偶数行样式*/
.row-odd{background:#c8e7a6;} /*奇数行样式*/
除了使用#status.even判断是否偶数行外,还有其他几个属性可以使用:
1:#status.odd 是否奇数行
2:#status.count 当前行数
3:#status.index 当前行的序号,从0开始『#status.count=#status.index+1』
4:#status.first 是否第一行
5:#status.last 是否最后一行
6:#status.modules(int) 当前行数取模
---------------------------------------------------------------------------------------------------------------------------------------------------------------
在使用Hibernate做为数据持久层的项目中,应用程序中的修改操作有时候会涉及到关联的外键的修改。而我们知道,在Hibernate做为持久层时,外键在持久化类中都是作为一个对象存在的,一般我们会采用使用延迟加载外键对象的策略来节省资源。在修改的时候,如果要修改外键,一般我们会加载该外键对象并重新设置该外键的id最后set到要修改的持久化类中来达到修改的目的。使用这种方法有时候会出现session关闭的错误,而且加载该对象也会占用一些资源。下面给出一种避免出现session关闭错误且不用加载外键对象的更新方法。而这个方法其实很简单,步骤如下:
1.新建一个空白的外键对象(使用new 方法);
2.把外键对象的Id值set为要修改Id;
3.把外键对象set到要修改的持久化对象中;
4.最后使用update方法更新即可。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
使用Compass和Hibernate整合是应注意的地方:当我们用hibernateGpsDevice 监测 Hibernate对数据库的操作时,它只监测Session的save,update,delete方法,而不会
监测update excute方法,也就是说自己手动写的hql语句 hibernateGpsDevice 是监测不到的。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
二级域名如果使用了不合法的字符、符号,会导致Cookie读写失败。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
one-to-one 中的constrained属性会导致继承关系不好用。hibernate读取出来的对象全TM的是子类
<one-to-one name="classroom" class="com.wenice.domain.user.teacher.Classroom" constrained="true"/>
----------------------------------------------------------------------------------------------------------------------------------------------------------------
当使用struts2的json插件时,在没必要转成json对象的get方法要加上@JSON(serialize=false)。
----------------------------------------------------------------------------------------------------------------------------------------------------------------给tomcat增加gzip压缩功能
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" executor="tomcatThreadPool" URIEncoding="utf-8"
compression="on"
compressionMinSize="50" noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" />
----------------------------------------------------------------------------------------------------------------------------------------------------------------
<!--[if gte IE 6]> 这段文字仅显示在 IE6及IE6以上版本。 <![endif]-->
<!--[if gt IE 6]> 这段文字仅显示在 IE6以上版本(不包含IE6)。 <![endif]-->
<!--[if IE 6]> 这段文字仅显示在 IE6。 <![endif]-->
上面的语句都是通过IE专属的条件注释来完成判断,lt=小于,gt=大于,lte=大于及等于,gte=小于及等于,上面的6代表了IE版本号,我们可以取6、7、8、9...分别区别IE版本,再在中间的部分插入专属的Html代码(JS、CSS),以修正不同IE浏览器版本的问题。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
一个关于android的监听器的问题,该监听器以内部类的形式实现,这个监听器放在绑定的组件里面实现才行。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
新建android项目没有R.java文件
将setContentView(R.layout.main); 注掉,这个时候,我发现AndroidManifest.xml和layout/activity.xml都是有错误的,进去之后才发现这些文件里面的内容都有重复,删掉这些内容,然后clean,搞定。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
存储过程在什么情况下使用?
答:存储过程会有较大的性能牺牲,应用服务器可以扩展,而数据库服务器不行,因此最好不用存储过程,只有在数据同步的时候需要用到它。
网上看到的一个答案:
1. 存储过程绝对有其存在价值,比如可以避免与应用之间来回传递参数、数据
2. 不要和数据库打交道的时候,动不动就写存储过程(言必称希腊),很多时候用Where/Having/子查询之类就可以搞定的,非要在存储过程中写fetch+if,看了就恶心
3. 如果项目规模不大,主要看开发团队习惯及喜好
4. 以个人经验,按照现在的趋势,如果项目数据规模比较大,为了性能考虑,今后可能会进行分割,或者,上来就投入了很多服务器,分层就分的很清楚,应用集群、分压、缓存都考虑到了,就应考虑避免存储过程。IMHO,在应用层提高效率,速度的手段相对比较多,也灵活一点。
5. 也是本人经验,招Java/.NET,会基本SQL的程序员相对来说比在此基础上增加存储过程的容易一些,另外,好的数据库结构设计,通常也削减了存储过程存在的必要性。
当然,不管选哪种,永远应当记得:
1. 避免在应用与数据库之间传递大量非必要信息
2. 尽量避免数据库中的计算,比如将经常用的统计的数据单独做一个字段或者设计表,避免不必要的计算量
----------------------------------------------------------------------------------------------------------------------------------------------------------------
在本地环境用maven将项目编译好后的文件打成war包,在linux下解压之后,路径有错误,原本是www.xxx.com.cn/WEB-INF变成了www.xxx.com.cn//WEB-INF,注意多了一个斜杠,导致class文件读取错误。
在下边附上错误信息:
Caused by: java.lang.NoClassDefFoundError: org/operamasks/el/eval/MethodExpressionImpl
at org.operamasks.faces.config.FacesConfig.parseLocaleConfig(FacesConfig.java:546)
at org.operamasks.faces.config.FacesConfig.parseApplication(FacesConfig.java:528)
at org.operamasks.faces.config.FacesConfig.parse(FacesConfig.java:360)
at org.operamasks.faces.config.FacesConfig.loadFromWebInf(FacesConfig.java:284)
at org.operamasks.faces.config.FacesConfig.load(FacesConfig.java:199)
at org.operamasks.faces.config.FacesConfigLoader.loadFacesConfig(FacesConfigLoader.java:69)
... 22 more
我跟进去看了,这段源代码是框架内部的实现,从代码上无法找到其错误,后来在删掉这个www.xxx.com.cn的时候才发现这个问题。