[Spring MVC]action互相包括可能导致addCookie()失效
spring的程序中如果一个action"包含"另一个action,则addCookie()可能失效 分析:addCookie()是在http header里设置一些东西,如果把a.do的response包裹在b.do里输出,那么在a.do里设置的header就不起作用了,cookie也就白加了
spring的程序中如果一个action"包含"另一个action,则addCookie()可能失效 分析:addCookie()是在http header里设置一些东西,如果把a.do的response包裹在b.do里输出,那么在a.do里设置的header就不起作用了,cookie也就白加了
[Spring MVC] 如果successView是redirect:/…,Spring会自动把Model中的值作为参数附在URL的后面 如: model.put("amount",new Integer(100); return new ModelAndView("redirect:/hi.do",model); 则浏览器收到的URL就是 http://…/hi.do?amount=100
[hibernate] Could not format discriminator value to SQL string…异常 如果discriminator value不是String类型就可能出这种错误,解决办法是在 Class.hbm.xml中的class元素处加上属性:discriminator-value="not null"
ToStringBuilder 会生成对象的hashCode,因此要保证对象的hashCode()方法不会报Exception
Properties.copyProperties() 就是用来复制一个BEAN的所有属性 到 另一个BEAN 但如果其中一个BEAN是ProxyBean(如CGLIB实现的代理),那就很可能会出错,因为ProxyBean有其他一些 莫名奇妙 的属性,把这些属性搞给一个非Proxy的原Bean,就会出现“无此属性” 错误
假设你要给一个国家作网站,这个国家的第一级行政单位都叫“省”,你要介绍各个省的风土人情 如果不用ResourceBundle,就要将“省”字写在JSP里,或者数据库里,一个省一个JSP,或者一条数据库记录 有一天,翻译突然告诉你说:“不好意思,我译错了,不应叫‘省’,而应叫‘郡’”,那你就要改死了,一个JSP一个JSP地改,或者一条一条地更新数据库记录 如果用了ResourceBundle,就可以把所有的行政单位名都写在同一个文件中,当省变郡时,只需要在这个文件中批量替换一下就成,非常方便
6.4 配置文件的分类存放 代码中的配置文件可以分为两大类: 1. 只在开发时修改,而不能在运行时修改的配置文件,如Spring的Bean注入配置,Hibernate的字段映射等。此类文件若发生变更,则相当于JAVA源代码发生变更,必须由开发人员完成。因此此类文件适合放在classpath下。即web/WEB-INF/classes中。 2. 适于运行时修改的配置文件,它们代表着系统参数,跟着生产环境的变化而变化,如 线程池配置。为了方便部署,此类文件不应与java字节码混在一起,即不能在classpath下。此类文件必须放在non-classpath-config中。由于系统的分布式特性,non-classpath-config下又设置了两个目录: a) process-common-config. 对所有进程来说配置相同的配置,如数据源配置;或者只为一个进程使用,不为其他进程使用的配置文件。 b) process-specific-config. 在不同进程中,有不同的配置。如不同进程就有不同的log4j文件路径。
有一种可能是因为 统计数的加减程序 没有设成synchronized 但还有一种可能: When the server is restarted, if there are active sessions they are persisted by default. Then the server comes back up, and all these sessions are active, without a session created event, so your listener has a counter value of 0, but there are actually >0 active sessions. When these are …
大师Z教的:每5秒记录一下内存,写到一个文件里,然后利用Excel画一下图就行了 <meta http-equiv="refresh" content="5"> <%@ page contentType="text/html; charset=UTF-8"%> <%@ page import="java.io.*"%> <% Runtime lRuntime = Runtime.getRuntime(); long freeM = lRuntime.freeMemory() / 1024 / 1024; out.println("Free Memory: " + freeM + "M<br/>"); File file = new File("c:/temp/tomcat_jvm.csv"); Writer writer = new FileWriter(file, true); String content = ""+freeM; writer.write(content); writer.write("\n"); writer.close(); %>
在catalina.bat中加上红色那行 set _EXECJAVA=%_RUNJAVA% set MAINCLASS=org.apache.catalina.startup.Bootstrap set ACTION=start set SECURITY_POLICY_FILE= set DEBUG_OPTS= set JPDA= set JAVA_OPTS= -Xms512M -Xmx1024M ===JSP中查看当前的内存使用状况= Runtime lRuntime = Runtime.getRuntime(); out.println("*** BEGIN MEMORY STATISTICS ***"); out.println("Free Memory: "+lRuntime.freeMemory()/1024/1024+"M"); out.println("Max Memory: "+lRuntime.maxMemory()/1024/1024+"M"); out.println("Total Memory: "+lRuntime.totalMemory()/1024/1024+"M"); out.println("Available Processors : "+lRuntime.availableProcessors()+""); out.println("*** END MEMORY STATISTICS ***");