亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > JSP > 正文

Java 實(shí)現(xiàn) web服務(wù)器的簡(jiǎn)單實(shí)例

2024-09-05 00:23:09
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Java 實(shí)現(xiàn) web服務(wù)器的簡(jiǎn)單實(shí)例

實(shí)例代碼:

import java.util.*;  // Chapter 8, Listing 3 public class WebServerDemo {   // Directory of HTML pages and other files   protected String docroot;   // Port number of web server   protected int port;   // Socket for the web server   protected ServerSocket ss;    // Handler for a HTTP request   class Handler extends Thread {     protected Socket socket;     protected PrintWriter pw;     protected BufferedOutputStream bos;     protected BufferedReader br;     protected File docroot;      public Handler(Socket _socket, String _docroot) throws Exception {       socket = _socket;       // Get the absolute directory of the filepath       docroot = new File(_docroot).getCanonicalFile();     }      public void run() {       try {         // Prepare our readers and writers         br = new BufferedReader(new InputStreamReader(             socket.getInputStream()));         bos = new BufferedOutputStream(socket.getOutputStream());         pw = new PrintWriter(new OutputStreamWriter(bos));          // Read HTTP request from user (hopefully GET /file...... )         String line = br.readLine();          // Shutdown any further input         socket.shutdownInput();          if (line == null) {           socket.close();           return;         }         if (line.toUpperCase().startsWith("GET")) {           // Eliminate any trailing ? data, such as for a CGI GET           // request           StringTokenizer tokens = new StringTokenizer(line, " ?");           tokens.nextToken();           String req = tokens.nextToken();            // If a path character / or / is not present, add it to the           // document root           // and then add the file request, to form a full filename           String name;           if (req.startsWith("/") || req.startsWith("//"))             name = this.docroot + req;           else             name = this.docroot + File.separator + req;            // Get absolute file path           File file = new File(name).getCanonicalFile();            // Check to see if request doesn't start with our document           // root ....           if (!file.getAbsolutePath().startsWith(               this.docroot.getAbsolutePath())) {             pw.println("HTTP/1.0 403 Forbidden");             pw.println();           }           // ... if it's missing .....           else if (!file.exists()) {             pw.println("HTTP/1.0 404 File Not Found");             pw.println();           }           // ... if it can't be read for security reasons ....           else if (!file.canRead()) {             pw.println("HTTP/1.0 403 Forbidden");             pw.println();           }           // ... if its actually a directory, and not a file ....           else if (file.isDirectory()) {             sendDir(bos, pw, file, req);           }           // ... or if it's really a file           else {             sendFile(bos, pw, file.getAbsolutePath());           }         }         // If not a GET request, the server will not support it         else {           pw.println("HTTP/1.0 501 Not Implemented");           pw.println();         }          pw.flush();         bos.flush();       } catch (Exception e) {         e.printStackTrace();       }       try {         socket.close();       } catch (Exception e) {         e.printStackTrace();       }     }      protected void sendFile(BufferedOutputStream bos, PrintWriter pw,         String filename) throws Exception {       try {         java.io.BufferedInputStream bis = new java.io.BufferedInputStream(             new FileInputStream(filename));         byte[] data = new byte[10 * 1024];         int read = bis.read(data);          pw.println("HTTP/1.0 200 Okay");         pw.println();         pw.flush();         bos.flush();          while (read != -1) {           bos.write(data, 0, read);           read = bis.read(data);         }         bos.flush();       } catch (Exception e) {         pw.flush();         bos.flush();       }     }      protected void sendDir(BufferedOutputStream bos, PrintWriter pw,         File dir, String req) throws Exception {       try {         pw.println("HTTP/1.0 200 Okay");         pw.println();         pw.flush();          pw.print("<html><head><title>Directory of ");         pw.print(req);         pw.print("</title></head><body><h1>Directory of ");         pw.print(req);         pw.println("</h1><table border=/"0/">");          File[] contents = dir.listFiles();          for (int i = 0; i < contents.length; i++) {           pw.print("<tr>");           pw.print("<td><a href="/" rel="external nofollow" rel="external nofollow" mce_href="/" rel="external nofollow" rel="external nofollow" "");           pw.print(req);           pw.print(contents[i].getName());           if (contents[i].isDirectory())             pw.print("/");           pw.print("/">");           if (contents[i].isDirectory())             pw.print("Dir -> ");           pw.print(contents[i].getName());           pw.print("</a></td>");           pw.println("</tr>");         }         pw.println("</table></body></html>");         pw.flush();       } catch (Exception e) {         pw.flush();         bos.flush();       }     }   }    // Check that a filepath has been specified and a port number   protected void parseParams(String[] args) throws Exception {     switch (args.length) {     case 1:     case 0:       System.err.println("Syntax: <jvm> " + this.getClass().getName()           + " docroot port");       System.exit(0);      default:       this.docroot = args[0];       this.port = Integer.parseInt(args[1]);       break;     }   }    public WebServerDemo(String[] args) throws Exception {     System.out.println("Checking for paramters");      // Check for command line parameters     parseParams(args);      System.out.print("Starting web server...... ");      // Create a new server socket     this.ss = new ServerSocket(this.port);      System.out.println("OK");      for (;;) {       // Accept a new socket connection from our server socket       Socket accept = ss.accept();        // Start a new handler instance to process the request       new Handler(accept, docroot).start();     }   }    // Start an instance of the web server running   public static void main(String[] args) throws Exception {     WebServerDemo webServerDemo = new WebServerDemo(args);   } } 

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JSP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产69精品久久久久按摩| 九色视频网址| 日韩黄色免费电影| 国产精品色呦| 热99久久精品| 成人在线爆射| 乱亲女秽乱长久久久| 九九九久久久久久| 黄页网址大全在线观看| 超碰91在线播放| 国产ts在线观看| 成人性生活免费看| 日韩欧美三级在线观看| 蜜臀av在线播放一区二区三区| 欧美韩国理论所午夜片917电影| 国产黄a三级三级三级| 九九热线视频只有这里最精品| 中文字幕精品视频在线| 制服丝袜中文字幕亚洲| 成人免费观看网站| 一区二区三区欧美在线观看| 日本中文字幕中出在线| 一区二区三区影视| 同性gay免费| 999在线观看精品免费不卡网站| 粉嫩av性色av蜜臀av网站| 欧美日韩午夜视频在线观看| 日韩av网站在线免费观看| 精品成a人在线观看| 国产美女高潮视频| 精品无码av无码免费专区| 亚洲福利影片在线| 欧美激情图片小说| 国产三级欧美三级日产三级99| 国产精品原创视频| 久久97久久97精品免视看秋霞| 国产黄色美女视频| 一道精品视频一区二区三区图片| 成人精品鲁一区一区二区| 久久久精品免费免费| 国产成人免费在线观看| 日韩啊v在线| 中文字字幕在线中文乱码电影| 亚洲精品午夜视频| 日韩黄色短视频| 精品人妻一区二区色欲产成人| 激情六月丁香婷婷| 精品乱码一区二区三四区视频| 在线a视频网站| 国产精品99精品无码视亚| 中文字幕码精品视频网站| 亚洲激情二区| 四虎免费在线观看视频| 首播影院在线观看免费观看电视| 91麻豆桃色免费看| 欧美人与z0zoxxxx视频| 任你操视频在线观看| 亚洲欧美综合另类在线卡通| 欧美亚洲日本精品| 中文av一区二区三区| 亚洲欧洲av一区二区三区久久| 伊人伊成久久人综合网站| 日日日日影院| 伊人久久精品| 综合婷婷亚洲小说| 欧美另类极品videosbestfree| 精品美女一区二区| 亚洲偷熟乱区亚洲香蕉av| 再深点灬舒服灬太大了少妇| 91制片厂免费观看| 欧美人与性动交α欧美精品图片| 亚洲男子天堂网| 一区二区国产精品| 欧美亚洲激情在线| 刘亦菲毛片一区二区三区| 日本一级理论片在线大全| 亚洲国产日韩欧美在线图片| a级片在线视频| 中文在线播放一区二区| 97国产精品视频人人做人人爱| 污污的视频在线观看| 同心难改在线观看| 日韩不卡免费视频| 中文字幕一区二区在线视频| a级片在线观看| 欧美人乱大交xxxxx| 日本aaa视频| 北京富婆泄欲对白| 91精品久久久久久久久久久| 精品无码av一区二区三区| 亚洲高清黄色| 午夜精品久久久久久久无码| 99久久久久成人国产免费| 亚洲三级观看| 国产一级二级在线观看| 午夜xxxxx| 欧美精品一区在线| 亚洲色图25p| 欧美一区二区少妇| 午夜老司机精品| 日韩中文字幕影院| 亚洲精品免费播放| 免费一区二区三区在线观看| 日韩一级毛片| 一级日本不卡的影视| 国产乱子夫妻xx黑人xyx真爽| 一区二区三区美女视频| 亚洲成av人**亚洲成av**| 亚洲精品一区二区三区四区五区| 在线视频播放大全| 久久这里只有精品首页| 日本人妻丰满熟妇久久久久久| 在线观看麻豆| 中文字幕av第一页| 在线精品亚洲一区二区不卡| 一本久久知道综合久久| 免费精品99久久国产综合精品应用| 亚洲精品成人少妇| 天堂社区 天堂综合网 天堂资源最新版| 欧美日韩免费区域视频在线观看| 国产精品香蕉视屏| 两个人日本在线观看视频| 在线宅男视频| 四虎精品在线| 黄色成人在线网址| 亚洲国产精彩视频| 国产成人av一区二区三区在线| 日韩免费在线播放| 亚洲在线视频播放| 欧美一二三区在线观看| 国产福利第一视频在线播放| 九九视频精品在线观看| 日韩欧美成人精品| 岛国一区二区三区高清视频| 99精品99久久久久久宅男| h网站免费在线观看| 日本在线观看视频网站| 激情久久久久久久久久久久久久久久| 性生活视频软件| 国产乱色精品成人免费视频| 久久久综合久久| 日韩大片免费在线观看| 91成人综合网| 成人av在线观| 国产91绿帽单男绿奴| 国产精品亚洲综合色区韩国| 人妻av无码一区二区三区| 久久久久亚洲av无码专区体验| 亚洲一区二区三区欧美| www.桃色av嫩草.com| 久久99精品这里精品3| 国产成人精品无码片区在线| 五月综合激情婷婷六月色窝| 欧美激情15p| 中文字幕一区二区三区四区五区人| 精品国产一区二区三区四区| 999福利在线视频| 亚洲成人先锋电影| 国产在线观看不卡| 欧美日韩一级在线观看| 欧美日本精品一区二区三区| 中国a一片一级一片| 图片专区亚洲欧美另类| 在线影院自拍| 亚洲欧美一区二区三区久久| 亚洲一区二区三区无码久久| 国产福利91精品一区| 久久精品国产第一区二区三区| www在线视频| 国产剧情日韩欧美| 激情视频综合网| 少妇特黄一区二区三区| 天堂在线免费av| 亚洲乱码电影| h网站免费看| 欧日韩一区二区三区| 老司机精品福利视频| 97se亚洲国产综合自在线| 91精品国产高清自在线| 色欧美片视频在线观看在线视频| 成人免费网站黄| 欧美成人欧美edvon| 91国在线产| 日韩欧美一区二区三区四区五区| 中文精品久久久久人妻不卡| 日本韩国精品在线| 久久综合88中文色鬼| 99精品中文字幕在线不卡| 日韩国产精品一区二区三区| 99久久99久久久精品齐齐| 99精品视频免费版的特色功能| 亚洲影视资源| 国产精品无码久久av| 阿v天堂2014| 99精品视频网站| 黄网站app在线观看下载视频大全官网| 中文字幕不卡三区| 雨宫琴音一区二区三区| 岛国大片在线观看| 不卡av在线免费观看| 999一区二区三区| 69堂成人精品免费视频| 一区二区三区视频在线免费观看| 亚洲伊人色欲综合网| 亚洲影院中文字幕| 九九九久久久久久久| 欧美日韩极品在线观看一区| 国产一区二区三区探花| 欧美日韩另类视频| 亚洲精品国产福利| av在线播放一区二区三区| 日韩激情美女| 欧美日韩怡红院| 夫妇交换中文字幕| 亚洲一区二区三区在线免费观看| 欧美日韩久久久久久| 国产成人三级在线播放| 在线播放日韩欧美| 精品精品国产三级a∨在线| 亚洲二区视频| 一区二区三区四区精品| 中文字幕在线视频免费| 日韩欧美精品一区二区综合视频| 日韩成人久久| 日日日日人人人夜夜夜2017| 三级黄视频在线观看| 国产亚洲欧美一区二区| 日韩欧美亚洲一区二区| 日本免费无人高清| 成年人网站在线观看免费| 麻豆传媒在线免费看| 蜜桃免费在线视频| 国产亚洲欧美激情| 欧美日韩国内自拍| 欧洲亚洲一区二区三区| www国产视频| 被下部羞羞漫画| 久一区二区三区| 国产一级一片免费播放放a| 东方aⅴ免费观看久久av| 国产午夜久久久久| 久久久久久亚洲精品杨幂换脸| 人妻互换免费中文字幕| 日本一二三区不卡| 亚洲精品aaaa精品| 日产精品久久久一区二区福利| 一二三四社区欧美黄| 在线中文字幕网站| 无遮挡又色又刺激的女人视频| 精品久久福利| 亚洲成人资源| 国产女同互慰高潮91漫画| 日韩成人一级| 自拍偷拍欧美一区| 国产乱在线观看视频| 欧美在线观看日本一区| 日本国产在线视频| 性欧美疯狂xxxxbbbb| 一区二区三区不卡视频在线观看| 五月婷婷六月综合| www.99久久热国产日韩欧美.com| 91情侣在线视频| 欧美黑人又粗又大又爽免费| 国产电影一区二区三区| 免费91在线视频| 污污视频网站在线| 日韩一区三区| 国产亚洲精品成人| 亚洲第一免费网站| 欧美日韩欧美一区二区| 正在播放日韩欧美一页| 欧美一级二区| 亚洲福利视频网站| 国产精品久久久久久妇女6080| www99xav| 免费毛片在线播放免费| 亚洲精品国产免费| 欧美xxxx黑人又粗又长密月| 亚洲天堂777| 澳门av一区二区三区| 欧美一二三四五区| 久久综合亚洲色hezyo国产| 国产精品v欧美精品v日韩精品| 精品伊人久久久久7777人| 成人午夜无人区一区二区| 制服丝袜综合日韩欧美| 免费在线成人av电影| 久久成年人网站| 国产午夜性春猛交ⅹxxx| www.91香蕉视频| 亚洲一区免费观看| 国产一区欧美二区三区| 国产精品电影| 亚洲精品国产高清久久伦理二区| 欧美精品第一区| 不卡在线视频中文字幕| 久久综合偷偷噜噜噜色| 九九热精品视频在线观看| 国产一二三四区在线观看| 亚洲v国产v欧美v久久久久久| 久久久亚洲影院你懂的| 大白屁股一区二区视频| 一区二区三区蜜桃网| 国产精品腿扒开做爽爽爽挤奶网站| 探花视频在线观看| 日韩一区国产在线观看| 欧美在线999| 欧美一区二区三区免费观看视频| 亚洲一区图片| 国产精品一区二区黑丝| 香港经典三级在线| 精品毛片乱码1区2区3区| 久久激情五月丁香伊人| 在线观看免费网站| 香蕉视频一区二区| 午夜精品久久久久久久久久久久久蜜桃| 亚洲va天堂va国产va久| 被灌满精子的波多野结衣| 欧美人成免费网站| 欧美r级电影在线观看| 亚洲最新无码中文字幕久久| 亚洲精品一区av| 日韩精品免费在线| 欧美日韩成人影院| 国产在线观看免费播放| 香蕉视频免费在线播放| 中文字幕亚洲综合久久五月天色无吗''| 欧美性猛交xxxx乱大交极品|