開發工具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)