亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Tomcat總結

系統 3140 0

1.介紹

下載地址:

http://tomcat.apache.org/

http://jakarta.apache.org/site/downloads/index.html

2.安裝

2.1 環境配置

JAVA_HOME????C:\Program Files\Java\jdk1.6.0_05

JAVA_BIN????C:\Program Files\Java\jdk1.6.0_05\bin

TOMCAT_HOME????D:\programming\java\apache-tomcat-6.0.18

CLASSPATH????.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

JAVA_OPTS????-Xms64m -Xmx512m

PATH后加????;%JAVA_HOME%\bin;%TOMCAT_HOME%\bin

?

ANT_HOME= D:\programming\java\apache-ant-1.7.1

PATH=%PATH%;%ANT_HOME%\bin

2.2 測試java環境

在命令行中輸入:

java –version查看版本

javac –help查看path路徑是否設置完

2.3 源代碼安裝Tomcat(不推薦)

下載ANT,地址 http://ant.apache.org/

下載tomcat源碼,地址 http://tomcat.apache.org/ apache-tomcat-6.0.18-src.zip,解壓后將里面的build.properties.default改成build.properties

2.4 二進制安裝

直接解壓到某一文件夾下即可,但要更改TOMCAT_HOME變量

直接啟動startup.bat即可

2.5 配置

2.5.1 安裝名為Tomcat6的Tomcat服務:service install

刪除tomcat服務service remove

安裝名為MyTomcat的服務:service install MyTomcat

刪除名為MyTomcat的服務:service remove MyTomcat

2.5.2 <Context>元素

<Context path="/qqq" reloadable="true" docBase="E:\qqq" workDir="E:\qqq\work" />

path代表網絡訪問的上下文路徑,reloadable表示可以在運行時在classes與lib文件夾下自動加載類包,在開發階段一般為true有助于調試類源文件,但該參數所產生的操作會增加服務器的運行負荷,所以在部署階段一般都設置成false,docBase表示應用程序的路徑,workDir表示緩存文件的放置地點

  1. conf/tomcat-users.xml中添加

<role rolename="manager"/>

<user username="qq" password="qq" roles="manager"/>

2.6 測試運行

新建一頁面hello.jsp

<%@ page contentType="text/html;charset=gb2312" %>

<HTML>

<HEAD>

????<title>hello</title>

</HEAD>

?

<BODY>

????<%="<h1>Hello!<br>你好!</h1>"%>

</BODY>

</HTML>

3 tomcat 的安全管理

提供Realm支持,即將不同的應用賦給不同的用戶,沒有權限的用戶則不能訪問這個應用。Tomcat提供三種Realm:

JDBCRealm:用戶信息存在數據庫里,通過JDBC獲得用戶信息。

JNDIRealm:用戶信息存在LDAP的服務器里,通過JNDI獲取用戶信息。

MemoryRealm:用戶信息存在一個xml里,通過xml進行驗證。

4 tomcat apache 的集成

tomcat處理靜態HTML不如apache,所以用apache處理靜態HTML,用tomcat處理JSP、Servlet。

5 Tomcat 工作原理 -Servlet 容器

Servlet容器的作用就是負責處理客戶請求。客戶請求到來時,Servlet容器獲取請求,然后調用某個Servlet,并把Servlet的執行結果返回給客戶。

-ServletRequest ――>

客戶端

????????-ServletResponse――>

  • 獨立的Servlet容器-基于java的web服務器
  • 進程內的Servlet容器-作為進程內的Servlet容器,Servlet容器作為web服務器的插件和java容器(JVM)的實現。
  • 進程外的Servlet容器-作為進程外的Servlet容器,Servlet容器運行于Web服務器之外的地址空間,并且作為Web服務器的插件和java容器(JVM)的實現。插件和JVM使用IPC機制進行通信。

6 Tomcat 組織結構 -Server.xml

Tomcat是一個基于組件的服務器,最外層的組件是Catalina Servlet容器,其他的組件按照一定的格式配置在這個頂層容器中。其配置在conf/server.xml文件中:

<Server> 一個xml文件只能有一個Server,代表一個服務器

????<Service> 有一個Engine組件和多個Connector

<Connector/> 通信接口,通過此接口接收客戶的請求,然后發送給其他組件,最后把服務器的響應傳遞給客戶

<Connector/>

........

<Connector/>

????????<Engine>處理用戶請求并生成響應,可以有多個Host

????????????<Host>虛擬主機,可以有多個Context

????????????????<Context />web應用

????????????</Host>

????????</Engine>

????</Service>

</Server>

7 Tomcat web 應用

一個java web應用包含Servlet、JSP頁面、java類、靜態資源(HTML文檔、圖片等)、描述Web應用的描述文件。

Tomcat總結 ?

圖 多個Web應用時Tomcat服務的過程

如果不加任何修改,在一臺服務器上同時運行兩個Tomcat服務顯然會發生端口沖突。假設現在 已經按照正常的方式安裝配置好了第一個Tomcat,第二個如何設置呢? 以下是使用Tomcat6.0.16 解壓版本 所做的實驗。

解決辦法:

1.解壓Tomcat到一個新的目錄,比如d:\TomcatServer2;
2.新建一個環境變量CATALINA_HOME2,路徑為d:\TomcatServer2;
3.編輯Tomcat/bin/startup.bat和catalina.bat,把CATALINA_HOME全部替換成CATALINA_HOME2;
4.編輯Tomcat/conf/server.xml,將端口號8開頭都改為9開頭(其他端口只要不沖突即可),并修改默認編碼為utf-8(以支持中文鏈接)
?? ?示例:
?? ??? ???? <Connector port="9080" protocol="HTTP/1.1"
?????????????? connectionTimeout="20000"
?????????????? redirectPort="9443" URIEncoding='UTF-8'/>
?? ?=====================?? ??? ?
?? ??? ??? ?<Connector port="9009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="9443" URIEncoding='UTF-8'/>

5.運行測試。

8 war 文件格式

ROOT

|――/ html文件、jsp文件、圖片、樣式表等

|____WEB-INF該目錄下的所有文件都是不可訪問的

|――classes

|――lib

|____web.xml

?

為了部署方便,src存放java源代碼,js存放腳本文件,images存放圖片文件,css存放樣式表文件,web存放JSP和HTML文件

WEB-INF下的各種資源文件分開存放,properties存放屬性文件等。

9 web.xml

9.1 web應用圖標

<icon>

????<small-icon>/images/app small.gif</small-icon>

????<large-icon>/images/app large.gif</large-icon>

</icon>

9.2 web應用名稱

<display-name>Tomcat Manager Application</display-name>

9.3 web應用描述

<description>

A scriptable management web application for the Tomcat Web Server;

Manager lets you view, load/unload/etc particular web applications.

</description>

分布式屬性:Tomcat集群參數

<distributable/>

9.4 指定歡迎文件頁

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

9.5 網上摘錄部分

web.xml首先是肯定要包含它的schema.

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
??? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
??? xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
??? version="2.4">

</web-app>

其它的元素都放在<web-app></web-app>之中。

<discription></discription> 是對站臺的描述
<display-name></display-name> 定義站臺的名稱
<distributable/> 是指定該站臺是否可分布式處理

<context-param></context-param> 用來設定web站臺的環境參數,它包含兩個子元素:
??? <param-name></param-name> 用來指定參數的名稱
??? <param-value></param-value> 用來設定參數值

比如:
<context-param>
??? <param-name>my_param</param-name>
??? <param-value>hello</param-value>
</context-param>

在此設定的參數,可以在servlet中用 getServletContext().getInitParameter("my_param") 來取得

<filter></filter> 是用來聲明filter的相關設定,它包含以下子元素:
??? <filter-name></filter-name> 這當然就是指定filter的名字
??? <filter-class></filter-class> 這是用來定義filter的類的名稱
??? <init-param></init-param> 用來定義參數,它有兩個子元素:
??? ??? <param-name></param-name> 用來指定參數的名稱
?? ? ?? <param-value></param-value> 用來設定參數值
比如:
<filter>
??? ??? <filter-name>setCharacterEncoding</filter-name>
??? ??? <filter-class>com.myTest.setCharacterEncodingFilter</filter-class>
??? ??? <init-param>
??? ??? ??? <param-name>encoding</param-name>
??? ??? ??? <param-value>GB2312</param-value>
??? ??? </init-param>
</filter>

<filter></filter>同時使用的是<filter-mapping></filter-mapping> 用來定義filter所對應的URL,它有兩個子元素:
??? <filter-name></filter-name> 指定filter的名字
??? <url-pattern></url-pattern> 指定filter所對應的URL

比如:
<filter-mapping>
??? ??? <filter-name>setCharacterEncoding</filter-name>
??? ??? <url-pattern>/*</url-pattern>
</filter-mapping>


<listener></listener> 用來設定Listener接口,它的主要子元素為
??? <listener-class></listener-class> 定義Listener的類名稱

比如:
<listener>
??? <listener-class>com.myTest.ContextListener</listener-class>
</listener>


<servlet></servlet> 用來聲明一個servlet的數據,主要有以下子元素:
??? <servlet-name></servlet-name>
指定servlet的名稱
??? <servlet-class></servlet-class> 指定servlet的類名稱
??? <jsp-file></jsp-file> 指定web站臺中的某個JSP網頁的完整路徑
??? <init-param></init-param> 用來定義參數,和前面的<init-param>差不多

同樣,與 <servlet></servlet>一起使用的是<servlet-mapping></servlet-mapping> 用來定義servlet所對應的URL,包含兩個子元素:
??? <servlet-name></servlet-name>
指定servlet的名稱
??? <url-pattern></url-pattern> 指定servlet所對應的URL

比如:
<servlet>
??????? <servlet-name>ShoppingServlet</servlet-name>
??????? <servlet-class>com.myTest.ShoppingServlet</servlet-class>
</servlet>
???
<servlet-mapping>
??????? <servlet-name>ShoppingServlet</servlet-name>
??????? <url-pattern>/shop/ShoppingServlet</url-pattern>
</servlet-mapping>


<session-config></session-config> 用來定義web站臺中的session參數,包含一個子元素:
??? <session-timeout></session-timeout> 用來定義這個web站臺所有session的有效期限,單位為??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ????? 分鐘


<mime-mapping></mime-mapping> 定義某一個擴展名和某一個MIME Type做對映,包含兩個子元素:
??? <extension></extension> 擴展名的名稱
??? <mime-type></mime-type> MIME格式


比如:
<mime-mapping>
??? <extension>doc</extension>
??? <mime-type>application/vnd.ms-word</mime-type>
</mime-mapping>
<mime-mapping>
??? <extension>xls</extension>
??? <mime-type>application/vnd.ms-excel</mime-type>
</mime-mapping>


<welcome-file-list></welcom-file-list> 用來定義首頁的列單,包含一個子元素:
??? <welcome-file></welcome-file> 指定首頁的文件名稱


比如:
<welcome-file-list>
??? <welcome-file>index.jsp</welcome-file>
??? <welcome-file>index.html</welcome-file>
</welcom-file-list>


<error-page></error-page> 用來處理錯誤代碼或異常的頁面,有三個子元素:
??? <error-code></error-code> 指定錯誤代碼
??? <exception-type></exception-type> 指定一個JAVA異常類型
??? <location></location> 指定在web站臺內的相關資源路徑


比如:

<error-page>

<error-code>404</error-code>

?<location>/error404.jsp</location>

</error-page>

<error-page>

?<exception-type>java.lang.Exception</exception-type>

??<location>/exception.jsp</location>

</error-page>

?

<taglib></taglib> 用來設定JSP網頁所用到的Tag Library路徑,有兩個子元素:
??? <taglib-uri></taglib-uri> 定義TLD文件的URI,在JSP網頁中用taglib指令便可取得該URI的??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? TLD文件
??? <taglib-location></taglib-location> 指定TLD文件相對于web站臺的存放位置

比如:

<taglib>

? ??? <taglib-uri>myTaglib</taglib-uri>

? ??? <taglib-location>/WEB-INF/tlds/MyTaglib.tld</taglib-location>

</taglib>

此時JSP頁面可通過下面的形式使用標簽庫

<%@ taglib uri="/struts-html" prefix="html" %>

<html:text name="name" value="tomcat" />


<resource-ref></resource-ref> 定義利用JNDI取得站臺可利用的資源,有五個子元素:
??? <description></description> 資源說明
??? <rec-ref-name></rec-ref-name> 資源名稱
??? <res-type></res-type> 資源種類
??? <res-auth></res-auth> 資源經由Application或Container來許可
??? <res-sharing-scope></res-sharing-scope> 資源是否可以共享,有Shareable和Unshareable兩個??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ???? 值,默認為Shareable

比如,配置數據庫連接池就可在此配置:
<resource-ref>
??? ??? <description>JNDI JDBC DataSource of shop</description>
??? ??? <res-ref-name>jdbc/sample_db</res-ref-name>
??? ??? <res-type>javax.sql.DataSource</res-type>
??? ??? <res-auth>Container</res-auth>
</resource-ref>

10 中文編碼

  • <meta http-equiv="content-type" context="text/html;charset=gb2312">
  • <%@page language="java" contentType="text/html;charset=gb2312"%>
  • response.setCharacterEncoding("gb2312")
  • str=new String(username.getBytes("ISO-8859-1"),"gb2312")

Tomcat總結


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 手机看片国产免费久久网 | 99热久久这里只有精品 | 欧美视频一区二区三区 | 日韩在线欧美在线 | 色婷婷六月 | 91在线看 | 哪个网站能看毛片 | 久久久久国产一级毛片高清板 | 中文字幕伦理聚合第一页 | 精品国产日韩亚洲一区91 | 99在线视频免费 | 天天天天天天干 | 日本波多野结衣在线 | 一级啪啪片 | 欧美 日韩 中字 国产 | 久久久久久久久久鸭 | 亚洲国产欧美在线 | 俄罗斯一级毛片免费播放 | 久久免费高清视频 | 日韩亚洲精品不卡在线 | 欧美性禁片在线观看 | 美女天天干| 亚洲国产精品视频在线观看 | 国产真实乱子伦精品 | 另类综合网 | 天天射日日干 | 99免费看 | 久久精品播放 | 好吊妞人成免费视频观看 | 成年女人看片免费视频频 | 88精品视频 | 国内精品久久久久久西瓜色吧 | 国产精品青青青高清在线密亚 | 久久精品免视看国产陈冠希 | 精品四虎 | 国产成人综合亚洲欧美在 | 爱爱小视频在线观看网站 | 亚洲波多野结衣日韩在线 | 久久影视精品 | 亚洲欧美国产毛片在线 | 国产色在线视频 |