1. 程式人生 > >開發工具Tomcat-安裝與調整1

開發工具Tomcat-安裝與調整1

為Eclipse新增Tomcat

目標:為Eclipse新增多個Tomcat

Eclipse 自帶 WTP,WTP 具有管理 Web應用伺服器功能,用於管理Tomcat。參考部落格:

http://elf8848.iteye.com/blog/1684935

操作:開啟Eclipse的Preferences (首選項):選單欄 > Window > Preferences

按以下截圖進行操作:

目標:為Eclipse配置了6個Tomcat

操作:回到Eclipse工作區,在底部找到Servers檢視

按以下截圖進行操作:

Eclipse中的Tomcat執行調整

目標:調整tomcat,讓它執行的更舒服。若不調整用著難受各種不爽。

操作:回到Eclipse工作區,在底部找到Servers檢視。其中有前面新增的Tomcat,在其中一個上雙擊,開啟如下圖的視窗。

按以下截圖進行操作:

目標:

1號:修改tomcat的工作目錄:使用tomcat安裝時的目錄,不使用工作空間中的metadata目錄。

2號:修改部署路徑(可不做)

3號:

勾選 Server modules without publishing

是為了:修改程式釋出目錄,tomcat啟動時,不用把專案釋出到tomcat的webapps工作目錄(2號修改),讓tomcat直接使用Eclipse工程中的WebContent目錄中的程式來執行,方便快捷。

 

勾選 Publish module contexts to separate XML files

是為了:使本來配置在conf/server.xml裡的<context>元素,分離到/conf/Catalina/localhost/的目錄下專門生成一個{context_name}.xml。 這其中有工程啟動所依賴的所有jar檔案的路徑。

 

不勾選 Modules auto reload by default

是為了:控制預設值,“auto reload ”表示自動重新載入,不勾選表示不自動重新載入。  請看下面的圖,部署時有一個“Auto Reload”,它前面有一個選擇框,預設是勾選還是不勾選,就是本處控制的。

4號:tomcat啟動和停止的超時時間,啟動超時時間從45秒改為200秒

5號:可修改tomcat的埠號,要想同時啟動兩個tomcat,就是修改這裡,3個埠都要修改

Eclipse中的Tomcat配置--釋出程式

後補充:做了上圖中“3號”的設定,就不存在這個問題了。

現象:Tomcat的”Auto Reload“預設是開啟的,導致的問題是:開發人員修改並儲存了一行程式碼,就會觸發tomcat的重新啟動並載入新程式碼。

目標:防止開發人員修改並儲存了一行程式碼,就會觸發tomcat的重新啟動並載入新程式碼。並能熱載入新程式碼。

分析:我們在開發web專案時,希望tomcat能熱載入我剛寫的新程式碼,而不用通用重新啟動tomcat來實現載入,因為重啟tomcat太慢了。

方法:向tomcat部署一個工程時,關閉Auto Reload(自動重新載入)功能。

熱載入:做到這裡“熱載入”的範圍是,我修改的舊有的方法中的程式碼都可以熱載入,不需要重啟tomcat。但我寫了新方法、寫了新class、舊方法改方法名,稱都是無法熱載入的,還是要通過重啟tomcat來解決。

操作:按下圖選擇

Tomcat的中文編碼問題

通過表單提交上來的中文如何避免亂碼?

目標:防止表單提交上來的中文亂碼

表單提交的方式:有post提交、get提交 兩種。

websphere 對post提交、get提交上來的中文:只要使用一種方法,就可解決。就是使用”編碼過濾器“,這點上websphere做的比tomcat好。

Tomcat 對post提交、get提交上來的中文:要分別處理,才能解決亂碼問題

Tomcat針對Post方式提交的請求如果出現亂碼,可以每次在request解析資料時設定編碼格式:request.setCharacterEncoding("utf-8");
最常用的方法是Web.xml中增加使用spring提供的編碼過濾器:org.springframework.web.filter.CharacterEncodingFilter   (咱們的工程中都已新增完了) 

Tomcat針對Get方式的亂碼問題,由於引數是通過URL傳遞的,所以上面通過request設定的編碼格式是不起作用的(tomcat是白痴)。

方法一:在每次發生請求之前對URL進行編碼:例如:Location.href="/encodeURI"("http://localhost/test/s?name=中文&sex=女"); (太麻煩不建議使用)

方法二:在服務端接收到每一個引數後,用java程式實現ios-8859-1的轉碼。(太麻煩不建議使用)

方法三:當然也有更簡便的方法,那就是在伺服器端配置URL編碼格式:(使用此方法,請大家自行修改自己的tomcat)

操作:修改tomcat的server.xml檔案,按下圖找到server.xml檔案

操作:在server.xml檔案中,加入UTF-8的配置:

    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" 

    URIEncoding="UTF-8" useBodyEncodingForURI="true"/>

只需增加紅色這一句,然後重啟tomcat即可。

Eclipse中的Tomcat配置--設定記憶體 

目標:給Tomcat分配合理的記憶體,可讓工作更順手

操作:按下圖找到入口

按下圖,新增jvm內容引數:

-Xms256M -Xmx1024M -XX:PermSize=64M -XX:MaxPermSize=256M (此配置適用於jdk6\jdk7)
-Xms256M -Xmx1024M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M (此配置適用於jdk8)