轉自:https://www.jb51.net/article/119216.htm
tomcat介紹:
web服務器只能完成靜態資源的請求;
web容器能夠進行動態資源的請求;
tomcat就是一個最簡單的web容器,是apache的jarkata項目的子項目。
tomcat 7.0.X支持Servlet 3.0規范,因此建議使用7.0.X;
tomcat有兩種版本:
(1)二進制版本:解壓后需要配置環境變量,建議使用此版本。
(2)服務版本:可執行文件,安裝好后會在系統中注冊服務.
tomcat目錄介紹:
tomcat有幾個文件夾:
(1)bin:存放可執行命令,比如開啟和關閉tomcat:startup.bat;
(2)conf:配置文件。
(3)webapps:發布web應用。
(4)lib:庫文件,可以通過此目錄擴展,比如放置數據庫驅動在此文件中。
(5)work:臨時的Java或class文件。
Tomcat基本配置
注意:Tomcat不要放在中文目錄或帶有空格的目錄中;
一、配置環境變量
1.配置 JAVA_HOME :C:\Java\jdk1.6.0_27
2.配置 CATALINA_HOME:C:\apache-tomcat-7.0.6 (這個環境變量可以不配)
這里以我的配置為例,根據自己的安裝位置調整;
catalina_home配置了以后,當出現如圖情況:
當點擊C:\tomcat\bin\startup.bat后 啟動的是D:\tomcat
二、配置端口
默認為8080,可以在tomcat/conf/server.xml中的配置.
1
2
3
|
<
Connector
port
=
"8888"
protocol
=
"HTTP/1.1"
//此處可以把8888換成任意端口.
connectionTimeout
=
"20000"
redirectPort
=
"8443"
/>
|
配置完這些后已經可以使用tomcat了,在瀏覽器中輸入 http://localhost:8888 后彈出如下頁面:
端口被占用問題:
如果有其他軟件占用了此端口,則會導致tomcat不能啟動;
解決方案:
用FPort等軟件查看端口使用情況,然后 kill 此進程即可;
三、配置用戶角色
為了在頁面中管理部署web應用,必須要有用戶,因此需要配置新用戶和密碼(原本無用戶)。
在tomcat/conf/tomcat-users.xml中的<tomcat-users></tomcat-users>中添加如下語句:
1
2
|
<
role
rolename
=
"manager-gui"
/>
<
user
username
=
"admin"
password
=
"12345"
roles
=
"manager-gui"
/> //用戶名為admin,密碼為12345
|
JAAS:Java Authentication Authorization Service 即Java驗證授權服務
如圖可以利用前面設定的用戶名和密碼登陸:
四、配置部署web應用路徑
1.可以在webapps目錄中進行部署,即直接將整個web應用復制到webapps下。
2.可以在conf/catalina/localhost目錄中創建一個test.xml,在此文件中添加:
1
2
3
|
<?
xml
version
=
"1.0"
encoding
=
"GBK"
?>
<
Context
docBase
=
"F:/publish"
debug
=
"0"
privileged
=
"true"
> //docBase是路徑,可以自己調整
</
Context
>
|
這樣可以輸入 http://localhost:8080/test 訪問,注意這個test就是xml文件的名字。
比如xml文件的名字為x.xml,則輸入 http://localhost:8888/x
還需要在F:\publish,也就是web應用的目錄新建一個WEB-INF文件夾,在此文件夾中新建一個web.xml,為了偷懶,可以把tomcat/webapps/WEB-INF/web.xml 的文件黏貼到F:\publish\WEB-INF中.
3.可以在網頁中部署,如圖所示:
可以通過war包或者一個路徑部署,war包可以從Eclipse中導出。
常見注意點:
1.設置端口號:在conf/server.xml中修改。
2.配置虛擬目錄:在conf/server.xml中最后添加<Context path = "...." docBase = "..."/>,
比如 <Context path = "/test" docBase = "D:\test"/>,則瀏覽器中輸入http://localhost:8080/test則可以運行D:\test的內容。
注:在配置完后還要在conf/web.xml中
1
2
|
<param-name>listings</param-name>
<param-value>false</param-value>改成true
|
3.配置默認首頁:在conf/web.xml中最后
1
|
<
welcome-file
>index.html</
welcome-file
>
|
說明默認為index.html,因此如果輸入http://localhost:8080/test則會自動調用index.html.
4.每個web應用中都需要WEB-INF和web.xml文件,最簡單的辦法就是去tomcat主目錄下的webapps/ROOT/的WEB-INF拷貝到你所需要的web應用文件夾下。
5.第一次用戶請求某個JSP會比較慢。
原因:JSP首先會轉換成JAVA文件,然后再編譯成class文件,最后才執行,這些java和class的文件都在tomcat主目錄的work文件夾下。
HTTP常見狀態:
(1)404錯誤:客戶路徑不正確造成。
(2)500錯誤:服務器內部錯誤。
因此總的來說:
(1)2##:請求成功。
(2)4##:客戶端錯誤。
(3)5##:服務器錯誤。
JSP文件簡介:HTML+JAVA代碼。
<%。。。%>中嵌入java代碼。
在html中<form>的action屬性可以設置服務器處理請求的jsp文件,例如:
1
|
<form action =
"hello.jsp"
method =
"post"
>
|
接下來是一個最簡單的應用tomcat的程序,用戶輸入任意字符串比如world,服務器返回hello加上字符串,比如hello,world.
1
2
3
4
5
6
7
8
9
10
11
12
|
<
html
>
<
head
>
<
title
>Demo</
title
>
</
head
>
<
body
>
輸入內容:
<
form
action
=
"input.jsp"
method
=
"post"
>
<
input
type
=
"text"
name
=
"info"
/>
<
input
type
=
"submit"
value
=
"顯示"
/>
</
form
>
</
body
>
</
html
>
|
jsp文件:
1
2
3
4
5
6
7
8
9
10
11
12
|
<html>
<head>
<title>Demo</title>
</head>
<body>
<%
String str = request.getParameter(
"info"
);
str =
"Hello,"
+str;
out.println(
"<h1>"
+str+
"</h1>"
);
%>
</body>
</html>
|
web應用目錄布局建議:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
主目錄
|
|-WEB-INF
| |- web.xml
| |- classes
| | |-放置class文件
| |- lib
| | |-放置第三方jar包
| |- src
| | |-存放源文件
|-存放jsp、html
|
|-image
| |-存放圖片
|