你是我的天晴

it工作室

通过struts2实现Http只允许POST请求

通过struts2实现Http只允许POST请求,有需要的朋友可以参考下。 前两天工作中需要做安全限制工作,今天把代码整理一下。 整体的一个思路就是使用Struts2过滤器拦截请求,反射得到对应请求反正只允许POST请求。 先看一下主要拦截器代码: import com.opensymphony...

2015-11-27 17:34:05

阅读数:355

评论数:0

include与jsp:include与s:action与s:include与iframe用法汇总

1. 2. 3. 4. 5. jsp开发时,这五种常用的页面引入标签,到底有什么区别,各自适应场合是什么,相信很多人都不陌生,但又感觉莫林两可的,本文将做一个全面的汇总。 注:本文虽然各方面都涉及到了,但是很多细节还没列出来,后续在开发中还会不断总结不断完善,希望与广大i...

2015-11-27 14:48:31

阅读数:259

评论数:0

提升Java性能的基本方法

Java从诞生之日起就被质疑:字节码在JVM中运行是否会比机器码直接运行的效率会 低很多?很多技术高手、权威网站都有类似的测试和争论,从而来表明Java比C (或C++) 更快或效率相同。此类话题我们暂且不表(这类问题的争论没完没了,也许等到我们退休的时候,还想找个活动脑筋的方式,此类问题就会是最...

2015-11-18 23:52:50

阅读数:1268

评论数:0

Lock与synchronized是不一样的

很多编码者都会说,Lock类和synchronized关键字用在代码块的并发性和内存上时语义 是一样的,都是保持代码块同时只有一个线程具有执行权。这样的说法只对了一半,我们以一个任务提交给多个线程运行为例,来看看使用显式锁(Lock类)和内部锁(synchronized 关键字)有什么不同。首先定...

2015-11-17 23:17:18

阅读数:572

评论数:0

异步运算考虑使用Callable接口 有返回值的线程

多线程应用有两种实现方式,一种是实现Runnable接口,另一种是继承Thread类,这 两个方式都有缺点:run方法没有返回值,不能抛出异常(这两个缺点归根到底是Runable 接口的缺陷,Thread也是实现了 Runnable接口),如果需要知道一个线程的运行结果就需要用 户自行设计,线程类...

2015-11-17 17:29:58

阅读数:435

评论数:0

使用线程异常处理器提升系统可靠性

我们要编写一个Socket应用,监听指定端口,实现数据包的接收和发送逻辑,这在早期系统间进行数据交互是经常使用的,这类接口通常需要考虑两个问题:一是避免线程阻塞, 保证接收的数据尽快处理;二是接口的稳定性和可靠性问题,数据包很复杂,接口服务的系统也很多,一旦守候线程出现异常就会导致Socket停止...

2015-11-17 14:19:28

阅读数:370

评论数:0

线程优先级只使用三个等级

线程的优先级(Priority)决定了线程获得CPU运行的机会,优先级越髙获得的运行机 会越大,优先级越低获得的机会越小。Java的线程有10个级别(准确地说是11个级别,级 别为〇的线程是JVM的,应用程序不能设置该级别),那是不是说级别是10的线程肯定比 级别为9的线程先运行呢?我们来看如下一...

2015-11-17 12:42:48

阅读数:3150

评论数:0

不使用stop方法停止线程,停止线程的最佳办法

线程启动完毕后,在运行时可能需要终止,Java提供的终止方法只有一个stop,但是我 不建议使用这个方法,因为它有以下三个问题: (1)  stop方法是过时的 从Java编码规则来说,已经过时的方法不建议采用。 (2)  stop方法会导致代码逻辑不完整 stop方法是一种“恶意”的中断,一旦执...

2015-11-13 16:22:22

阅读数:10474

评论数:1

不推荐覆写start方法

多线程比较简单的实现方式是继承Thread类,然后覆写run方法,在客户端程序中通过 调用对象的start方法即可启动一个线程,这是多线程程序的标准写法。不知道读者是否还能回想起自己的第一个多线程demo呢?估计一般是这样写的: class MultiThread extends Thread{ ...

2015-11-13 13:15:28

阅读数:318

评论数:0

python学习笔记--更新

python中文报错问题 SyntaxError: Non-ASCII character '\xe4' in file getoptTest.py on line 14, but no encoding declared; see http://www.python.org/peps/pep-...

2015-11-12 09:30:45

阅读数:244

评论数:0

反射让模板方法模式更强大

模板方法模式(Template Method Pattern)的定义是:定义一个操作中的算法骨架,将 一些步骤延迟到子类中,使子类不改变一个算法的结构即可重定义该算法的某些特定步骤。简单地说,就是父类定义抽象模板作为骨架,其中包括基本方法(是由子类实现的方法,并 且在模板方法被调用)和模板方法(实...

2015-11-06 17:13:23

阅读数:331

评论数:0

使用反射增加装饰模式的普适性,动态代理实现装饰模式

装饰模式(Decorator Pattern)的定义是“动态地给一个对象添加一些额外的职责。就增 加功能来说,装饰模式相比于生成子类更为灵活”,不过,使用Java的动态代理也可以实现 装饰模式的效果,而且其灵活性、适应性都会更强。 我们以卡通片《猫和老鼠》(《Tom and Jerry》)为例,看...

2015-11-06 14:25:12

阅读数:216

评论数:0

动态代理可以使代理模式更加灵活

Java的反射框架提供了动态代理(Dynamic Proxy)机制,允许在运行期对目标类生成 代理,避免重复开发。我们知道一个静态代理是通过代理主题角色(Proxy)和具体主题角 色(Real Subject)共同实现抽象主题角色(Subject)的逻辑的,只是代理主题角色把相关的 执行逻辑委托给...

2015-11-06 11:01:38

阅读数:199

评论数:0

使用forName动态加载类文件,动态加载不适合数组,动态加载数组的方法

动态加载(Dynamic Loading)是指在程序运行时加载需要的类库文件,对Java程序来 说,一般情况下,一个类文件在启动时或首次初始化时会被加载到内存中,而反射则可以 在运行时再决定是否要加载一个类,比如从Web上接收一个String参数作为类名,然后在 JVM中加载并初始化,这就是动态加...

2015-11-06 10:01:23

阅读数:699

评论数:0

反射访问属性或方法时将Accessible设置为true

Java中通过反射执行一个方法的过程如下:获取一个方法对象,然后根据isAccessible 返回值确定是否能够执行,如果返回值为false则需要调用setAccessiblearue),最后再调 用invoke执行方法,具体如下:    Method method =...... ;    //...

2015-11-04 19:39:25

阅读数:340

评论数:0

适时选择 getDeclared X X X 和 get x X X

Java 的 Class 类提供了 很多的 getDeclaredX X X 方法和 getX X X 方法,例如 getDeclared-Method和 getMethod成对出现,getDeclaredConstructors 和 getConstructors也是成对出现,那这 两者之间有什...

2015-11-04 19:22:06

阅读数:252

评论数:0

注意Class类的特殊性

java语言是先把Java源文件编译成后缀为class的字节码文件,然后再通过ClassLoader 机制把这些类文件加载到内存中,最后生成实例执行的,这是Java处理的基本机制,但是 加载到内存中的数据是如何描述一个类的呢?比如在Dog.class文件中定义的是一个Dog类, 那它在内存中是如何...

2015-11-04 19:00:52

阅读数:205

评论数:0

数组的真实类型必须是泛型类型的子类型

先说说ArrayList的toArray ArrayList提供了一个将List转为数组的一个非常方便的方法toArray。toArray有两个重载的方法: 1.list.toArray(); 2.list.toArray(T[]  a); 对于第一个重载方法,是将list直接转为Object[...

2015-11-03 19:10:07

阅读数:407

评论数:0

严格限定泛型类型采用多重界限

从哲学上来说,很难描述一个具体的人,你可以描述它的长相、性格、工作等,但是人都是有多重身份的,估计只有使用多个And (与操作)将所有的描述串联起来才能描述一个 完整的人,比如我,上班时我是一个职员,下班了坐公交车我是一个乘客,回家了我是父母的孩子,是儿子的父亲……角色时刻在变换。那如果我们要使用...

2015-11-03 13:57:44

阅读数:389

评论数:0

建议采用的顺序是 List<T>、List<?>、List<Object>

List、List、1^这三者都可以容纳所有的对象,但使用的顺序应该是首选List,次之List,最后选择List,原因如下: (1) List是确定的某一个类型 List表示的是List集合中的元素都为T类型,具体类型在运行期决定;List表示 的是任意类型,与List类似,而List则表示Li...

2015-11-02 22:15:50

阅读数:1676

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭