[Http Client] 远程网站连不上时,所耗内存更大
30个线程,做同一件工作:到远程网站上下载页面。我们发现,线程运行的机器 在网站当机时 比网站正常时 使用的内存 更多!
30个线程,做同一件工作:到远程网站上下载页面。我们发现,线程运行的机器 在网站当机时 比网站正常时 使用的内存 更多!
http://csvjdbc.sourceforge.net 如果第一列用作表头,而在sql里又直接且“select * ”,则表头的任意两列都不能重名 connection的可选属性 http://octopus.objectweb.org/doc/3.2-2/extras/Csvjdbc_readme.html 其中,最重要的是 props.put("suppressHeaders","true"); // first line contains data 也就是说,如果suppressHeaders为true,则CVS无列名,第一行就是数据;;否则,CSV第一行是表头,数据从第二行开始。这个选项的默认值是false,也就是说默认数据从第二行开始 还有几个属性: separator Used to specify a different column separator (Default is ‘,’). fileExtension Used to specify a different file extension (Default is ".csv") charset Used to specify a different than default charset encoding of input file (default is same VM default …
spring评价 大家都知道,Spring MVC提供了一些功能齐全的Controller,并和Struts一样,为这些Controller配套了很多可配置、可扩展的东西,如 successView,validator,Bean绑定框架,ResourceBundle。但我的观点是: 1.“可配置”性有意义吗?可配置是为了重用,但WEB层的东西能有几次重用?比起写一大堆配置文件的痛苦,追求一点点的重用有什么意义? 2. 有必要把validator独立出来吗?几个Controller共用一个validator的情况并不多见,而且就算要共用,也可以把校验逻辑写在pojo里,而不是写在丑陋不堪的Spring-validator里 3.Spring-Bind 通过字段级的绑定,可以在表单提交失败时给出具体的失败原因,提高用户体验,与resourceBundle结合使用还可以实现国际化。但是这个代价太大了,因为你要在表单页面中写很多 <spring-bind>这样的东西,而且,你的项目真的需要国际化吗? 4.有些Form Controller很有框架的特点(半成品),但是用起来更不顺手。以SimpleFormController为例,你要另外定义一个Form Object,要告诉系统在请求form和提交form时分别作什么,而且程序还人为地把校验逻辑和业务逻辑调用彻底分成不同的阶段,既麻烦,又不灵活 简化使用 在厌倦了这些烦人的东西之后,我开始简化地使用Spring MVC。最终我形成了自己的模式。这个模式的核心思想就是:Spring MVC仅用作URL映射和Bean注入,而它的Controller仅当作普通的Servlet,用request.getParameter()的方式获取输入,用POJO的风格来完成功能,既灵活,又舒服。具体来说: 1.基本只用最简单的AbstractController。以表单处理为例,请求form用一个controller,提交form再用一个controller,把两个步骤分开,这样的代码都比较简洁,长度少了很多;采用了POJO风格编码,可读性也强了很多 2.调用javabean的方法完成校验。既可在controller间重用,又维持了pojo风格 3.successView 可以作为表单页面的隐藏变量传到controller中来,这样就不用写XML了。其实,大多数情况下,把successView写死在Controller的代码中就够了。不同功能模块共享Controller的情况是不多见的。 4.校验异常,或者发现业务错误,直接throw Exception。然后用一个通用的处理error的JSP来处理所有Exception (这是Spring的功能),这个jsp里加上一个“返回”按钮,就可以方便用户在出错之后重新提交请求 5.相近的请求让一个controller处理就够了(如添加用户、删除用户),这样的话写URL配置就只需要写一次。仍然可以只用AbstractController,然后用一个Http Parameter参数来区分请求即可。 现在能想到的就是这么多,以后再补充
如果子对象的外键值已设为not null,级联删除时就会出问题 要解决这个问题,有两种办法: 1.取消掉外键的 not null 2. set, bag 那一端设置 inverse = true 原文: Very Important Note: If the <key> column of a <one-to-many> association is declared NOT NULL, Hibernate may cause constraint violations when it creates or updates the association. To prevent this problem, you must use a bidirectional …
见 org.apache.commons.codec.digest.DigestUtils
我们知道指定 display:columan 的 sortable=True时,默认是按display:column的tagBody的字典序来排序的;但是如果这个字段的值是数字类型的怎么办? 我们知道如果指定了sortProperty了,则按这个属性的值来排序;但是如果类集中的每个记录不是一个javabean(比如说一个数组),没有property怎么办? 看了文档,发现display:column有一个属性叫做 value,设置好这个value为字段的值,则排序时就按字段值来排序了
WritableWorkbook workbook = Workbook.createWorkbook(new File("output.xls")); WritableSheet sheet = workbook.createSheet("First Sheet", 0); Label label = new Label(0, 2, "A label record"); sheet.addCell(label); Number number = new Number(3, 4, 3.1459); sheet.addCell(number); workbook.write(); workbook.close(); http://www.andykhan.com/jexcelapi/tutorial.html 经过研究源码发现, 如果workbook是用 WritableWorkbook createWorkbook(OutputStream output) 方法生成的,则workbook.close()后,相应的output也会被自动关闭
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> </bean> 否则,执行 MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; 会报 ClassCastException异常
getCell(x,y) => 第y行的第x列 不要搞反了
如 int totalCount = 记录总数; int itemCountForPage = 每页记录数; 那么 int pageCount= totalCount / itemCountForPage + (totalCount % itemCountForPage == 0 ? 0 : 1); // 页数 int offset = (pageCount- 1) * itemCountForPage ; //在URL里作为参数pager.offset的值