<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    andy_taoke
    大家一起來(lái)學(xué)JAVA
    posts - 9,comments - 3,trackbacks - 0
    中間件定義:
    中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源。中間件位于客戶機(jī)/ 服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通訊。
    中間件特點(diǎn):
    滿足大量應(yīng)用的需要 ;
    運(yùn)行于多種硬件和OS平臺(tái) ;
    支持分布式計(jì)算,提供跨網(wǎng)絡(luò)、硬件和OS平臺(tái)的透明性的應(yīng)用或服務(wù)的交互功能 ;
    支持標(biāo)準(zhǔn)的協(xié)議 ;
    支持標(biāo)準(zhǔn)的接口。
    中間件分類:
    分為數(shù)據(jù)訪問中間件、遠(yuǎn)程過程調(diào)用中間件、消息中間件、交易中間件、對(duì)象中間件等。
    posted @ 2006-03-23 23:23 Fusion KISS 閱讀(374) | 評(píng)論 (0)編輯 收藏
    上次看到處理HEAD請(qǐng)求,下面是關(guān)于Web應(yīng)用程序的配置問題。

    Web應(yīng)用程序是Servlet、JSP、HTML文檔、圖片、模版以及其他可在支持Servlet的Web服務(wù)器上部署的所有Web資源的一個(gè)集合。
    (這句話好長(zhǎng),總之就是你能在網(wǎng)上看到的東西,或者一些產(chǎn)生動(dòng)態(tài)Web頁(yè)的程序)。

    我們安裝了Tomcat就會(huì)知道,在webapps文件夾下面有很多的子文件夾,一個(gè)文件夾對(duì)應(yīng)一個(gè)應(yīng)用程序。他們是一堆的JSP程序以及配置文件。另外我們可以給他打包,成為一個(gè)存檔文件,擴(kuò)展名為:war。

    WEB-INF目錄
    每個(gè)Web Apps,都有一個(gè)這樣的目錄,有一個(gè)web.xml文件。

    現(xiàn)在對(duì)xml作一點(diǎn)學(xué)習(xí):
    XML是eXtensible Markup Language
    他與HTML類似,都是用標(biāo)簽標(biāo)記它的內(nèi)容,并用尖括號(hào)來(lái)結(jié)束;
    XML和HTML的服務(wù)目標(biāo)是不同的:XML文檔中的標(biāo)簽沒有定義文字的顯示格式,而是解釋了文本的意思。它是一個(gè)可擴(kuò)展的標(biāo)記語(yǔ)言,他可以定制一些新的標(biāo)簽來(lái)寫你自己需要的文檔。

    有幾個(gè)要注意的地方:
    1、XML區(qū)分大小寫(大小寫敏感)
    2、又開始的標(biāo)簽必須有結(jié)束(標(biāo)簽必須是一對(duì))要么就這么寫:<servlet/>,用來(lái)代替一對(duì)的符號(hào)
    3、嵌套的元素不可以重疊!例如這樣寫就是非法的<outside><inside></outside></inside>
    4、所有數(shù)值必須加上單引號(hào)或者雙引號(hào)

    配置描述符:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app>
        <servlet>
            <servlet-name>
                hi
            </servlet-name>
            <servlet-class>
                HelloWorld
            </servlet-class>
        </servlet>   
    </web-app>

    web-app標(biāo)簽表示這些是用來(lái)配置一個(gè)web應(yīng)用程序的,servletname是一個(gè)你所寫的servlet的名字,class是他的類名,可以寫成所屬包名+類名的形式,有些IDE可以自動(dòng)的生成。

    servlet映射
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app>
        <servlet>
            <servlet-name>
                hi
            </servlet-name>
            <servlet-class>
                HelloWorld
            </servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>
                hi
            </servlet-name>
            <url-pattern>
                /hello.html
            </url-patter>       
        </servlet-mapping>
    </web-app>
    servlet-mapping表示他來(lái)標(biāo)示servlet的映射信息,映射過后我們就可以用自己定義的地址來(lái)訪問他;
    其中有兩個(gè)子標(biāo)簽,一個(gè)是name,另一個(gè)是url-pattern。第一個(gè)不用說就是servlet里面定義的那個(gè)name;
    url-pattern指的是上面那個(gè)servlet-name所指定的servlet可以在瀏覽器中用什么樣的url訪問。

    設(shè)置有幾種:
    明確映射,就是一個(gè)地址,跟普通的相對(duì)路徑?jīng)]有什么區(qū)別。
    路徑前綴映射,/lite/*這樣子的url-pattern
    就是以/開頭,/*結(jié)尾,處理所有擁有該前綴的請(qǐng)求。這種映射機(jī)制,允許一個(gè)servlet來(lái)控制一個(gè)虛擬目錄層次的sevlet請(qǐng)求。
    擴(kuò)展名映像:
    *.jsp
    可以表示這個(gè)servlet用來(lái)處理所有的JSP請(qǐng)求。
    默認(rèn)映射,/
    如果沒有與之相匹配的servlet可以處理該請(qǐng)求,則將這個(gè)請(qǐng)求扔給這個(gè)servlet,等同于/*,要慎用!
    posted @ 2005-12-30 13:33 Fusion KISS 閱讀(596) | 評(píng)論 (1)編輯 收藏
    今天動(dòng)手實(shí)踐了一下寫Servlet的代碼,感覺不錯(cuò).現(xiàn)在寫些東西給大家分享一下:

    我們是用Servlet的API處理HTTP請(qǐng)求的,現(xiàn)在我給大家看一段代碼,它的作用就是在瀏覽器里面打出一行字,經(jīng)典的不能再經(jīng)典(你想說老土我也不反對(duì))就是,Hello,World
    package Chap2;

    import java.io.IOException;
    import java.io.PrintWriter;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class HelloWorld extends HttpServlet
    {
        // eclipse非要讓我加這句話,要么會(huì)有一個(gè)警告,我看對(duì)運(yùn)行沒有什么影響我就加了,不知道哪位高人知道怎么用這個(gè)東西
        private static final long serialVersionUID = 1L;

        // 這個(gè)方法可以處理GET的請(qǐng)求
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {

            // 設(shè)置一個(gè)Content-Type首部
            response.setContentType("text/html");
           
            // 這個(gè)東西就像你拿到了向客戶端瀏覽器寫字的一支筆
            PrintWriter out = response.getWriter();       
            // 現(xiàn)在可以往客戶端的瀏覽器寫HTML代碼了,想怎么寫就怎么寫,呵呵
            out.println( "<HTML>" );
            out.println( "<HEAD><TITLE>Hello World</TITLE></HEAD>" );
            out.println( "<BODY>" );
            out.println( "<BIG>Hello World</BIG>" );
            out.println( "</BODY></HTML>" );
        }
    }

    把這個(gè)東西發(fā)布到你的服務(wù)器下面,你就可以看到一行字:Hello,World.
    至于怎么配置服務(wù)器,近期我會(huì)給大家一份資料,里面詳細(xì)描述了配置JDK+Tomcat+Eclipse+MyEclipse的方法,這些軟件都可以到我的網(wǎng)站上去下載,鏈接在我的簽名里面!

    下面我們來(lái)點(diǎn)動(dòng)態(tài)的東西,做完了以后,學(xué)過JSP的人們會(huì)發(fā)現(xiàn),這個(gè)...不就是JSP么?
    對(duì)!JSP就是拿這個(gè)東西實(shí)現(xiàn)的,就如同Windows API和MFC的關(guān)系;相信如果你是個(gè)肯鉆研的主,早就不愿意學(xué)MFC那個(gè)把你規(guī)定的死死的東西了吧.
    第二個(gè)例子:
    package Chap2;

    import java.io.IOException;
    import java.io.PrintWriter;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class Exp2 extends HttpServlet
    {
        private static final long serialVersionUID = 1L;

        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {

            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
           
            String name = request.getParameter( "name" );
            out.println( "<HTML>" );
            out.println( "<HEAD>" );
            out.println( "<TITLE>Hello " + name + ".</TITLE>" );
            out.println( "</HEAD>" );
            out.println( "<BODY>" );
            out.println( "Hello, " + name + "." );
            out.println( "</BODY>" );
            out.println( "</HTML>" );
        }
       
        public String getServletInfo()
        {
            return "A servlet that knows the name of the person to whom it's saying hello";
        }
    }
    這個(gè)Servlet可以接受一個(gè)name的參數(shù),當(dāng)然你可以新建一個(gè)頁(yè)面來(lái)讓用戶來(lái)提交這個(gè)參數(shù).
    我給大家一個(gè)
    <HTML>
        <HEAD>
            <TITLE>Introductions</TITLE>
        </HEAD>
       
        <BODY>
            Exp2
            <FORM METHOD=GET ACTION="servlet/Exp2"> If you don't mind me asking, what is your name?
                <INPUT TYPE=TEXT NAME="name"></P>
                <INPUT TYPE=SUBMIT>
            </FORM>
        </BODY>
    </HTML>
    純粹的HTML代碼,簡(jiǎn)單的不能再簡(jiǎn)單,根據(jù)你服務(wù)器配置的不同和Servlet存放的地方的不同,你要看你的FORM標(biāo)簽上面那個(gè)ACTION屬性該怎么填!

    Exp2那個(gè)Servlet就是接受了一個(gè)name的變量,然后叫一下你的名字,問候你下你呵呵.

    但是有時(shí)候用戶會(huì)發(fā)出一個(gè)HEAD請(qǐng)求(客戶端只想看到響應(yīng)的首部時(shí)發(fā)出的請(qǐng)求),這個(gè)東西可能會(huì)讓你很煩,你心里會(huì)說這些人就會(huì)給我搗亂,發(fā)什么HEAD請(qǐng)求啊!確實(shí)這個(gè)東西看上去微不足道,也沒有doHead()的方法可以使用.任何有子類HttpServlet和實(shí)現(xiàn)了doGet方法的servlet都支持HEAD請(qǐng)求.

    現(xiàn)在我們看一下處理HEAD請(qǐng)求的工作過程:
    HttpServlet的service()方法確定HEAD請(qǐng)求并把它特殊對(duì)待。它構(gòu)建一個(gè)修改過的HttpServletResponse對(duì)象,并把它和原來(lái)的請(qǐng)求一起發(fā)給doGet方法(你知道了,我們要在doGet那個(gè)東西里面做文章!)。很高興地告訴你,如果是一個(gè)HEAD請(qǐng)求,系統(tǒng)可以為我們自動(dòng)屏蔽后面的輸出,但是如果讓我們來(lái)做一個(gè)判斷,你可以提高你的程序性能,也能加深我們對(duì)這個(gè)Servlet的了解。

    我們要在Exp2的doGet()方法中加一句話:
    if( request.getMethod().equals( "HEAD" ) ) return;
    通過request這個(gè)對(duì)象我們可以看到客戶端的請(qǐng)求類型,如果這個(gè)字符串時(shí)HEAD,哈哈,干掉他!

    但是,即使我們只是處理一個(gè)HEAD請(qǐng)求,我們也要設(shè)置Content-Type首部。
    posted @ 2005-12-30 13:32 Fusion KISS 閱讀(423) | 評(píng)論 (0)編輯 收藏
    HTTP servlet基礎(chǔ)
    內(nèi)容:編寫和運(yùn)行一個(gè)簡(jiǎn)單的HTTP servlet
    包括如何在一個(gè)標(biāo)準(zhǔn)的Web應(yīng)用程序上預(yù)見性servlet及其基于XML的配置描述

    HTTP基礎(chǔ)
    重點(diǎn):GET POST方法

    HTTP是一個(gè)簡(jiǎn)單的、無(wú)狀態(tài)的協(xié)議。

    在訪問一個(gè)Web服務(wù)的時(shí)候(方法就是填入一個(gè)URL加以訪問),瀏覽器會(huì)發(fā)出一個(gè)請(qǐng)求,類似于ftp里面的各種命令,這種請(qǐng)求要指定一個(gè)HTTP請(qǐng)求的名稱、URL、HTTP協(xié)議的版本;
    例子:GET /intro.html HTTP/1.0
    這個(gè)命令使用了GET方法向一個(gè)名為intro.html的文檔提出請(qǐng)求,用的是1.0版本的HTTP協(xié)議。

    之后,瀏覽器發(fā)送一個(gè)選擇性的首部信息告知服務(wù)器關(guān)于請(qǐng)求的附加信息,注意,這些信息不直接和你所要請(qǐng)求的那個(gè)URL有關(guān),而是可以對(duì)服務(wù)器的響應(yīng)有一點(diǎn)幫助。
    例子:
    User-Agent: Mozilla/4.0 (compatible; MSIE 4.0; Windows 95)
    Accept: image/gif, image/jpeg, text/*, */*
    User-Agent說明了客戶端軟件的信息
    Accept說明了客戶端愿意接受的media(MIME)類型的數(shù)據(jù);

    發(fā)送了附加信息,客戶端發(fā)送一個(gè)空行給服務(wù)器,表示已經(jīng)完成。

    下面該服務(wù)器響應(yīng)了,響應(yīng)的第一行是用來(lái)指服務(wù)器所用的HTTP/1.0 200 OK
    200-是正常的提示
    還有一個(gè)我們比較常見的狀態(tài)碼:
    404-找不到

    發(fā)送了狀態(tài)條后,服務(wù)器發(fā)送響應(yīng)首部,用來(lái)告訴客戶端,服務(wù)器使用的軟件和響應(yīng)內(nèi)容類型的信息。

    GET和POST
    前面提到過,發(fā)送請(qǐng)求的時(shí)候有一個(gè)叫做HTTP請(qǐng)求的東西(也叫做方法),最最常用的就是GET和POST了.
    看名字就知道:
    GET:取得信息的方法;說白了就是讀取
    POST:用來(lái)發(fā)送信息;就像在版上灌水一個(gè)道理

    GET方法(用來(lái)讀數(shù)據(jù),地球人都知道了現(xiàn)在),請(qǐng)求中可以加入一些自身信息來(lái)更好地描述需求.比如在URL中顯式地發(fā)送一個(gè)信息給一個(gè)頁(yè)面;

    POST方法,如果要上傳一個(gè)東西,你可能要傳輸一個(gè)上M的文件,所以它用不同的技術(shù)來(lái)向服務(wù)器發(fā)送信息.一個(gè)POST請(qǐng)求把它的不限長(zhǎng)度的數(shù)據(jù)作為HTTP請(qǐng)求體的一步分.通常通過Socket發(fā)送出去.傳送對(duì)用戶是不可見的(想象一下,如果你的信用卡號(hào)傳給銀行的時(shí)候?qū)τ脩艨梢?你的錢恐怕早就沒有了.呵呵
    posted @ 2005-12-30 13:26 Fusion KISS 閱讀(385) | 評(píng)論 (0)編輯 收藏
    與Java一樣,servlet主要設(shè)計(jì)思想是可移植性。Servlet可用于所有支持Java的平臺(tái),以及所有主流服務(wù)器。
    包含在java.servlet包里面;
    想要用servlet弄出一點(diǎn)不同尋常的東西,我們除了servlet代碼以外,最重要的是一個(gè)servlet runner(servlet容器)。
    Tomcat是一個(gè)經(jīng)過Sun認(rèn)可的按照servlet標(biāo)準(zhǔn)參考實(shí)現(xiàn)的一個(gè)比較優(yōu)秀的servlet容器。
    現(xiàn)在版本已經(jīng)出到了5.5.12

    servlet是java技術(shù)的副產(chǎn)品,所以也具有java的優(yōu)點(diǎn)(當(dāng)然,JSP也繼承了這些優(yōu)點(diǎn))
    一提到Java,大家都知道它的可移植性造就了它今天的普及和發(fā)達(dá)程度。當(dāng)然,servlet的優(yōu)點(diǎn)還有很多:可移植性、功能強(qiáng)大(說的跟廢話似的)、高效、耐久、安全、簡(jiǎn)潔、集成化、可擴(kuò)展性、靈活性…………
    posted @ 2005-12-28 12:41 Fusion KISS 閱讀(476) | 評(píng)論 (0)編輯 收藏
    我還沒有找到具體的例子,不知道哪位達(dá)人知道~~~
    posted @ 2005-12-20 22:27 Fusion KISS 閱讀(1106) | 評(píng)論 (2)編輯 收藏
    今天終于成功地用IDE發(fā)布了一個(gè)簡(jiǎn)單的JSP應(yīng)用,哈哈。好高興,網(wǎng)絡(luò)編程的課程設(shè)計(jì)有指望了。
    晚上把具體的配置過程貼上來(lái),然后~~~~周六就可以在興趣小組講課了,呵呵~~~
    posted @ 2005-12-19 17:59 Fusion KISS 閱讀(804) | 評(píng)論 (0)編輯 收藏
    以前也知道要改配置文件~~今天看了一個(gè)帖子~~覺得這個(gè)答案比較好。


    轉(zhuǎn)自:cjsdn

     怎么在Tomcat里發(fā)布自己的程序?
    http://www.china***net 作者:aile 發(fā)表于:2003-06-11 22:24:30

    我剛開始學(xué)JSP,用WINXP+Tomcat4.1.24,在webapps目錄下建立一個(gè)新目錄myjsp,把自己寫的jsp程序test.jsp放在里面,可是用http://localhost:8080/myjsp/test.jsp
    無(wú)法運(yùn)行(The requested resource (/begjsp-ch01/index.jsp) is not available)把它放在ROOT里用http://localhost:8080/test.jsp運(yùn)行正常,
    我應(yīng)該怎么做?



    【發(fā)表回復(fù)】【查看CU論壇原帖】【關(guān)閉】

    --------------------------------------------------------------------------------
    kpflysky 回復(fù)于:2003-06-12 08:38:32
    同意
    你主要是server.xml里面的映射沒有弄清楚
    默認(rèn)的根目錄是ROOT
    所以你放到ROOT里就可以了



    --------------------------------------------------------------------------------
    badseed 回復(fù)于:2003-06-11 23:51:25
    你有沒有寫web.xml
    研究一下 webapps/examples/WEB-INF目錄下的文件和目錄結(jié)構(gòu)
    ,再看看 web.xml的寫法



    --------------------------------------------------------------------------------
    zhangv 回復(fù)于:2003-06-12 21:06:14
    找到%tomcathome%\conf\server.xml文件,在<host>標(biāo)簽中加入:

    <Context path="/虛擬目錄名" docBase="本地路徑" debug="0"
    reloadable="true" crossContext="true">
    </Context>
    這樣將你的jsp文件放到"本地路徑"下,然后在瀏覽器中輸入http://127.0.0.1:8080/虛擬目錄名/xxx.jsp即可執(zhí)行.
    注意!!!還沒有完!!這時(shí)候你的這個(gè)虛擬目錄還沒有執(zhí)行servlet的能力(當(dāng)然如果你不用servlet那就令當(dāng)別論了).
    下面是一個(gè)范例:

    <Context path="/bbs" docBase="work" debug="0"
    reloadable="true" crossContext="true">
    </Context>
    你要建一個(gè)名叫work的目錄在webapps\下
    要使這個(gè)work目錄可以執(zhí)行servlet,要有一個(gè)配置文件--web.xml,內(nèi)容為:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    <display-name>MyWEB</display-name>
    <servlet-mapping>
    <servlet-name>invoker</servlet-name>
    <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>
    </web-app>

    這個(gè)使最小配置,僅僅是指明servlet的位置.要把這個(gè)文件放到webapps\work\WEB-INF\下,你自己的servlet放到webapps\work\WEB-INF\classes\下.

    手酸~^_^
    posted @ 2005-12-18 21:58 Fusion KISS 閱讀(429) | 評(píng)論 (0)編輯 收藏
    我來(lái)自國(guó)防科技大學(xué),現(xiàn)在是一名大三的學(xué)生。希望大家一起和我來(lái)交流JSP和有關(guān)UML結(jié)合Java的技術(shù)。
    posted @ 2005-12-18 11:29 Fusion KISS 閱讀(209) | 評(píng)論 (0)編輯 收藏
    僅列出標(biāo)題  
    主站蜘蛛池模板: 亚洲成人动漫在线观看| 亚洲第一黄色网址| 久久亚洲AV成人出白浆无码国产| 国产精品免费大片一区二区| 亚洲国产综合人成综合网站| 亚洲自偷自偷偷色无码中文| 久久精品蜜芽亚洲国产AV| 成人无码a级毛片免费| 亚洲精品无码av人在线观看| 国产一精品一av一免费爽爽 | 国产成人免费高清激情视频| 亚洲AV无码不卡在线观看下载| MM1313亚洲精品无码久久| 国产又大又粗又硬又长免费| 色窝窝亚洲AV网在线观看| 亚洲乱码国产一区网址| 不卡视频免费在线观看| 老汉色老汉首页a亚洲| 永久免费AV无码国产网站| 亚洲av成人片在线观看| 亚洲成人影院在线观看| a毛片久久免费观看| 亚洲欧洲日本国产| 在线观看免费毛片| 一区二区三区免费看| 久久亚洲精品中文字幕三区| 日本h在线精品免费观看| 亚洲AV无码一区二区三区网址| 国产亚洲午夜高清国产拍精品| 国产精成人品日日拍夜夜免费 | 午夜dj免费在线观看| 一道本不卡免费视频| 久久亚洲AV无码精品色午夜| 国产精品免费αv视频| 亚洲AV第一页国产精品| 无码AV动漫精品一区二区免费 | 成人免费777777| 黄 色一级 成 人网站免费| 亚洲最大在线视频| 亚洲女同成人AⅤ人片在线观看| 最近中文字幕完整免费视频ww|