SSH項目中的困惑之一

来源:http://www.cnblogs.com/hgc-bky/archive/2017/05/21/6885450.html
-Advertisement-
Play Games

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等的調用過程: 如: 圖像 1.png     因為在顯示層的時候要使用到懶載入屬性,所以要讓Session到顯示層調用了懶載入之後在關閉。   那麼可以把Session的關閉交給Filter或Interceptor,因為很多程式都要用到這個功能,所以有人已經實現了這個功能。 也就是:  org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
只要配置這個Filter就可以了。 如下:
  1. <!-- 防止懶載入異常的過濾器 -->
  2. <filter>
  3. <filter-name>OpenSessionInViewFilter</filter-name>
  4. <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  5. </filter>
  6. <filter-mapping>
  7. <filter-name>OpenSessionInViewFilter</filter-name>
  8. <url-pattern>*.action</url-pattern>
  9. </filter-mapping>
不過要註意的一件事! 就是這個OpenSessionInViewFilter  過濾器要配置在Struts配置之前。 不然會無效!!
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • public class BulletMove : MonoBehaviour { public float Speed = 5f; public Transform Fx; // Use this for initialization void Start () { //5秒後,刪除自己 Dest ...
  • NancyFx框架中使用綁定模型 新建一個空的Web程式 然後安裝Nuget庫裡面的包 Nancy Nancy.Hosting.Aspnet Nancy.ViewEnglines.Spark 併在Web應用程式裡面添加Models,Module,Views三個文件夾 繼續往Models文件夾裡面添加 ...
  • public class PlaneMove : MonoBehaviour { //h:水平方向的控制,v:前後方向的控制 float h,v; //Speed:飛機的飛行速度 public float Speed; // Use this for initialization void Star ...
  • "Stylet" 是我最近發現的一個WPF MVVM框架, 在博客園上搜了一下, 相關的文章基本沒有, 所以寫了這個入門的文章推薦給大家. Stylet是受 "Caliburn Micro" 項目的啟發, 所以借鑒了其中的很多概念, 同時精簡了一些部分, 如只支持MVVM, WPF和.NET 4.5 ...
  • 一、Servlet 1、瞭解Servlet Servlet(Server Applet),全稱Java Servlet,未有中文譯文。是用Java編寫的伺服器端程式。其主要功能在於互動式地瀏覽和修改數據,生成動態Web內容。狹義的Servlet是指Java語言實現的一個介面,廣義的Servlet是指 ...
  • 結果: ...
  • 1 Mybatis映射文件--增刪改查 POJO類 EmployeeMapper.xml IEmployeeDAO 配置文件--log4j.properties 配置文件--db.properties 配置文件--mybatis-config.xml 測試類 ...
  • 當客戶端訪問某個能開啟會話功能的資源,web伺服器就會創建一個HTTPSession對象,每個HTTPSession對象都會占用一定的記憶體,如果在同一個時間段內訪問的用戶太多,就會消耗大量的伺服器記憶體,為瞭解決這個問題我們使用一種技術:session的持久化。 什麼是session的持久化? 當客戶 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...