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

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

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

    隨筆-94  評論-56  文章-3  trackbacks-0

    什么是servlet ?

    一個 servlet 就是 Java 言中的一個 , 是用 Java 寫的 Server 端程序 . 客戶機提交 請求 到服務器 , 服務器中的 servlet 對請求進行處理 , 將處理的結果反饋回客戶機 ( 響應 客戶機的請求 ), 這就是 servlet - 程模型 中扮演的角色 , 它被用來 展服 器的性能 。服 留著可以通 - 程模型來 訪問 用程序。 servlet 可以 任何 型的 生響 ,但通常只用來 Web 用程序

    編寫并運行你的Servlet!
    當一個servlet已經寫好怎樣來運行測試呢?下面通過一個例子詳細的說說,這樣會有一個感性的把握。我用的運行環境是Tomcat5.0
    首先我們來寫一個最簡單的servlet: 命名為HelloServlet.java
    package?test;?
    import?java.io.*;
    import?javax.servlet.*;
    import?javax.servlet.http.*;

    public?class?HelloServlet?extends?HttpServlet{
    ?
    public?void?doGet(HttpServletRequest?request,HttpServletResponse?response)throws?ServletException,IOException{
    ?response.setContentType(
    "text/html;charset=UTF-8");
    ?response.setCharacterEncoding(
    "UTF-8");
    ?
    ?PrintWriter?out
    =response.getWriter();
    ?out.println(
    "<HTML>");
    ?out.println(
    "<BODY>");
    ?out.println(
    "<p>Hello!這是我的第一個Java?Servlet程序。</p>");
    ?out.println(
    "</BODY>");
    ?out.println(
    "</HTML>");
    ?}
    }

    把編譯好的HelloServlet.class文件放到\Tomcat文件夾\webapps\ourappfiles\WEB-INF\classes\test的文件夾下。

    接著編寫我們的web.xml文件。

    <?xml?version="1.0"?encoding="UTF-8"?>
    <!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>
    ?
    <servlet>
    ??
    <servlet-name>helloservlet</servlet-name>
    ??
    <servlet-class>test.HelloServlet</servlet-class>
    ?
    </servlet>
    ?
    <servlet-mapping>
    ??
    <servlet-name>helloservlet</servlet-name>
    ??
    <url-pattern>/Hello</url-pattern>
    ?
    </servlet-mapping>
    </web-app>

    把編寫好的web.xml文件放到\Tomcat文件夾\webapps\ourappfiles\WEB-INF下。
    好了,現在萬事俱備,就差啟動Tomcat運行我們的Servlet了。
    在IE地址欄中輸入http://localhost:8080/ourappfiles/Hello,就可以看到結果了。
    以上就是運行Servlet的幾個步驟。

    通過這個例子可以看出純粹的Servlet編程的缺點.所有的內容------甚至是基本的HTML格式------都必須由Servlet輸出,你不得不在Servlet中放置大量的print語句來結束,唯一的目的就是向用戶返回內容.另外,甚至最簡單的HTML格式變化都必須在JAVA源代碼中解決,這意味著非JAVA開發人員不能進行WEB站點的設計.

    為了克服上述缺點, JavaServer Pages(JSP)應運而生. JSP表面上看是"嵌入了Java 的HTML", 而實際上JSP是"嵌入了HTML的Java Servlet ". 要明白這一點,需要了解一下JSP是如何響應請求的.

    當瀏覽器向服務器請求一個JSP頁面(A.JSP)時, 源頁面(A.JSP)通過轉換器(在TOMCAT中,這個轉換器叫做Jasper)被轉換成一個Java類(如:A_jsp.java),該類繼承于org.apache.jasper.runtime.HttpJspBase基類,而HttpJspBase實現了HttpServlet接口。可見,JSP在運行前首先被編譯為一個Servlet, 這個Servlet對請求進行處理,將結果內容發送回客戶端.所以說, JSP是"嵌入了HTML的Java Servlet ", 其本質就是Servlet.

    如果將上面的servlet程序中的doGet方法寫成下面的樣子:

    public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)
    ????????????
    throws?ServletException,?IOException?{
    ????????response.setContentType(
    "application/vnd.ms-excel");
    ????????PrintWriter?out?
    =?response.getWriter();
    ????????out.println(
    "\tQ1\tQ2\tQ3\tQ4\tTotal");
    ????????out.println(
    "Apples\t78\t87\t92\t29\t=SUM(B2:E2)");
    ????????out.println(
    "Oranges\t77\t86\t93\t30\t=SUM(B3:E3)");
    ????}?

    運行后,就可以輸出一個excel文件啦!

    附: 對Content-type的詳細說明:
    Content-type?的說明?<?php

    $mimetypes?
    =?array(
    ????'ez'????????
    =>?'application/andrew-inset',
    ????'hqx'????????
    =>?'application/mac-binhex40',
    ????'cpt'????????
    =>?'application/mac-compactpro',
    ????'doc'????????
    =>?'application/msword',
    ????'bin'????????
    =>?'application/octet-stream',
    ????'dms'????????
    =>?'application/octet-stream',
    ????'lha'????????
    =>?'application/octet-stream',
    ????'lzh'????????
    =>?'application/octet-stream',
    ????'exe'????????
    =>?'application/octet-stream',
    ????'class'????????
    =>?'application/octet-stream',
    ????'so'????????
    =>?'application/octet-stream',
    ????'dll'????????
    =>?'application/octet-stream',
    ????'oda'????????
    =>?'application/oda',
    ????'pdf'????????
    =>?'application/pdf',
    ????'ai'????????
    =>?'application/postscript',
    ????'eps'????????
    =>?'application/postscript',
    ????'ps'????????
    =>?'application/postscript',
    ????'smi'????????
    =>?'application/smil',
    ????'smil'????????
    =>?'application/smil',
    ????'mif'????????
    =>?'application/vnd.mif',
    ????'xls'????????
    =>?'application/vnd.ms-excel',
    ????'ppt'????????
    =>?'application/vnd.ms-powerpoint',
    ????'wbxml'????????
    =>?'application/vnd.wap.wbxml',
    ????'wmlc'????????
    =>?'application/vnd.wap.wmlc',
    ????'wmlsc'????????
    =>?'application/vnd.wap.wmlscriptc',
    ????'bcpio'????????
    =>?'application/x-bcpio',
    ????'vcd'????????
    =>?'application/x-cdlink',
    ????'pgn'????????
    =>?'application/x-chess-pgn',
    ????'cpio'????????
    =>?'application/x-cpio',
    ????'csh'????????
    =>?'application/x-csh',
    ????'dcr'????????
    =>?'application/x-director',
    ????'dir'????????
    =>?'application/x-director',
    ????'dxr'????????
    =>?'application/x-director',
    ????'dvi'????????
    =>?'application/x-dvi',
    ????'spl'????????
    =>?'application/x-futuresplash',
    ????'gtar'????????
    =>?'application/x-gtar',
    ????'hdf'????????
    =>?'application/x-hdf',
    ????'js'????????
    =>?'application/x-javascript',
    ????'skp'????????
    =>?'application/x-koan',
    ????'skd'????????
    =>?'application/x-koan',
    ????'skt'????????
    =>?'application/x-koan',
    ????'skm'????????
    =>?'application/x-koan',
    ????'latex'????????
    =>?'application/x-latex',
    ????'nc'????????
    =>?'application/x-netcdf',
    ????'cdf'????????
    =>?'application/x-netcdf',
    ????'sh'????????
    =>?'application/x-sh',
    ????'shar'????????
    =>?'application/x-shar',
    ????'swf'????????
    =>?'application/x-shockwave-flash',
    ????'sit'????????
    =>?'application/x-stuffit',
    ????'sv4cpio'????
    =>?'application/x-sv4cpio',
    ????'sv4crc'????
    =>?'application/x-sv4crc',
    ????'tar'????????
    =>?'application/x-tar',
    ????'tcl'????????
    =>?'application/x-tcl',
    ????'tex'????????
    =>?'application/x-tex',
    ????'texinfo'????
    =>?'application/x-texinfo',
    ????'texi'????????
    =>?'application/x-texinfo',
    ????'t'????????????
    =>?'application/x-troff',
    ????'tr'????????
    =>?'application/x-troff',
    ????'roff'????????
    =>?'application/x-troff',
    ????'man'????????
    =>?'application/x-troff-man',
    ????'me'????????
    =>?'application/x-troff-me',
    ????'ms'????????
    =>?'application/x-troff-ms',
    ????'ustar'????????
    =>?'application/x-ustar',
    ????'src'????????
    =>?'application/x-wais-source',
    ????'xhtml'????????
    =>?'application/xhtml+xml',
    ????'xht'????????
    =>?'application/xhtml+xml',
    ????'zip'????????
    =>?'application/zip',
    ????'au'????????
    =>?'audio/basic',
    ????'snd'????????
    =>?'audio/basic',
    ????'mid'????????
    =>?'audio/midi',
    ????'midi'????????
    =>?'audio/midi',
    ????'kar'????????
    =>?'audio/midi',
    ????'mpga'????????
    =>?'audio/mpeg',
    ????'mp2'????????
    =>?'audio/mpeg',
    ????'mp3'????????
    =>?'audio/mpeg',
    ????'aif'????????
    =>?'audio/x-aiff',
    ????'aiff'????????
    =>?'audio/x-aiff',
    ????'aifc'????????
    =>?'audio/x-aiff',
    ????'m3u'????????
    =>?'audio/x-mpegurl',
    ????'ram'????????
    =>?'audio/x-pn-realaudio',
    ????'rm'????????
    =>?'audio/x-pn-realaudio',
    ????'rpm'????????
    =>?'audio/x-pn-realaudio-plugin',
    ????'ra'????????
    =>?'audio/x-realaudio',
    ????'wav'????????
    =>?'audio/x-wav',
    ????'pdb'????????
    =>?'chemical/x-pdb',
    ????'xyz'????????
    =>?'chemical/x-xyz',
    ????'bmp'????????
    =>?'image/bmp',
    ????'gif'????????
    =>?'image/gif',
    ????'ief'????????
    =>?'image/ief',
    ????'jpeg'????????
    =>?'image/jpeg',
    ????'jpg'????????
    =>?'image/jpeg',
    ????'jpe'????????
    =>?'image/jpeg',
    ????'png'????????
    =>?'image/png',
    ????'tiff'????????
    =>?'image/tiff',
    ????'tif'????????
    =>?'image/tiff',
    ????'djvu'????????
    =>?'image/vnd.djvu',
    ????'djv'????????
    =>?'image/vnd.djvu',
    ????'wbmp'????????
    =>?'image/vnd.wap.wbmp',
    ????'ras'????????
    =>?'image/x-cmu-raster',
    ????'pnm'????????
    =>?'image/x-portable-anymap',
    ????'pbm'????????
    =>?'image/x-portable-bitmap',
    ????'pgm'????????
    =>?'image/x-portable-graymap',
    ????'ppm'????????
    =>?'image/x-portable-pixmap',
    ????'rgb'????????
    =>?'image/x-rgb',
    ????'xbm'????????
    =>?'image/x-xbitmap',
    ????'xpm'????????
    =>?'image/x-xpixmap',
    ????'xwd'????????
    =>?'image/x-xwindowdump',
    ????'igs'????????
    =>?'model/iges',
    ????'iges'????????
    =>?'model/iges',
    ????'msh'????????
    =>?'model/mesh',
    ????'mesh'????????
    =>?'model/mesh',
    ????'silo'????????
    =>?'model/mesh',
    ????'wrl'????????
    =>?'model/vrml',
    ????'vrml'????????
    =>?'model/vrml',
    ????'css'????????
    =>?'text/css',
    ????'html'????????
    =>?'text/html',
    ????'htm'????????
    =>?'text/html',
    ????'asc'????????
    =>?'text/plain',
    ????'txt'????????
    =>?'text/plain',
    ????'rtx'????????
    =>?'text/richtext',
    ????'rtf'????????
    =>?'text/rtf',
    ????'sgml'????????
    =>?'text/sgml',
    ????'sgm'????????
    =>?'text/sgml',
    ????'tsv'????????
    =>?'text/tab-separated-values',
    ????'wml'????????
    =>?'text/vnd.wap.wml',
    ????'wmls'????????
    =>?'text/vnd.wap.wmlscript',
    ????'etx'????????
    =>?'text/x-setext',
    ????'xsl'????????
    =>?'text/xml',
    ????'xml'????????
    =>?'text/xml',
    ????'mpeg'????????
    =>?'video/mpeg',
    ????'mpg'????????
    =>?'video/mpeg',
    ????'mpe'????????
    =>?'video/mpeg',
    ????'qt'????????
    =>?'video/quicktime',
    ????'mov'????????
    =>?'video/quicktime',
    ????'mxu'????????
    =>?'video/vnd.mpegurl',
    ????'avi'????????
    =>?'video/x-msvideo',
    ????'movie'????????
    =>?'video/x-sgi-movie',
    ????'ice'????????
    =>?'x-conference/x-cooltalk',
    )
    ;?
    posted on 2006-07-03 13:40 小言身寸 閱讀(999) 評論(0)  編輯  收藏 所屬分類: JAVA相關技術
    主站蜘蛛池模板: 亚洲AV午夜福利精品一区二区| 日韩免费观看的一级毛片| 亚洲Av无码乱码在线观看性色| 亚洲依依成人精品| 67194成手机免费观看| 亚洲精品免费在线观看| 免费人成毛片动漫在线播放| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 日韩精品福利片午夜免费观着| 亚洲最大的视频网站| 精品国产污污免费网站aⅴ| 亚洲狠狠ady亚洲精品大秀| 国内免费高清在线观看| 亚洲熟妇AV一区二区三区浪潮| 国产美女被遭强高潮免费网站| 国产亚洲情侣久久精品| 亚洲日本韩国在线| 99视频在线观看免费| 亚洲AV人无码激艳猛片| 亚洲无砖砖区免费| 亚洲熟女www一区二区三区| 日本特黄特黄刺激大片免费| 黄色毛片免费网站| 国产亚洲成AV人片在线观黄桃| 2021精品国产品免费观看| 国产v亚洲v天堂a无| 亚洲 自拍 另类小说综合图区| 男女一边桶一边摸一边脱视频免费 | 无人在线观看免费高清视频| 亚洲国产成人无码AV在线 | 亚洲精品无码久久久久| 日韩免费无码一区二区三区| 亚洲免费福利在线视频| 人人狠狠综合久久亚洲高清| 国产麻豆成人传媒免费观看| 亚洲综合中文字幕无线码| 亚洲精品99久久久久中文字幕 | 亚洲AV无码日韩AV无码导航| 国语成本人片免费av无码 | 在线观看成人免费视频不卡| 亚洲Aⅴ在线无码播放毛片一线天|