分类:
Java
开发运维环境
标签:
error-page
location
404
1、背景
web.xml配置了error-page,部署在tomcat时启动没有报错,部署在weblogic时启动报错,错误类似如下:
2015-4-17 下午05时22分10秒 GMT+08:00> <Error> <J2EE> <BEA-160197> <Unable to load descriptor /opt/weblogic/software3.5/casp/WEB-INF/web.xml of module casp. The error is weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND
problem: cvc-datatype-valid.1.1: string value 'auth/problem.jsp' does not match pattern for war-pathType in namesp
......
分类:
Java
开发运维环境
标签:
跨域
forward
nginx
sendRedirect
1、背景:
昨天有同学碰到这么一个问题,有服务器A部署了系统A,有服务器B部署了系统B,A系统使用IFrame嵌入了B系统相关功能。因为网络权限控制得比较严格,用户暂时只有访问服务器A的权限,与服务器B的网络是不通的,所以用户访问系统A的时候,嵌入系统B的功能页面将是空白。后咨询得知,网络不通的情况只是暂时的,但还是想先通过其他手段能先进行常规的开发和测试。
2、分析:
首先,Iframe本身跨域是没有问题的,只要客户浏览器能正常访问B服务器即可。如果客户跟B服务器网络不通,那Iframe直接嵌入肯定是行不通的。
其次,如果使用转发跳转,在java里面有sendRedirect和forward两种,其中sendRedirect是浏览器转发,所以其实还是浏览器访问目标地址,而forward则是服务器转发,浏览器并不需要具有目标地址的访问权限,但forward不能跨域。
反向代理是唯一可
......
分类:
Java
标签:
java反射
getMethod
searchMethods
向上就近匹配
重载
java里面有个方法重载机制,重载的原则是向上就近匹配原则,而反过来向下匹配是不行的,我们只能强制转换。
本文稍微分析了一下源码,解释java反射获取方法是如何运作的。
反射获取方法参数必须完全匹配的,如果我们需要它执行向上就近匹配原则该怎么做,在使用java反射机制时需要注意什么。
分类:
Java
数据库
案例
标签:
数据同步
annotation
多数据源
多事务
动态切换
AOP
反射
模型转换
AbstractRoutingDataSource
PlatformTransactionManager
本文主要可以解决以下几个问题:
Spring如何配置多数据源、多事务,以及如何动态切换。
Spring AOP机制的运用,以及对同一个切面(Joint Point)多个处理方法(Advice)执行顺序的设置,即AOP的Order的设定。
自定义注解Annotation的实现以及使用。
使用Java反射机制配合Annotation实现异构模型之间的自动转换。
分类:
Java
WEB前端
JS
标签:
CKEditor
syntaxhighlighter
转义
正则表达式
本文主要描述syntaxhighlighter在结合ckeditor使用时代码块转义方面的问题。
在进行正则表达式选取代码转义时,本文提供了后台java方法以及前台js方法,借此正好可以对比正则表达式中java与js的不同。
分类:
Java
案例
标签:
网站配置
annotation
1、网站配置:
一个网站都有很多配置选项,如笔者的博客里面就有基本配置、阅读配置、评论配置等:
有了这些配置管理功能,我们在开发时就不需要硬编码,可以实现在线修改配置选项,不需要重启服务。这是一个网站很常见的做法。
2、简单实现:
一般来说,实现这个配置管理很简单,建立一个配置实体类,映射数据库中的一个表,无非就是对这个实体实现增删改查。后期如果要修改,比如增加了一个配置选项,那就修改实体类,增加属性,增加数据库字段,修改页面,可能要修改对应的合法性验证。虽然修改的地方较多,但也没那么麻烦,都是简单的体力劳动,也没什么费劲的。
3、多个配置怎么办:
如果系统里面就一两个这样的配置,采用上面的方法很快就完成了,但如果系统中有很多这样的配置,那工作量就有点大了。这时我们就会偷下懒了,就要想到继承了,看看配置是不是基本都是相似的。而且,难道我们给每一个配置建立一个对应的映射表,每个表里n多字段只有一条数据,这样好像有点浪费。
分类:
Java
开发运维环境
标签:
spring
web.xml
applicationContext.xml
DES
加密解密
PropertyPlaceholderConfigurer
一个常见的java web工程中有许多配置文件,基本为两种类型文件,xml和properties,具体的有web.xml,applicationContext.xml,jdbc.properties,log4j.properties等。
假如,你的整个工程被某些人拿到了,会发生什么事。jdbc里面明文填写了数据库连接信息,数据库地址暴露了,用户名密码暴露了,当然,一般数据库都有防火墙等安全方面的限制,光有这些可能还不足以攻破你的数据库,但是泄露这些总是不好的,总是危险的。所以如果配置文件中包含敏感信息必须加密。
那如何加密这些配置文件呢:
分类:
WEB前端
JS
标签:
高度
在前台碰到一个问题,需要获得整个页面有多高,即document的高度,JQuery中提供了$(document).height()方法来获得document的高度,但在测试兼容性时,发现Chrome浏览器不兼容,获得的高度为当前浏览器可见的文档高度,并不是我想要的,然后网上查资料,找到下面信息:
网页可见区域宽:document.body.clientWidth
网页可见区域高:document.body.clientHeight
网页可见区域宽:document.body.offsetWidth (包括边线的宽)
网页可见区域高:document.body.offsetHeight (包括边线的宽)
网页正文全文宽:document.body.scrollWidth
网页正文全文高:document.body.scrollHeight
网页被卷去的高:document.body.scrollTop
网页被卷去的左:document.b
......
分类:
WEB前端
CSS
标签:
样式优先级
样式冲突
CSS控制页面样式有四种方法:
1、行内方式
行内方式是4种样式中最直接最简单的一种,直接对HTML标签适用style=””,例如:
<p style=”color:#F00; background:#CCC; font-size:12px;”></p>
虽然这种方法比较直接,在制作页面的时候需要为很多的标签设置style属性,所以会导致HTML页面不够纯净,文件体积过大,不利于搜索蜘蛛爬行,从而导致后期维护成本高。
2、内嵌方式
内嵌方式就是将CSS代码写在<head></head>之间,并且用<style></style>进行声明,例如:
<style type=”text/css”>
<!–
#div1{width:64px; height:64px; float:l
......
分类:
Java
标签:
hql
CURRENT_DATE
YEAR
1、问题背景:
有一个需求,统计网址访问量,需要分别统计昨天以及当月网址的访问数量。网址每次访问记录都已保存下来,访问时间使用日期时间类型,数据库是用的mysql,对应的字段类型是timestamp。其实这是一个很简单的sql,指定时间范围count一下就行了,本来系统框架使用的hibernate,也支持jdbc,但是考虑到还是保留数据库可移植性,还是使用hql来进行查询。
2、解决方案:
2.1、方案1:
以统计昨天的访问量为例,给定两个时间类型的参数,分别对应昨天零点以及今天零点的时间,采用between进行查询。(传参时,参数类型好像是用使用java.sql.Date,笔者未试验)
2.2、方案2:
网上搜索hibernate支持的函数,找到一些处理时间类型的函数,笔者就是采用该方案实现,看下面代码:
public int getLastDayVisitCount() {
......