`
锅巴49
  • 浏览: 161240 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
场景,某action把任务分配给N个线程,当线程完成后通知action,action返回。   package com.koubei.Observable; import java.util.Observable; import java.util.Observer; public class Action implements Observer{ private int count; public String execute() throws InterruptedException{ new Thr ...
最近在看struts2源码,发现struts2下的token拦截是基于session的   核心类是org.apache.struts2.util.TokenHelper   在页面上用标签打入token标记   public static String setToken(String tokenName) { Map session = ActionContext.getContext().getSession(); String token = generateGUID(); try { sessio ...
这两个模式UML相同,其实他们的运用场景有很大区别。   1、策略模式        封装算法,让使用者可以更换不同的算法。变is a为has a 用组合来代替继承。      一旦置入算法,不会因使用者的内部状态来改变算法。      采用哪种算法,是由使用者掌握的。   2、状态模式        对象的内部状态决定它的行为。不同的状态有不同的行为,不同的行为又切换不同的状态。      当方法内出现很多if else时可以考虑使用状态模式。      状态模式重要的一点是在行为执行时,状态的变更。        
之前要下载文件是通过向response中写流,还要设置head,比较麻烦。 用struts可以配置result,自动化的下载   <action name="fileLoad" class="com.my.action.FileUpAction" method="load"> <result name="success" type="stream"> <!-- 下载文件类型,这里是全部类型都可以 --> <param n ...
在struts下文件上传很方便,但有几个问题要注意下   1、拦截器配置要注意顺序       如果你要配置个性化的,如文件类型,大小,需要在下面增加最下面增加workflow的拦截,因为文件上传拦截器会判断文件类型与大小往validate中写错误信息,workflow会在最后判断有无错误,并转到input。     <action name="fileUpload" class="com.my.action.FileUpAction" method="post">  <result name=&qu ...
startup.bat set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"   下面加上 SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8797
业务中要用notify发短信。应用端向notify发,有一个短信订阅该消息,并组织内容发出去。   我们决定采用velocity来组织内容,并且当修改vm模板内容时能自动识别并加载,不用重新启动程序。     package com.test.velocity; import java.io.File; import java.io.StringWriter; import java.util.Map; import java.util.Observable; import java.util.Observer; import java.util.Properties; ...
大家知道在Set中是不会有重复对象的。Set会用hashCode与equals来保证不会有重复。   hashCode会定位对象在数组中下标,该下标处会引用类拟链表的数据结构。如果有两个对象的hashCode一样,但equals不一样,在该位置会有两个对象。   当Set增加某个对象时,首先会取得该对象的hashCode来定位,查询该位置如果没有存储对像,将直接放入,不调用equals方法   如果发现该位置有对象,将调用equals方法,如果相等,将返回。如果不相等,该对象会放入这个对像的后面.   在调用set.contains(object)时,也首先调用hashCode, ...
java 将对象序列化到文件后,若原对象更改了属性名称,增加/删除方法是否会反序列化失败?我试验了下,得出的结果是   1、序列化是根据private static final long serialVersionUID = 1L;来控制两边的版本的,如果这个不一致,即使是相同对象也会反序列化报错,因此这个是核心。 2、序列化后,若文件属性变更/删除/增加 将不影响反序列化成功。只是该值不会置入而已。 3、方法是不序列化的。 附上代码,大家可以试试。   代码如下:   /** *  * 描述 * * @author 锅巴 * @version 1.0 2010-7-5 * ...
看了很多webservice的例子,很多没看明白。自己试验了下,觉得这样做是比较简单的,把程序发布下(在附件中)。 1、下载axis,在http://ws.apache.org/axis2/download/1_5_1/download.cgi 2、做一个WEB工程,文件目录如下    axis    -- WEB-INF    ---- web.xml    ---- classes    ------ server-config.wsdd    ---- lib    ------- axis.jar    ------- common-discovery-0.2.jar    ----- ...
有一次在window机上配这个,搜了很多,发现不是很全。自己试验了下,主要是为后面业务做铺垫。把详细的配置过程写下来。 一、需要准备的东西(所有安装文件都在附件中有下载)     1、apache 下载地址 http://httpd.apache.org/   httpd-2.2.15-win32-x86-no_ssl.msi 2、tomcat 下载地址 http://tomcat.apache.org/  apache-tomcat-6.0.26-windows-x86.zip 3、mod_jk  下载地址 http://www.apache.org/dist/tomcat/tomc ...
单台web app 做登陆很简单,放到session里就可以。但稍微大的应用都是apache下挂着多台tomcat的,tomcat1的session 到tomcat2下就不管用了。tomcat间的session复制也比较费性能,我们尽量要保持web层的无状态。 上一篇apache_tomcat负载均衡配置完成后,我基于此业余做了基于struts的多台应用登陆/自动登陆处理,源码在附件中。 原理: 1、登陆后把信息用户名及密码加密放入cooekis(如果选择自动登陆),同时把User 对象放入session。下上文中通过session.getAttribute("User")来 ...
Global site tag (gtag.js) - Google Analytics