显示标签为“tomcat”的博文。显示所有博文
显示标签为“tomcat”的博文。显示所有博文

2012年4月18日星期三

ubuntu11.10 install tomcat6



sudo apt-get install tomcat6




设置默认端口
sudo gedit /etc/tomcat6/server.xml


修改默认openjdk
sudo gedit /etc/default/tomcat6

修改/etc/tomcat6权限
sudo chgrp -R tomcat6 /etc/tomcat6
sudo chmod -R g+w /etc/tomcat6

默认安装到/host/Program/Develop/Tomcat6目录
/etc/init.d/tomcat6 restart/stop/start


[1]https://help.ubuntu.com/11.04/serverguide/C/tomcat.html
[2]http://www.howtoforge.com/how-to-install-tomcat6-with-sun-java-and-apache2-integration-on-ubuntu-10.04-lucid-lynx-with-virtual-hosts

2012年3月11日星期日

Tomcat 在處理 GET、POST 參數時預設是採用 ISO-8859-1 編碼


網頁
<input type=text name=keyword>
程式
String keyword=request.getParameter(“keyword”);
網頁的 input 輸入中文 submit 後由以上程式碼接取,原本的中文都變成亂碼。解決的方法是改用以下的接取程式碼,將收到的字串重新編碼。
String keyword=new String(request.getParameter(“keyword”).getBytes(“iso8859-1″),”utf-8″);
Why
Tomcat 在處理 GET、POST 參數時預設是採用 ISO-8859-1 編碼,請參考此 網址 URIEncoding 部份的說明,所以第2 段程式才會 work,請隨著您的作業系統及資料庫編碼設定,調整接取參數的程式碼。
Browser
以上的例子是送一個 keyword 到 tomcat web application 查詢資料,後來出現另一個問題,從 Firefox 送出中文的 keyword 可以正確的查到資料,Explorer 卻查不到,經過測試和查詢相關資料後發現,從 Explorer 送出 keyword 前要用 javascript encodeURIComponent() 編碼後再送出才會正常查到資料。
2008.11.27 加註
上面情形是發生在未指定 form 的 method,根據規格預設會以 get 傳送資料,Tomcat 的文件也沒有說明 URIEncoding 是會針對 get 或 post method 作處理。今天又遇到 form submit 中文亂碼問題,這次也不用重新編碼參數了,直接把 form method 設定 post,問題就解決了。看來 submit 的 form 有中文時,用 post method 會是比較好的選擇。

2012年1月13日星期五

Tomcat下配置Web应用程序的虚拟目录


在Tomcat下,web应用程序的虚拟目录的配置最主要是通过在XML配置文件中设置<context>元素来完成。一个<context>元素就表示一个web应用程序,运行在特定的虚拟主机中。

1.        <context>元素的常用属性如下表所示:

属性
描述
cookies
是否将cookie应用于Session,默认值是true
crossContext
如果设置为true,在应用程序内部调用ServletContext.getContext将成功返回在同一个虚拟主机中的其他web应用程序的请求调度器。若设置为false,将返回null。默认值是false
docBase
指定Web应用程序的文档基目录或者WAR文件的路径名。可以指定目录的或WAR文件的绝对路径名,也可以指定相对于Host元素的appBase目录的路径名。 该属性是必需的
path
指定Web应用程序的上下文路径。在一个选定的虚拟主机中,所有的上下文路径都必须是唯一的。
reloadable
如果设置为true,Tomcat服务器运行时,会监视WEB-INF/classes/和WEB-INF/lib目录下类的改变,如果发现有类被更新,Tomcat服务器将自动重新加载该Web应用程序。在应用程序的开发阶段很有用。但它需要额外的运行时开销,产品发布时不建议使用。默认值为false
unpackWAR
如果为true,Tomcat在运行Web应用程序前将展开所有压缩的web应用程序。默认值是true

2.        设置方式:

1)      在$CATALINA_HOME/conf/context.xml文件中添加<context>元素。
2)      在$CATALINA_HOME/conf/server.xml文件的<Host>元素下添加<context>元素。

3.        示例:

有一web应用程序在context.xml中的配置:
<context path="/helloworld" docBase="helloworld" reloadable="true" />
表示此Web应用程序的文档基目录(helloworld)放在webapps目录下,它的上下文路径名helloworld,当此应用中的文件有更新时,Tomcat服务器会重新自动加载。