spring mvc requestmapping 默认映射条件复合原则
url 部分,patternsCondition 拼接
method 部分 methodsCondition 复合,即不同则相加
params 参数部分 paramsCondition 复合header 头部 headersCondition 复合
consume consumesCondition 替换
producesCondition 替换
url 部分,patternsCondition 拼接
method 部分 methodsCondition 复合,即不同则相加
params 参数部分 paramsCondition 复合起因: spring mvc 开发。做好action 后访问发现 jsp 页面不编译而是直接返回jsp源代码到浏览器。
开始以为是jar 包问题,但原来项目也是这些包就没有问题。隐约记得遇到过,但想不起来,还好在网上找到了。决定还是记下来,记性真的越来越差了。
其实还是因为对servlet-mapping 规则不熟。
其规则就是除后缀最长匹配优先。 * 要优先 *.+后缀,即如有:
/* servlet1
*.jsp servlet2
那么
/abc.jsp /a/bc.jsp 匹配的是serv...
项目maven 打war 包好放到tomcat 下,报
org.apache.tomcat.util.bcel.classfile.ClassFormatException: null is not a Java .class file 异常
因为在eclipse 直接发布是没有问题的,怀疑maven compile 问题。 但试了好几个版本compile 都一样结果。仔细看pom.xml 发现配了 war 插件,且多此一举将WEB-INF 指定为resource 目录,更要命的指定了filter 为false。 删掉后果然正常了。
起始官方文档特别说...
maven web 项目导入eclipse 发布时不自动拷贝依赖包到lweb-inf/ib问题 。
解决方案是:运行转eclipse插件式增加参数, mvn eclipse:eclipse -Dwtpversion=2.0
In Eclipse 3.5 or early version, in order to deployed the Maven dependencies to the correct “/WEB-INF/lib ” folder, you have to con...
环境:Mysql 5.6
表:35个字段
当在字段建立索引后,使用 like **% 时,第一次查询不会使用索引,之后才会使用索引。
对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。下面用几个例子对比查询条件的不同对性能影响.
create table test(
a int,
b int,
c int,...
Object 中equals的约定指出 equals 必须实现非空对象的等值关系:
◆自反性:对于如何非空值 x,表达式 x.equals(x) 应返回true。
◆对称性:对于任何非空值:x 和 y,x.equals(y) 应返回true,当且仅当 y.equals(x) 返回 true。
◆传递性:对于任何非空值 x、y、z,如果 x.equals(y)返回 true 并且 y.equals(z) 返回 true,那么x.equals(z) 应返回 true。
◆一致性:对于任何非空值:x 和 y,如果对象的equals比较中所用信息未被修改,多次调用 x.eq...
项目使用struts2,想添加一个提供restful 服务的模块,自然想到用restful 插件实现。关于struts2 + restful 的无配置整合,下面这篇文章描述的很详细:
http://www.ibm.com/developerworks/cn/java/j-lo-struts2rest/
项目未使用零配置插件,且restful 要做其中一个模块,以便使用项目的服务层,减少开发时间。所以上面文章的配置方式需要做些调整。
1. 改进struts配置。
<!--url 后缀设...
随着Java 版本增多,类似问题出现概率也随之增大。 原因很简单就是导入的jar 版本与运行环境所需的版本不一致。
常见的有:
1 、使用java 7 编译的web 项目发布到tomcat 6, 或使用java 7 以下版本的web 容器。
这类解决方式很简单,就是设置下编译器的jdk 版本,编译后重新发布就可以。
比如,在Eclipse中,“project => Proerties => Java Compiler”,设置”Compiler compliance level”为执行环境的Java版本...