人生,即使在最困难的时期,也不能放弃学习, 不能与时代脱节 ---- 勉励处于困难时期的自己.
分类: Java预览模式: 普通 | 列表
用 Spring mvc  开发一个小应用, 用传统的方法配置好了所有的东西, 但在运行时发现样式,js并没有找到,页面并不是真正想要的页面,打开生成的 HTML 页面查看代码居然发现在 js, css 的路径中出现了jsessionid. 真是怪事, 但最终还是能解决

查看更多...

Tags: session

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 457

java中常见的几种list 转换成 Array 对象

java中有常见的几种list或者集合 类型: Vector, ArrayList, LinkedList,TreeSet LinkedHashSet. 很有可能为了方便,会将这些对象转换成数组. 下面记录一些常见的用法:

查看更多...

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1692

java.util.Properties 的常见使用方法

Properties 文件通常被用来当做 java 的配置文件使用,通过键值对来操作数据, 在实际的使用过程中,经常会有如下一些用法.
1. 从文件中得到 properties 的各种键值对。
2. 将Properties 对象保存到文件中.
3. 获取Properties 对象某个具体key的值, 如果没有给默认值的情况。
在项目中经常使用的几个处理Properties 的公用类

查看更多...

Tags: properties

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 489

spring3 restful 服务迁移到 spring4需要注意的事项

Spring4 对MVC 应用进行了一些改进, 首先测试了在restful 服务上的改进, 至少目前看来需要注意的有如下两点:
1.  从@ResponseBody 改成 @RestController
2. Synchronous 和 Asynchronous 调用,也就是同步异步调用.

查看更多...

Tags: spring

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1458

Hibernaate 调用存储过程的方法

hibernate 数据库编程中,调用存储过程有可能会碰到。虽然不是很常用,但在有些系统中确实存在,存储过程中有着复杂的逻辑,另外存储过程的效率应该相对比较好,所以如果合理使用存储过程, 存储过程还是很有生命力的, 一般来说有三种方式实现 hibernate 调用存储过程, 其实这三种方式实现hibernate 调用存储过程,并没有什么本质的不同,其实都是原生SQL 方式,只是方式不一样,具体采用那一种方式,与你自己的程序风格和习惯相关, 自己采取适合自己的方式开发.

查看更多...

Tags: Hibernaate 调用存储过程的方法

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 467
用maven 工程搭建项目,在搭建好之后,运行时却抛出了这样的错误:  Error configuring application listener of class org.springframework.web.context.ContextLoaderListener  
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener, 这说明根本没有找到我们在 web.xml 里面配置的 listener, 但maven 的pom.xml  里面已经配置相应的包,而且可以在java 工程的maven dependency jar 包里面找到, 这说明maven是没有问题的,在网上搜索了很多答案,最多的就是类似这个文章: http://www.cnblogs.com/zhouyalei/archive/2011/11/30/2268606.html 基本都是这样去解决,但是貌似对我来说不行,而且比较麻烦,需要修改 .project , .classpath 等文件。其实有更简单的办法

查看更多...

Tags: maven spring

分类:Java | 固定链接 | 评论: 18 | 引用: 0 | 查看次数: 29668

spring mvc jackson 防止XSS 注入方法

spring mvc 做应用时,如果采用接受或者返回 json 格式的数据的时候,有可能会产生 XSS 注入, 对于XSS注入的一个常用方法,就是将接受到的数据进行 escape 处理。如果数量很少的方法,可以自己单独处理,但如果很多地方用到,最好是用公用的方法,一个简单的方法就是 扩展jackson 定制自己的 方法,对所有json 格式数据进行escape 处理.

查看更多...

Tags: spring mvc

分类:Java | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 5085

Hibernate4 No Session found for current thread原因

Hibernate4 与 spring3 集成之后, 如果在取得session 的地方使用了getCurrentSession, 可能会报一个错:“No Session found for current thread”, 这个错误的原因,网上有很多解决办法, 但具体原因的分析,却没有多少, 这里转载一个原理分析

查看更多...

Tags: hibernate

分类:Java | 固定链接 | 评论: 9 | 引用: 0 | 查看次数: 52212
在Hibernate内部使用slf4j 来处理日志,所以在配置Hibernate日志的时候,slf4j 是必不可少的jar包, 严格说了slf4j 只是一个日志接口,可以由很多其它三方的 jar 来实现,比如用log4j实现等, 对于日志的配置应该都知道怎么配了,但是经常在日志中看到类似如下的语句:
insert into stock (STOCK_CODE, STOCK_NAME) values (?, ?) , 里面全部是参数化的“?” 号, 然后这些值并没有打印出来,对于查看日志来说,还是有些不方便,怎么在日志中打印出这些参数值呢,是可以通过log4j 的配置做到的。

查看更多...

Tags: hibernate log4j

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1208
开发应用程序的过程中,经常会对一些比较重要的数据修改都需要写日志。在实际工作的工程中,这些数据都是存在表中的, 一个常见的做法是用触发器,在增删改的时候,用触发器将数据写入到另一张表中去,但个人不推荐这么做,原因如下:
1. 如果有多个表,得写很多触发器。
2. 触发器与数据库特性关联太紧,不同的数据库,虽然思路一样,但语法却不太一样。
对数据库表操作的日志记录,完全可以利用Hibernate的Interceptor特性来实现,也就是拦截器。下面用一个具体的例子来说明如何使用Hibernate的Interceptor。

查看更多...

Tags: hibernate Interceptor

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 6330

Hiberante4 原生SQL查询 例子

用hibernate4, 完全用ORM 做项目,原则上可以,其实有时候没有必要, 我见过有的项目为了取一个表的一条数据,而且只有一个字段的查询,居然也用hibernate 去做,更绝的是,这个查询里面还配置了 one to many 等关联,而且FetchType也不是lazy, 有必要这么做吗?我不是完全否决hibernate ,但用查询的时候,要注意什么时候该用Hibernate orM 去查,什么时候该自己去写 native sql 去查。

查看更多...

Tags: hibernate

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1232

Hibernate 使用 C3P0 连接池

连接池对于提高性能来说是个不错的选择, 特别是对于频繁创建连接关闭连接的程序来说,尤其如此,因为减少了没一次连接都需要创建连接和销毁连接的时间。hibernate 推荐使用 C3P0 连接池.

查看更多...

Tags: hibernate c3p0

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 859

java 自定义注解 (custom annotation)

最近几年写程序,越来越流行注解方式,比如 spring,hibernate 都从原来的xml配置方式转向了注解方式,原因在于写注解很方便,减少了XML 文件的配置,如果全部用XML 配置,一个大型的应用,怎么也得有成百上千的XML文件。那么怎么自定义类似于spring 的注解方式呢。

查看更多...

Tags: annotation

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 647

java 获取HttpRequest Header 的几种方法

在开发应用程序的过程中,如果有多个应用,通常会通过一个portal 门户来集成,这个portal  是所有应用程序的入口,用户一旦在portal 登录之后,进入另外一个系统,就需要类似的单点登录(SSO). 进入各个子系统的时候,就不需要再次登录, 当然类似的功能,你可以通过专业的单点登录软件来实现,也可以自己写数据库token 等方式来实现。其实还有一个比较简单的方法,就是通过 portal 封装已经登录过的用户的消息,写到http header 之中,然后把请求forward 到各个子系统中去,而各子系统从 http header 中获取用户名,作为是否登录过的校验或者合法的校验。总结了几种处理http Header 的方法

查看更多...

Tags: http header

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3865
最近在做一个程序的性能测试分析,UAT 压力测试感觉比较慢,但又没有系统的测试真正的瓶颈在什么地方,客户也不愿意花时间去专业的测试,就用chrome浏览器,看timeline 测试,很笨吧,没办法,客户就这么干,期间也用过jmeter测试,但也只是说结果不理想,也没给出具体的参数。一个真正好的完整的测试,应该包括从发起请求开始,DNS 解析,路由寻址时间,http server 响应时间,应用程序处理时间,包括数据库执行时间,以及IO 分析,当然网络带宽也要分析。由于我们是负责程序部分的,所以程序执行时间部分的操作日志由我们自己来负责分析,用到spring mvc写的程序,所以理所当然的想到用spring inteceptor 来实现,具体看每个controller 的执行时间是多少,这中间包括了数据库部分。

查看更多...

Tags: spring mvc

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3275