PHPRPC是一款不错的是轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。官方网址为http://www.phprpc.org/zh_CN/ 本文以Java作为服务器端,PHP作为客户端来作为演示。
在struts2.1中使用注解和拦截器实现权限细粒度控制
正如上一篇文章说的,拦截器是struts2的核心,同时struts2引入了注解的方式。这里就来简单看看针对struts2.1中使用注解和拦截器的开发。 首先要引入struts2.1各包,特别要引入Convention Plugin插件。
在java项目中使用Zip打包实现文件下载
zip压缩下载不仅可以减少网络传输,而且可以实现批量的文件下载。最近在项目中用到,写了个工具类,如下
Struts2的教程资源下载汇总
目前,国内的java培训貌似很热,这应该和国内的环境有关系。特别是随着电子商务的发展,越来越多的平台都转换到java的平台上来进行开发建设。 原来自己一直使用Struts1,虽然很早知道Struts2出来了,但是一直没时间去看。最近花了点时间看下,感觉确实比Struts1.x好得多。个人感觉有以下几点 1、可以开始使用注解,使用注解的方式一直是我最喜欢的开发方式。虽然从软件开发的理念来讲耦合性太强,但是,即使基于xml配置,基本上很少说可以只更改xml而不更改代码的。一样要更改代码,一样要进行重新编译。使用注解使用起来很清晰明了。挺合我胃口,当然仁者见仁智者见智,关键是习惯。 2、不用去写actionForm。这个直接在Action里面进行控制。这个非常不错。 3、引入拦截器,这个以后在权限控制上就更轻松了。
从tomcat移植到jboss发生的jsp错误
最近发现从tomcat移植到jboss会有一点差别,尽管jboss的web用的tomcat,但还是有一点差别的。 1、list的问题 jboss的list不能使用泛型,即list不能写成list,否则会报错; 2、pageContent.setAttribute(String,Object)的问题。 jboss除了String类型,例如int,boolean等类型不能写入,不然会出现类似的错误 The method setAttribute(String, Object, int) in the type JspContext is not applicable for the arguments (String, int) 而要把Object写成new Boolean(boolean),new Integer(int)。这样就不会报错。
SQL Server的JDBC驱动问题
最近公司换服务器把数据库从SQL Server 2005 升级到 SQL Server 2008。这样,以这个数据库对接的两个系统全部瘫痪,无法进行数据库对接。 首先立即判断是是数据库的驱动问题,好不容易从网上找到了了驱动,下载下来,发现里面有两个文件一个是sqljdbc.jar,另外一个是sqljdbc4.jar,于是将驱动换掉,两个全部导进去,加到CLASSPATH路径,发现,还是不行。两个系统分别出现以下错误: Exception in thread “main” java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$100(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:164) at com.peak.batch.commodityimport.CommodityInfoImport.importOrderInfo(CommodityInfoImport.java:649) at com.peak.batch.commodityimport.CommodityInfoImport.main(CommodityInfoImport.java:108) java.lang.UnsupportedOperationException: [...]
