event.returnValue = false;
当事件触发时取消该事件的响应
war包:是做好一个web应用后,通常是网站,打成包部署到容器中。
jar包:通常是开发时要引用通用类,打成包便于存放管理。
ear包:企业级应用,通常是EJB打成ear包
JMX是管理java组件的一组J2EE标准,HIBERNATE可以通过一个JMX标准来管理的,即 org.hibernate.jmx.HibernateService
hibernate在服务器启动的时候会先加载hibernate.properties然后再加载hibernate.cfg.xml
如果两者有重复的配置 后者会覆盖前者
hibernate 中可以通过设置hibernate.max_fetch_depth的值来控制抓取深度
如果为0 则不会out join 若大于1 则会 通过one-to-one many-to-mang 等 进行抓取 值的大小决定抓取的次数
oracle 限制通过JDBC传输的字节数组的数目,如果你希望使用二进制或序列化的大对象,则开始hibernate.jdbc.use_stream_for_binary属性
可以通过继承org.apache.struts.action.ActionServlet 成为一个struts插件然后在重载的INIT 方法中 加载SessionFactory 等初始化信息 ,在struts-config.xml中添加<plug-in className="new97.webpub.util.InitStrutsPlugIn" />
BeanUtils的populate方法或者getProperty,setProperty方法其实都会调用convert进行转换 但Converter只支持一些基本的类型,甚至连java.util.Date类型也不支持。而且它比较笨的一个地方是当遇到不认识的类型时,居然会抛出异常来。 对于Date类型,我参考它的sqldate类型实现了一个Converter,而且添加了一个设置日期格式的函数。 ConvertUtils.register(new DateConvert(), java.util.Date.class); 特别是在web项目中,如果没有注册日期的话,formbean中将不支持java.util.Date类型,并抛出异常。 |
ConvertUtils.register(new ShortConverter(null), Short.TYPE);
ConvertUtils.register(new ShortConverter(null), Short.class);
ConvertUtils.register(new IntegerConverter(null), Integer.TYPE);
ConvertUtils.register(new IntegerConverter(null), Integer.class);
ConvertUtils.register(new LongConverter(null), Long.TYPE);
ConvertUtils.register(new LongConverter(null), Long.class);
ConvertUtils.register(new FloatConverter(null), Float.TYPE);
ConvertUtils.register(new FloatConverter(null), Float.class);
ConvertUtils.register(new DoubleConverter(null), Double.TYPE);
ConvertUtils.register(new DoubleConverter(null), Double.class);
ConvertUtils.register(new BigDecimalConverter(null), BigDecimal.class);
在程序后台如果需要轮转循环某一功能 使用Timer是个比较好的选择,或者extends TimerTask
关于使用
AutoServThread tt = new AutoServThread();
Timer timer = new Timer();
long period;
if (tt.getPeriod() != 0)
period = new Long(tt.getPeriod()).longValue();
else
period = new Long(300000).longValue();
timer.scheduleAtFixedRate(tt, 0, period);
利用STRUTS 导入文件
1 在form中 enctype="multipart/form-data"
2 在form 中添加 private FormFile accNbrFile;
3 在action中接受
FormFile accNbrFile = form.getAccNbrFile();
if (accNbrFile == null || !accNbrFile.getFileName().toUpperCase().endsWith(".TXT")) {
request.setAttribute("error", "请正确上传文件类型为.txt的号码列表");
return this.clickGroupVpn(mapping, actionForm, request, response);
}
BufferedReader bReader = new BufferedReader(new InputStreamReader(accNbrFile
.getInputStream()));