`
文章列表
   在开发的时候发现Struts2.16 在action内抛出异常的时候,控制台是没有打印信息的,不过在Struts2.0的版本却可以,还不知道为什么要去掉(暂时不去研究),但这样很不方面,特别是写AJax 调用的时候。。于是对源码分析了一下后,发现了问题的所在是ExceptionMappingInterceptor 的默认参数的logEnabled 是false的,而抛出错误的时候根据这个判断决定是否打印。。   protected boolean logEnabled = false; public String intercept(ActionInvocation invo ...
引言                                         HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的 使用与发展,得到不断地完善 ...
  在近期工作中遇到个性能测试的打印的问题,由于log4j中如果在多线程中,打印的无规律性(哪个线程先到就先打印),在多个线程中会出现的问题是,在action-service-dao 层模式中,如果想查看单个线程在action-service-dao 三层之间的消化时间,是很难查到的,因为它们是无规律打印的。为了解决这个问题,可以利用ThreadLocal 这个线程变量类,关于这个类的使用已经很广泛了,在Spring中事务处理,hibernate的session处理等,这个类的功能分析,可查看ThreadLocal源码分析 。其实在struts2中,已经使用了这个功能用于记录action 的各模 ...
   在分析HibernateTemplate前,首先从网上了解下一些关于回调的一些概念。我相信在了解其原理实现的基础上,可以更好的进行开发和扩展,关键得理解其思想。   软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。   同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用。(简单来说就是顺序执行啦。)回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口。(个人觉得有点像模板方法的实现。)   异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动 ...
  简单写个Enum 类型,然后反编译下   /** * * @author zhxing * @since 2010.02.26 */ public enum Test{ //这定义必须放在第一行,否则会报错 Spring("a"),Summer("b",1),Autumn("c"),Winter("d"); //类变量 public static int staticValue=10; //类实例变量 private String s; private i ...
    关于String 类型,在面试题或者实际编程中都会经常遇到,有很多的网友也曾做过大量的分析。在看完深入Java 虚拟机这本书后,对JVM 处理Java 程序的流程有了一个大概的认识,所以总结一下。    下面的分析从我们遇到的一些问题实例进行,我觉得这样是最好理解的。   1、String 类型对象的生成       String s=new String("zhxing"); String s1="zhxing"; Object o=new Object();     下面来对比下这三条代码反编译后生成的字节码:    (1) ...
    之前曾转载过相关ThreadLocal的文章,但一直是处于迷糊状态,最近复习的时候偶然看到博客里的文章,所以对此类做一个深入的分析和总结。 (另外说明下,我这个源码的Java 版本是1.6.0_06)       在Java API 文档里,是这样 ...
   近期有使用到图片的压缩处理,由于在之前用Java 处理时,在低像素的情况下,Java 处理的效果确实很差,然后尝试了用网上推荐的免费开源的第三方软件,利用Java 的jni 调用dll 文件进行处理,效果还可以。在此记录下,方便以后继续积累。   1、纯Java 类处理图片代码 /** * 转换图片大小,不变形 * * @param img * 图片文件 * @param width * 图片宽 * @param height * 图片高 */ public ...
1、在开启JBOSS 等服务器的时候老是发现端口被占用了,可以用netstat -n -a -o 这个命令进行检查到进程的PID,然后在任务栏中查找这个PID 对应的进程,杀掉它就没事了。。
   在看‘深入JAVA虚拟机’垃圾收集这一章的时候了解有关对象的引用级别,在网上找了些资料总结备忘。(该文章大多内容为多个网站的内容合并)   1、概述    在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么 ...
1)分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(箱排序、基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序。
   最近一段时间,处于失业状态,正好有机会对未理解的知识进行整理,面试中这部分的知识很大可能也是会遇到的。下面的内容一部分是从网上筛选的,经过自己的梳理后总结的。   Java IO 用的是‘decorator模式’来构建的。要容易理解Java IO 应该从对称性和两个模式(装饰器模式和适配器模式)这两方面进行分析。   装饰器模式:     在由InputStream、OutputStream、Reader和Writer 代表的等级结构内部,有一些流处理器可以对另外一些流处理器起到装饰作用,形成新的、具有改善了的功能的流处理器。   下面是Decorator模式的结构图: ...
 2.3、dispatcher.serviceAction(request, response, servletContext, mapping);方法分析 public void serviceAction(HttpServletRequest request, HttpServletResponse response, ServletContext context, ActionMapping mapping) throws ServletException { //包装了Htt ...
2、过滤器中的doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 方法       2.1、request = prepareDispatcherAndWrapRequest(request, response);分析      我们知道JSTL默认是从page,request,session,application这四个Scope逐次查找相应的EL表达 ...
struts2 源码版本2.0.11.1 本文是综合网上部分人的分析成果,然后再自己结合源码进行的,分析中如有错误,请指正。    从struts2 中的web.xml的启动配置可以看出,首先分析的是FilterDispatcher 这个过滤器类。   1、过滤器的初始化方法 void init(FilterConfig filterConfig) //初始化方法 public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; ...
Global site tag (gtag.js) - Google Analytics