一、瀏覽器清空緩存的時候若是選擇清空cookie,其實就是清空session(google瀏覽器,ie11沒有這個問題)
二、本地環境最好用ip地址127.0.0.1而非localhost,重定向要加request.getcontentpath()上下文javascript
三、當控制session超時的時候,點擊tab按鈕,會有iframe嵌套問題,能夠在session超時設置的返回jsp代碼中,頂部加上以下判斷例:如login.jsphtml
<script type=text/javascript> if (window != top) top.location.href = location.href; </script>
<html>java
四、在web.xml。這裏注意點是瀏覽器不請求保持在20分鐘後,session過時web
<!-- 配置sessio過時時間單位:分鐘 -->spring
<session-config> <session-timeout>20</session-timeout> </session-config>
五、項目中使用aop控制日誌和事務shell
注意點:spring配置文件是必須加的json
<!-- 配置使Spring採用CGLIB代理 --> <aop:aspectj-autoproxy proxy-target-class="true"/>
當你的aop想切springmvc的controller類,必定也在springmvc配置文件上加入上面的配置centos
用aop從session中取出user信息的方法,部分代碼以下:瀏覽器
public void doBefore(JoinPoint jp) { Object[] args = jp.getArgs(); HttpServletRequest request = null; StringBuilder str = new StringBuilder(); //經過分析aop監聽參數分析出request等信息 for (Object obj : args) { if (obj instanceof HttpServletRequest) { request = (HttpServletRequest) obj; } else if (obj instanceof HttpServletResponse) { } else { str.append(obj); } } UserVO user = null; if (request != null) { user = (UserVO) request.getSession().getAttribute("currentUser"); if (user != null) { logger.info("用戶名:{}", user.getUserName()); } }
其中發現個問題,spring和springmvc掃描註解包,最好要徹底分離,springmvc監控controller,spring加載其他控制權,讓springMVC的配置xml和spring容器的配置xml分開,在各自的xml中配置本身該作的事情,不要讓springMVC去掃描不應本身管理的註解。不然到後面總是出一些奇怪的問題。例如:spring中的事務回滾和aop配置緩存
六、在作aop日誌管理的時候遇到獲取session問題。解決方案以下:
HttpSession session = (HttpSession) RequestContextHolder.getRequestAttributes().getSessionMutex();
spring 版本不一樣方式,最好的方法.getSessionMutex();可能不一樣
簡單的是使用註解
@Autowired
HttpServletRequest request; respose 同理。。。
七、獲取最新記錄問題,例如獲取gps數據表中,每輛車的最新gps數據
/*
數據以下:
name val memo
a 2 a2(a的第二個值)
a 1 a1--a的第一個值
a 3 a3:a的第三個值
b 1 b1--b的第一個值
b 3 b3:b的第三個值
b 2 b2b2b2b2
b 4 b4b4
b 5 b5b5b5b5b5
*/
--1、按name分組取val最大的值所在行的數據。
--方法1:
select a.* from tb a where val = (select max(val) from tb where name = a.name) order by a.name
八、centos 6.5 本地copy文件到服務器
shell命令 rz
九、jackson pojo轉換json時間問題,它默認的是時間很長的數字
ObjectMapper objmapper = new ObjectMapper();
objmapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
十、eclipse設置項目管理
第一次方式
第2種方式
十一、獲取tomcat webapp真實目錄,例如app文件放在 webapp的 app文件夾下
request.getSession().getServletContext().getRealPath("/app");
十二、maven + jetty啓動項目問題,在用eclipse的jetty啓動項目的時候,下載文件總是出內存溢出,後來改爲在pom.xml,加jetty配置控制,在 maven的 web包的pom.xml中
</dependencies> 以後加,
<build> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>8.1.16.v20140903</version> <configuration> <webApp> <contextPath>/</contextPath> </webApp> <connectors> <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <port>8080</port> <maxIdleTime>60000</maxIdleTime> </connector> </connectors> <scanIntervalSeconds>0</scanIntervalSeconds> <scanTargetPatterns> <scanTargetPattern> <directory>src/main/webapp</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </scanTargetPattern> </scanTargetPatterns> <stopKey/> <stopPort/> </configuration> </plugin> </pl