1.request.getContextPath()詳解 <%=request.getContextPath()%>是為瞭解決相對路徑的問題,可返回站點的根路徑。 但不用也可以,比如<a href="<%=request.getContextPath()%>/catalog.jsp">,可以直接用< ...
1.request.getContextPath()詳解
<%=request.getContextPath()%>是為瞭解決相對路徑的問題,可返回站點的根路徑。
但不用也可以,比如<a href="<%=request.getContextPath()%>/catalog.jsp">,可以直接用<a href="catalog.jsp">
2.<meta http-equiv="refresh" content="0; url=">什麼意思?
頁面定期刷新,如果加url的,則會重新定向到指定的網頁,content後面跟的是時間(單位秒),把這句話加到指定網頁的<head></head>里
一般也用在實時性很強的應用中,需要定期刷新的
如新聞頁面,論壇等,不過一般不會用這個,都用新的技術比如ajax等
<meta http-equiv="refresh" content="0; url=">'經過一段時間轉到另外某個頁面
content="0;URL=",這裡0表示沒有延時,直接跳轉到後面的URL;把0改成1,則延時1秒後跳轉。
網頁自動計時跳轉
這個頁面跳轉的好處在於不需要JS調用,直接在html文件頭裡加入
<meta http-equiv="refresh[刷新-這裡指定動作]" content="5[這裡是時間];url=/article[這裡是跳轉的URL]">
當某個頁面需要自動跳轉的時候就要用到這個代碼,比如一般的網站廣告頁面打開幾秒後自動跳轉到另外一個頁面去就是用這個代碼實現的(當然用js
也是可以實現的)
3.LOG4J.PROPERTIES配置詳解
一、Log4j配置
第一步:加入log4j-1.2.8.jar到lib下。
第二步:在CLASSPATH下建立log4j.properties。內容如下:
放在src下的話就不用配置 否則得去web.xml裡面配置一個Listener
### set log levels ###
log4j.rootLogger = debug , stdout , D , E
### 輸出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
### 輸出到日誌文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## 輸出DEBUG級別以上的日誌
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 保存異常信息到單獨文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log ## 異常日誌文件名
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR ## 只輸出ERROR級別以上的日誌!!!
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
4.struts.properties配置詳解
這個文件是struts2框架的全局屬性文件,也是自動載入的文件。該文件包含了系列的key-value對。該文件完全可以配置在struts.xml文件中,使用
constant元素。
5.全局類型轉換器xwork-conversion.properties
註冊名的文件格式:xwork-conversion.properties文件該文件也是properties文件,其內容也是由”複合類型=對應的類型轉換器類”項組成的。
以下是xwork-conversion.properties文件內容:
#指定所有redarmy.user.User類的類型轉換器為redarmy.user.UserConverter
redarmy.user.User=redarmy.user.UserConverter
註意:xwork-conversion.properties文件必須為class文件夾下即在src下麵創建
6.OpenSessionInViewFilter是用來處理懶載入異常的。
懶載入異常的意思的就是:還用不到的東西,就先不載入,等需要的時候再來載入。 所以懶載入對性能有一定的提升,但是,這也會出現一些問題,一般來說,事務開始的時候Session就被獲取,事務結束的時候Session就會被關閉。所以懶載入會出現Session已關閉,卻還是去調用Session,從而報Session為空的錯誤。 據我所知道解決這個問題的方法有兩個:一個就是關閉懶載入異常。(一般不推薦!因為關閉了,就不能使用懶載入的好處了) 另一個方法就是把Session的關閉延後。(推薦使用) 在使用第二種方法解決這個問題時,要先瞭解一下事務、Session等的調用過程: 如: 因為在顯示層的時候要使用到懶載入屬性,所以要讓Session到顯示層調用了懶載入之後在關閉。 那麼可以把Session的關閉交給Filter或Interceptor,因為很多程式都要用到這個功能,所以有人已經實現了這個功能。 也就是: org.springframework.orm.hibernate3.support.OpenSessionInViewFilter只要配置這個Filter就可以了。 如下:
<!-- 防止懶載入異常的過濾器 -->
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>