新聞中心
JSP HTTP服務器對常規(guī)請求的支持

在科爾沁右翼中等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設計、成都網(wǎng)站制作 網(wǎng)站設計制作按需定制開發(fā),公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,成都品牌網(wǎng)站建設,網(wǎng)絡營銷推廣,外貿(mào)網(wǎng)站建設,科爾沁右翼中網(wǎng)站建設費用合理。
這里的常規(guī)請求是指請求的資源為文件類型,不需要進行解釋,編譯,執(zhí)行等處理。例如:文本文件(*.TXT),超文本文件(*.HTM,*.HTML),腳本文件(*.JS,*.VBS等),圖片文件(*.JPG,*.PNG,*.GIF,*.BMP)。
處理基于文件流的請求較為簡單。只需要讀取本地的文件資源,再發(fā)送給客戶端即可。
1.JSP HTTP服務器文件流請求的處理示例代碼
- //Create client socket output stream
- m_sout = new PrintWriter(m_s.getOutputStream(), true);
- m_soutx = null;
- m_sout.println("HTTP/1.0 200 OK\nMIME-Version:1.0\nContent-Type:text/html\n\n");
- File file = new File(fileName);
- if(file.exists() == true)
- {
- //Create local file input stream
- BufferedReader fin = new BufferedReader(new FileReader(file) );
- String line = null;
- String response = "";
- //Read file by lines
- while( (line = fin.readLine() ) != null)
- {
- responseresponse = response + line + "\n";
- }
- //Send the content to client socket
- m_sout.println(response);
- //Close local file handle
- fin.close();
- }
以上是處理基于文本流的請求,以下是處理基于二進制流的請求實例代碼。
2.JSP HTTP服務器二進制流文件的處理示例代碼
- //Create client socket output stream
- m_sm_soutx = m_s.getOutputStream();
- m_sout = null;
- String header = "HTTP/1.0 200 OK\nMIME-Version:1.0\n";
- //Send content to client socket
- m_soutx.write(header.getBytes() );
- String mime = "";
- //Get MIME by file type
- switch(typeFlag)
- {
- case TYPE_JPEG: //jpeg file
- {
- mime = "image/jpeg";
- break;
- }
- case TYPE_GIF: //gif file
- {
- mime = "image/gif";
- break;
- }
- case TYPE_BMP: //bmp file
- {
- mime = "image/bmp";
- break;
- }
- case TYPE_PNG: //png file
- {
- mime = "image/png";
- break;
- }
- }
- mime = "Content-Type:" + mime + "\n\n";
- m_soutx.write(mime.getBytes() );
- File file = new File(fileName);
- if(file.exists() == true) //Read image files and send to client socket
- {
- //Create local file input stream
- RandomAccessFile fin = new RandomAccessFile(fileName, "r");
- final long size = fin.length();
- byte [] buffer = new byte[(int)size];
- fin.readFully(buffer);
- fin.close();
- //Send data to client socket
- m_soutx.write(buffer);
- }
- //Close client socket output stream
- m_soutx.close();
從以上代碼可以看出,處理文本流和二進制流的請求的方式是不相同的,文本流的文件是按照行進行處理,而二進制流的文件是以批量讀取。
其中關(guān)鍵的是,對于不同的文件類型,發(fā)送數(shù)據(jù)給客戶端時必須指明服務器端應答的媒體類型,即MIME(Multipurpose Internet Mail Extensions),這樣應答給客戶端的資源才能被客戶端瀏覽器所識別,并調(diào)用相應的應用程序?qū)Y源進行讀取。
文件類型 擴展名 MIME
文本文件 .TXT text/plain
HTML(HyperText Markup Language)文件 .HTML,.HTM text/html
JPEG(Joint Photographic Experts Group)文件 .JPG,.JPEG image/jpeg
PNG(Portable Network Graphic Format)文件 .PNG image/png
BMP(Bitmap)文件 .BMP application/x-MS-bmp
GIF(Graphics Interchange Format)文件 .GIF image/gif
XML(EXtensible Markup Language)文件 .XML text/xml
常用類型文件的MIME
新聞標題:介紹JSPHTTP服務器實現(xiàn)的以下特性
URL網(wǎng)址:http://m.5511xx.com/article/djjjisp.html


咨詢
建站咨詢
