怎麼用java開發伺服器
⑴ 如何用java做網站
java用來製作網站,一般是使用現成的框架,如下:
java可以用來做網站
java開發平台一般有三個版本:其中java ee 用來網站開發
* Java SE(Java Platform,Standard Edition)。Java SE 以前稱為 J2SE。它允許開發和部署在桌面、伺服器、嵌入式環境和實時環境中使用的 Java 應用程序。Java SE 包含了支持 Java Web 服務開發的類,並為 Java Platform,Enterprise Edition(Java EE)提供基礎。
* Java EE(Java Platform,Enterprise Edition)。這個版本以前稱為 J2EE。企業版本幫助開發和部署可移植、健壯、可伸縮且安全的伺服器端 Java 應用程序。Java EE 是在 Java SE 的基礎上構建的,它提供 Web 服務、組件模型、管理和通信 API,可以用來實現企業級的面向服務體系結構(service-oriented architecture,SOA)和 Web 2.0 應用程序。
* Java ME(Java Platform,Micro Edition)。這個版本以前稱為 J2ME。Java ME 為在移動設備和嵌入式設備(比如手機、PDA、電視機頂盒和列印機)上運行的應用程序提供一個健壯且靈活的環境。Java ME 包括靈活的用戶界面、健壯的安全模型、許多內置的網路協議以及對可以動態下載的連網和離線應用程序的豐富支持。基於 Java ME 規范的應用程序只需編寫一次,就可以用於許多設備,而且可以利用每個設備的本機功能。
⑵ 如何用java編寫一個應用伺服器
使用servletsocket 和socket 就可以 伺服器端是多線程 對每一個訪問的socket分配一個線程 就可以 不過要限制線程數量 否則伺服器會崩的
⑶ 江蘇北大青鳥:Java開發伺服器的線程怎麼處理
在進行伺服器處理的過程中,需要保證數據的正確處理,那麼最重要的就是使用不同的數據處理模式進行運算。
在整個過程中,可能很多人對伺服器的知識並不了解,那麼應該如何進行Java開發伺服器的線程處理呢,關於線程處理有哪些知識?下面江蘇北大青鳥為大家介紹關鍵伺服器線程處理的簡單知識。
1、BIO線程模型在JDK1.4中引入JavaNIO之前,所有基於Java的Socket通信都使用了同步阻塞模式(BIO)。
這種請求-響應通信模型簡化了上層的應用程序開發上,但在具有性能和可靠性的情況下,存在一個巨大的瓶頸。
在一段時間裡面,大型應用程序伺服器主要是用C或C++開發的,因為它們可以直接使用操作系統提供的非同步I/O或AIO功能。
當流量增加且響應時間延遲增加時,JavaBIO開發的伺服器軟體只能通過硬體的不斷擴展來滿足並發性和低延遲的情況,這極大地增加了企業的成本和群集大小。
系統的不斷擴展,系統的可維護性也面臨著巨大的挑戰,只能通過購買性能更高的硬體伺服器來解決問題,這將導致惡性循環的產生。
2、非同步非阻塞線程模型從JDK1.0到JDK1.3,Java的I/O類庫非常原始。
UNIX網路編程中的許多概念或介面未反映在I/O類庫中,例如Pipe、Channel、Buffer和Selector等。
在發布JDK1.4的時候,NIO正式發布JDK作為JSR-51。
並且它還添加了一個java.nio包,為非同步I/O開發提供了許多API和庫。
3、RPC性能三原則影響RPC的性能主要有三大元素,其中主要為I/O模型、協議及線程。
I/O模型:使用什麼樣的通道傳遞給另一方,BIO,NIO或AIO發送數據,IO模型在很大程度上能夠決定框架的性能。
協議:應該使用什麼樣的通信協議,Rest+JSON或基於TCP的專用二進制協議。
參加電腦培訓的過程中發現,協議的選擇不同,性能模型也不同。
內部專用二進制協議的性能通常可以比公共協議更好地設計。
線程:如何讀取數據報?在執行讀取後的編解碼器的哪個線程中,如何分發編碼消息,通信線程模型是不同的,並且對性能的影響也非常大。
⑷ 新手用Java怎麼做簡單後天安卓系統
使用J2EE技術或者叫JavaWeb技術開發一個Web伺服器,伺服器返回Json數據,android客戶端解析json數據,使用http協議和伺服器通信,android有相應模塊和API。首先樓主得懂Java後台也就是JavaEE,用Servlet搭建Web服務,Serlvet映射一個URL,Android請求這個URL,Servlet處理請求,然後就是Java編程,Web分層、JDBC等技術。伺服器返回標準的JSON輕量數據(就是純文本),Android來解析。
具體技術:(1)JavaServlet作為Web服務的處理入口;(2)Java編程編寫業務處理程序;(3)JDBC訪問資料庫;(4)Android端的HTTP模塊,API;(5)Android端解析JSON數據;(6)Servlet或者Java端生成JSON數據;
等樓主技術強了,就可以接觸各種框架、EJB技術了。Spring、SpringMVC、Struts、Hibernate,甚至NOSQL、分布式、負載、node.js、模板技術等等。
⑸ Java開發伺服器的線程處理方式
在進行伺服器處理的過程中,需要保證數據的正確處理,那麼最重要的就是使用不同的數據處理模式進行運算。在整個過程中,可能很多人對伺服器的知識並不了解,那麼應該如何進行Java開發伺服器的線程處理呢,關於線程處理有哪些知識?下面昆明北大青鳥為大家介紹關鍵伺服器線程處理的簡單知識。
1、BIO線程模型
在JDK1.4中引入JavaNIO之前,所有基於Java的Socket通信都使用了同步阻塞模式(BIO)。這種請求 - 響應通信模型簡化了上層的應用程序開發上,但在具有性能和可靠性的情況下,存在一個巨大的瓶頸。在一段時間裡面,大型應用程序伺服器主要是用C或C++開發的,因為它們可以直接使用操作系統提供的非同步I / O或AIO功能。
當流量增加且響應時間延遲增加時,JavaBIO開發的伺服器軟體只能通過硬體的不斷擴展來滿足並發性和低延遲的情況,這極大地增加了企業的成本和群集大小。系統的不斷擴展,系統的可維護性也面臨著巨大的挑戰,只能通過購買性能更高的硬體伺服器來解決問題,這將導致惡性循環的產生。
2、非同步非阻塞線程模型
從JDK1.0到JDK1.3,Java的I / O類庫非常原始。 UNIX網路編程中的許多概念或介面未反映在I / O類庫中,例如Pipe、Channel、Buffer和Selector等。在發布JDK1.4的時候,NIO正式發布JDK作為JSR-51。並且它還添加了一個java.nio包,為非同步I / O開發提供了許多API和庫。
3、RPC性能三原則
影響RPC的性能主要有三大元素,其中主要為I/O模型、協議及線程。
I/O模型:使用什麼樣的通道傳遞給另一方,BIO,NIO或AIO發送數據,IO模型在很大程度上能夠決定框架的性能。
協議:應該使用什麼樣的通信協議,Rest+JSON或基於TCP的專用二進制協議。參加電腦培訓的過程中發現,協議的選擇不同,性能模型也不同。內部專用二進制協議的性能通常可以比公共協議更好地設計。
線程:如何讀取數據報?在執行讀取後的編解碼器的哪個線程中,如何分發編碼消息,通信線程模型是不同的,並且對性能的影響也非常大。
⑹ 浙江北大青鳥:Java開發伺服器的線程怎麼處理
在進行伺服器處理的過程中,需要保證數據的正確處理,那麼最重要的就是使用不同的數據處理模式進行運算。
在整個過程中,可能很多人對伺服器的知識並不了解,那麼應該如何進行Java開發伺服器的線程處理呢,關於線程處理有哪些知識?下面浙江北大青鳥為大家介紹關鍵伺服器線程處理的簡單知識。
1、BIO線程模型在JDK1.4中引入JavaNIO之前,所有基於Java的Socket通信都使用了同步阻塞模式(BIO)。
這種請求-響應通信模型簡化了上層的應用程序開發上,但在具有性能和可靠性的情況下,存在一個巨大的瓶頸。
在一段時間裡面,大型應用程序伺服器主要是用C或C++開發的,因為它們可以直接使用操作系統提供的非同步I/O或AIO功能。
當流量增加且響應時間延遲增加時,JavaBIO開發的伺服器軟體只能通過硬體的不斷擴展來滿足並發性和低延遲的情況,這極大地增加了企業的成本和群集大小。
系統的不斷擴展,系統的可維護性也面臨著巨大的挑戰,只能通過購買性能更高的硬體伺服器來解決問題,這將導致惡性循環的產生。
2、非同步非阻塞線程模型從JDK1.0到JDK1.3,Java的I/O類庫非常原始。
UNIX網路編程中的許多概念或介面未反映在I/O類庫中,例如Pipe、Channel、Buffer和Selector等。
在發布JDK1.4的時候,NIO正式發布JDK作為JSR-51。
並且它還添加了一個java.nio包,為非同步I/O開發提供了許多API和庫。
3、RPC性能三原則影響RPC的性能主要有三大元素,其中主要為I/O模型、協議及線程。
I/O模型:使用什麼樣的通道傳遞給另一方,BIO,NIO或AIO發送數據,IO模型在很大程度上能夠決定框架的性能。
協議:應該使用什麼樣的通信協議,Rest+JSON或基於TCP的專用二進制協議。
參加電腦培訓的過程中發現,協議的選擇不同,性能模型也不同。
內部專用二進制協議的性能通常可以比公共協議更好地設計。
線程:如何讀取數據報?在執行讀取後的編解碼器的哪個線程中,如何分發編碼消息,通信線程模型是不同的,並且對性能的影響也非常大。
⑺ 山西北大青鳥:Java開發伺服器的線程怎麼處理
在進行伺服器處理的過程中,需要保證數據的正確處理,那麼最重要的就是使用不同的數據處理模式進行運算。
在整個過程中,可能很多人對伺服器的知識並不了解,那麼應該如何進行Java開發伺服器的線程處理呢,關於線程處理有哪些知識?下面山西北大青鳥為大家介紹關鍵伺服器線程處理的簡單知識。
1、BIO線程模型在JDK1.4中引入JavaNIO之前,所有基於Java的Socket通信都使用了同步阻塞模式(BIO)。
這種請求-響應通信模型簡化了上層的應用程序開發上,但在具有性能和可靠性的情況下,存在一個巨大的瓶頸。
在一段時間裡面,大型應用程序伺服器主要是用C或C++開發的,因為它們可以直接使用操作系統提供的非同步I/O或AIO功能。
當流量增加且響應時間延遲增加時,JavaBIO開發的伺服器軟體只能通過硬體的不斷擴展來滿足並發性和低延遲的情況,這極大地增加了企業的成本和群集大小。
系統的不斷擴展,系統的可維護性也面臨著巨大的挑戰,只能通過購買性能更高的硬體伺服器來解決問題,這將導致惡性循環的產生。
2、非同步非阻塞線程模型從JDK1.0到JDK1.3,Java的I/O類庫非常原始。
UNIX網路編程中的許多概念或介面未反映在I/O類庫中,例如Pipe、Channel、Buffer和Selector等。
在發布JDK1.4的時候,NIO正式發布JDK作為JSR-51。
並且它還添加了一個java.nio包,為非同步I/O開發提供了許多API和庫。
3、RPC性能三原則影響RPC的性能主要有三大元素,其中主要為I/O模型、協議及線程。
I/O模型:使用什麼樣的通道傳遞給另一方,BIO,NIO或AIO發送數據,IO模型在很大程度上能夠決定框架的性能。
協議:應該使用什麼樣的通信協議,Rest+JSON或基於TCP的專用二進制協議。
參加電腦培訓的過程中發現,協議的選擇不同,性能模型也不同。
內部專用二進制協議的性能通常可以比公共協議更好地設計。
線程:如何讀取數據報?在執行讀取後的編解碼器的哪個線程中,如何分發編碼消息,通信線程模型是不同的,並且對性能的影響也非常大。
⑻ 如何用Java實現Web伺服器
如何用Java實現Web伺服器 一、HTTP協議的作用原理
WWW是以Internet作為傳輸媒介的一個應用系統,WWW網上最基本的傳輸單位是Web網頁。WWW的工作基於客戶機/伺服器計算模型,由Web 瀏覽器(客戶機)和Web伺服器(伺服器)構成,兩者之間採用超文本傳送協議(HTTP)進行通信。HTTP協議是基於TCP/IP協議之上的協議,是Web瀏覽器和Web伺服器之間的應用層協議,是通用的、無狀態的、面向對象的協議。HTTP協議的作用原理包括四個步驟:
(1) 連接:Web瀏覽器與Web伺服器建立連接,打開一個稱為socket(套接字)的虛擬文件,此文件的建立標志著連接建立成功。
(2) 請求:Web瀏覽器通過socket向Web伺服器提交請求。HTTP的請求一般是GET或POST命令(POST用於FORM參數的傳遞)。GET命令的格式為:
GET 路徑/文件名 HTTP/1.0
文件名指出所訪問的文件,HTTP/1.0指出Web瀏覽器使用的HTTP版本。
(3) 應答:Web瀏覽器提交請求後,通過HTTP協議傳送給Web伺服器。Web伺服器接到後,進行事務處理,處理結果又通過HTTP傳回給Web瀏覽器,從而在Web瀏覽器上顯示出所請求的頁面。
例:假設客戶機與www.mycompany.com:8080/mydir/index.html建立了連接,就會發送GET命令:GET /mydir/index.html HTTP/1.0.主機名為www.mycompany.com的Web伺服器從它的文檔空間中搜索子目錄mydir的文件index.html.如果找到該文件,Web伺服器把該文件內容傳送給相應的Web瀏覽器。
為了告知 Web瀏覽器傳送內容的類型,Web伺服器首先傳送一些HTTP頭信息,然後傳送具體內容(即HTTP體信息),HTTP頭信息和HTTP體信息之間用一個空行分開。
常用的HTTP頭信息有:
① HTTP 1.0 200 OK
這是Web伺服器應答的第一行,列出伺服器正在運行的HTTP版本號和應答代碼。代碼「200 OK」表示請求完成。
② MIME_Version:1.0
它指示MIME類型的版本。
③ content_type:類型
這個頭信息非常重要,它指示HTTP體信息的MIME類型。如:content_type:text/html指示傳送的數據是HTML文檔。
④ content_length:長度值
它指示HTTP體信息的長度(位元組)。
(4) 關閉連接:當應答結束後,Web瀏覽器與Web伺服器必須斷開,以保證其它Web瀏覽器能夠與Web伺服器建立連接。
二、Java實現Web伺服器功能的程序設計
根據上述HTTP協議的作用原理,實現GET請求的Web伺服器程序的方法如下:
(1) 創建ServerSocket類對象,監聽埠8080.這是為了區別於HTTP的標准TCP/IP埠80而取的;
(2) 等待、接受客戶機連接到埠8080,得到與客戶機連接的socket;
(3) 創建與socket字相關聯的輸入流instream和輸出流outstream;
(4) 從與socket關聯的輸入流instream中讀取一行客戶機提交的請求信息,請求信息的格式為:GET 路徑/文件名 HTTP/1.0
(5) 從請求信息中獲取請求類型。如果請求類型是GET,則從請求信息中獲取所訪問的HTML文件名。沒有HTML文件名時,則以index.html作為文件名;
(6) 如果HTML文件存在,則打開HTML文件,把HTTP頭信息和HTML文件內容通過socket傳回給Web瀏覽器,然後關閉文件。否則發送錯誤信息給Web瀏覽器;
(7) 關閉與相應Web瀏覽器連接的socket字。
下面的程序是根據上述方法編寫的、可實現多線程的Web伺服器,以保證多個客戶機能同時與該Web伺服器連接。
程序1:WebServer.java文件
//WebServer.java 用JAVA編寫Web伺服器
import java.io.*;
import java.net.*;
public class WebServer {
public static void main(String args[]) {
int i=1, PORT=8080;
ServerSocket server=null;
Socket client=null;
try {
server=new ServerSocket(PORT);
System.out.println("Web Server is listening on port "+server.getLocalPort());
for (;;) {client=server.accept(); //接受客戶機的連接請求
new ConnectionThread(client,i)。start();
i++;
}
} catch (Exception e) {System.out.println(e);}
}
}
/* ConnnectionThread類完成與一個Web瀏覽器的通信 */
class ConnectionThread extends Thread {
Socket client; //連接Web瀏覽器的socket字
int counter; //計數器
public ConnectionThread(Socket cl,int c) {
client=cl;
counter=c;
}
public void run() //線程體
{try {
String destIP=client.getInetAddress()。toString(); //客戶機IP地址
int destport=client.getPort(); //客戶機埠號
System.out.println("Connection "+counter+":connected to "+destIP+" on port "+destport+".");
PrintStream outstream=new PrintStream(client.getOutputStream());
DataInputStream instream=new DataInputStream(client.getInputStream());
String inline=instream.readLine(); //讀取Web瀏覽器提交的請求信息
System.out.println("Received:"+inline);
if (getrequest(inline)) { //如果是GET請求
String filename=getfilename(inline);
File file=new File(filename);
if (file.exists()) { //若文件存在,則將文件送給Web瀏覽器
System.out.println(filename+" requested.");
outstream.println("HTTP/1.0 200 OK");
outstream.println("MIME_version:1.0");
outstream.println("Content_Type:text/html");
int len=(int)file.length();
outstream.println("Content_Length:"+len);
outstream.println("");
sendfile(outstream,file); //發送文件
outstream.flush();
} else { //文件不存在時
String notfound="
Error 404-file not found
";
outstream.println("HTTP/1.0 404 no found");
outstream.println("Content_Type:text/html");
outstream.println("Content_Length:"+notfound.length()+2);
outstream.println("");
outstream.println(notfound);
outstream.flush();
}
http://java.chinaitlab.com/advance/519981.html
⑼ 江西北大青鳥:Java開發伺服器的線程怎麼處理
在進行伺服器處理的過程中,需要保證數據的正確處理,那麼最重要的就是使用不同的數據處理模式進行運算。
在整個過程中,可能很多人對伺服器的知識並不了解,那麼應該如何進行Java開發伺服器的線程處理呢,關於線程處理有哪些知識?下面江西北大青鳥為大家介紹關鍵伺服器線程處理的簡單知識。
1、BIO線程模型在JDK1.4中引入JavaNIO之前,所有基於Java的Socket通信都使用了同步阻塞模式(BIO)。
這種請求-響應通信模型簡化了上層的應用程序開發上,但在具有性能和可靠性的情況下,存在一個巨大的瓶頸。
在一段時間裡面,大型應用程序伺服器主要是用C或C++開發的,因為它們可以直接使用操作系統提供的非同步I/O或AIO功能。
當流量增加且響應時間延遲增加時,JavaBIO開發的伺服器軟體只能通過硬體的不斷擴展來滿足並發性和低延遲的情況,這極大地增加了企業的成本和群集大小。
系統的不斷擴展,系統的可維護性也面臨著巨大的挑戰,只能通過購買性能更高的硬體伺服器來解決問題,這將導致惡性循環的產生。
2、非同步非阻塞線程模型從JDK1.0到JDK1.3,Java的I/O類庫非常原始。
UNIX網路編程中的許多概念或介面未反映在I/O類庫中,例如Pipe、Channel、Buffer和Selector等。
在發布JDK1.4的時候,NIO正式發布JDK作為JSR-51。
並且它還添加了一個java.nio包,為非同步I/O開發提供了許多API和庫。
3、RPC性能三原則影響RPC的性能主要有三大元素,其中主要為I/O模型、協議及線程。
I/O模型:使用什麼樣的通道傳遞給另一方,BIO,NIO或AIO發送數據,IO模型在很大程度上能夠決定框架的性能。
協議:應該使用什麼樣的通信協議,Rest+JSON或基於TCP的專用二進制協議。
參加電腦培訓的過程中發現,協議的選擇不同,性能模型也不同。
內部專用二進制協議的性能通常可以比公共協議更好地設計。
線程:如何讀取數據報?在執行讀取後的編解碼器的哪個線程中,如何分發編碼消息,通信線程模型是不同的,並且對性能的影響也非常大。