當前位置:首頁 » 網頁前端 » 設計webserver
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

設計webserver

發布時間: 2023-01-20 23:37:48

① 設計WEB站點的一般步驟

(1)對Web站點作出具體的規劃
(2)准備Web站點的素材
(3)創建 Web站點和製作網頁
(4)測試Web站點
(5)發布Web站點
(6)宣傳自己的Web站點
(7)對Web站點進行維護和更新

② 如何用C#編制一個WEB SERVER C#

新建->
項目->
asp.net
web
服務
點擊項目右鍵->
添加->
添加Web服務
在Web服務方法前加上[WebMethod]即可以向外發布!

③ java構建最簡單的 Web Server

安裝一個tomcat就完事了…………
weblogic;websphere
類似
調用Hello JAVA頁面,嘿嘿
網上到處都是,偏你們老師跳神把要求寫得這么古里古怪,太學術了。

④ net怎麼寫一個webserver

言間的相互調用,通過Internet進行基於Http協議的網路應用間的交互。
作用:主要用於數據交換、提供服務介面
優點:可跨平台、部署簡單調用方便、無需額外客戶端支持
一、創建一個WebService服務
1.創建一個普通的Asp.Net Web應用程序,名稱為WebServiceDemo
2.在剛創建的web程序

⑤ 我想用java寫一個簡單的web server,應該怎麼寫呀

我原來寫過一個很簡單的,可以指定你存放網頁的文件夾,可以指定允許訪問的IP,給你源碼看看吧。public class WebServer {
static Button btReloadIP=new Button("更新合法IP列表");
static Button btAllow=new Button("允許此IP");
static Button btRepel=new Button("拒絕此IP");
static JTextField tfNewIP=new JTextField(20);
static JPanel pane=new JPanel();
static JTextField tfState=new JTextField(25);
static TextField tfURL=new TextField("G:\\webServer2\\",28);
static TextField tfPort=new TextField("10288",3);
static Button btStart=new Button("啟動伺服器");
static Button btStop=new Button("停止伺服器");
private static int IPnum=0;
public static boolean IPadmin=false;
static boolean click=false;
private static String url;
private static String[] checkIP=new String[255];
private static Thread serverThread=null;
private static Socket connectionSocket=null;
private static ServerSocket listenSocket=null;
public WebServer() throws IOException{
serverThread=new Thread(new Runnable(){
public void run(){
try {
listenSocket = new ServerSocket(Integer.parseInt(tfPort.getText()));
} catch (IOException e) { }
while(true){
try {
connectionSocket=listenSocket.accept();
@SuppressWarnings("unused")
webClient client=new webClient(connectionSocket);
} catch (IOException e) {
}
}
}
});
}
public static void main(String args[])throws Exception{
GUI();
}
public static void GUI(){
JFrame f=new JFrame("小白兔Web伺服器(BY 丁尋)");
f.setSize(300,200);
f.setLocation(500, 300);
f.getContentPane().add(pane,BorderLayout.CENTER);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
//不可以變大變小
f.setResizable(false);
pane.add(new JLabel("埠號:"));
pane.add(tfPort);
pane.add(btStart);
pane.add(btStop);
pane.add(new JLabel("配置路徑"));
pane.add(tfURL);
pane.add(tfState);
pane.add(new JLabel("新IP請求"));
pane.add(tfNewIP);
pane.add(btAllow);
pane.add(btRepel);
pane.add(btReloadIP); btStart.addActionListener(new Listener());
btStop.addActionListener(new Listener());
btAllow.addActionListener(new Listener());
btRepel.addActionListener(new Listener());
btReloadIP.addActionListener(new Listener());

}
static class Listener implements ActionListener {
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent event) {
if(event.getActionCommand()=="啟動伺服器"){
try {
url=tfURL.getText();
readIP();
tfState.setText("伺服器已經啟動......地址:"
+InetAddress.getLocalHost().toString());
} catch (Exception e) {
e.printStackTrace();
} try {
new WebServer();
} catch (IOException e) {
e.printStackTrace();
} serverThread.start(); btStart.setEnabled(false);
tfPort.setEditable(false);
btStop.setEnabled(true);
tfURL.setEditable(false);
btReloadIP.setEnabled(true);
}
if(event.getActionCommand()=="停止伺服器"){
serverThread.stop();
tfState.setText("伺服器已經停止");
btStart.setEnabled(true);
tfPort.setEditable(true);
btStop.setEnabled(false);
tfURL.setEditable(true);
btReloadIP.setEnabled(false);
}
if(event.getActionCommand()=="允許此IP"){
IPadmin=true;
//serverThread.start();
click=true;
btAllow.setEnabled(false);
btRepel.setEnabled(false);
tfNewIP.setText(null);
}
if(event.getActionCommand()=="拒絕此IP"){
click=true;
IPadmin=false;
//serverThread.start();
btAllow.setEnabled(false);
btRepel.setEnabled(false);
tfNewIP.setText(null);
}
if(event.getActionCommand()=="更新合法IP列表"){
try {
readIP();
} catch (IOException e) {
// e.printStackTrace();
}
}
}
}

public static void readIP() throws IOException{
int i=0;
byte[] ips = new byte[65535];
File IPfile=new File(url+"checkIP.txt");
FileInputStream fileReader=new FileInputStream(IPfile);
fileReader.read(ips);
fileReader.close();
String strip=new String(ips);
StringTokenizer getIP=new StringTokenizer(strip,System.getProperty("line.separator"));

for(;;){
if(getIP.hasMoreTokens()){
checkIP[i]=getIP.nextToken();
System.out.println(checkIP[i]);
i++;
}
else{break;}
}
IPnum=i;

}
public static void disconnect(webClient c){

try {
//c.stop();
c.socket.close();
c.socket=null;
c=null; } catch (IOException e) {
e.printStackTrace();
}
//
}
class webClient extends Thread{
boolean check=true;
boolean send=false;
Socket socket;
BufferedReader inFromClient=null;
DataOutputStream outToClient=null;
String fileName;
String requestMessageLine;
StringTokenizer tokenizedLine=null;
FileInputStream inFile=null;
byte[] fileInBytes=null;
int numOfBytes=0;
File afile=new File(url+"log.html");
byte[] b;
public webClient(Socket s) throws IOException{
FileOutputStream out=new FileOutputStream(afile,true);
StringBuffer str=new StringBuffer();
SimpleDateFormat formatter=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String time=formatter.format(new Date());
socket=s;
str.append(time+" Client_IP:"+socket.getInetAddress().toString()+
" Client_Port:"+socket.getPort()+"<br>"+
System.getProperty("line.separator")
);
b=(new String(str)).getBytes();
System.err.println(new String(str));
out.write(b);
out.close();
inFromClient=new BufferedReader(new
InputStreamReader(socket.getInputStream()));
outToClient=new DataOutputStream(socket.getOutputStream());
if(!checkIP(socket)){
String strWait="<html>" +
"<title>等待驗證</title>" +
"<body>正在等待管理員驗證您的IP是否合法,請稍候......<br><br>" +
"(如果頁面沒有自動跳轉,請每5秒鍾刷新一次," +
"以判斷管理員是否已經允許您進入)</body>" +
"</html>";
byte[] waiting=strWait.getBytes();
outToClient.writeBytes("HTTP/1.1 200 Document Follows\r\n");
outToClient.writeBytes("Content-Type: text/html\r\n");
outToClient.writeBytes("Content-Length: "+waiting.length+"\r\n");
outToClient.writeBytes("\r\n");
outToClient.write(waiting,0,waiting.length);
if(!admin()){
return;
}
WebServer.IPadmin=false;
}
this.start(); }
public void receive() throws IOException{
while(socket!=null){
requestMessageLine=inFromClient.readLine();
if(requestMessageLine.length()==0){break;}
System.out.println(requestMessageLine);
tokenizedLine=new StringTokenizer(requestMessageLine);
if(tokenizedLine.hasMoreTokens()){
String strhead=tokenizedLine.nextToken();
if(strhead.equals("GET")){
send=true;
fileName=tokenizedLine.nextToken();
if(fileName.equals("/")){
fileName="index.html";
}
else if(fileName.startsWith("/")){
fileName=fileName.substring(1);
fileName=fileName.replace("%5C", "/");
fileName=fileName.replace("%20", " ");
//如果是文件 ,不要check
check=false;
}
}//endnexttoken
if(check){
if(strhead.equals("User-Agent:")){
if(requestMessageLine.contains("Firefox/3")){
System.err.println("true");
}
else{
System.err.println("false");
fileName="ERROR.html";
send=true;
}
}
}
//....
}//endhastoken
}//endwhile
if(send){
readFile();
send(fileInBytes, numOfBytes);
} }
public void send(byte[] fileInBytes,int numOfBytes) throws IOException{
outToClient.writeBytes("HTTP/1.1 200 Document Follows\r\n"); if(fileName.endsWith(".jpg")){
outToClient.writeBytes("Content-Type: image/jpg\r\n");
}
else if(fileName.endsWith(".gif")){
outToClient.writeBytes("Content-Type: image/gif\r\n");
}
else if(fileName.endsWith(".wmv")){
outToClient.writeBytes("Content-Type: video/x-ms-wmv\r\n");
}
else if(fileName.endsWith(".avi")){
outToClient.writeBytes("Content-Type: video/avi\r\n");
}
else if(fileName.endsWith(".html")||fileName.endsWith(".htm")){
outToClient.writeBytes("Content-Type: text/html\r\n");
}
outToClient.writeBytes("Content-Length: "+numOfBytes+"\r\n"); outToClient.writeBytes("\r\n");
outToClient.write(fileInBytes,0,numOfBytes);
}
//得到文件
public void readFile() throws IOException{
File file=new File(url+fileName);
b=(" Client_Request:"+fileName+"<br>"+
System.getProperty("line.separator")).getBytes();
FileOutputStream out=new FileOutputStream(afile,true);
out.write(b);
out.close();
numOfBytes=(int)file.length();
inFile=new FileInputStream(url+fileName);
fileInBytes=new byte[numOfBytes];
inFile.read(fileInBytes);
inFile.close(); }
public boolean checkIP(Socket skt){
for(int i=0;i<WebServer.IPnum;i++){
if(skt.getInetAddress().toString().equals(checkIP[i])){
return true;
}
}
return false;

}
public boolean admin() throws IOException{
WebServer.tfNewIP.setText("IP:"+socket.getInetAddress().toString()+
" PORT:"+socket.getPort());
WebServer.btAllow.setEnabled(true);
WebServer.btRepel.setEnabled(true);
while(!click){}
click=false;

if(WebServer.IPadmin){
File IPFile=new File(url+"checkIP.txt");
FileOutputStream appIP=new FileOutputStream(IPFile,true);
byte[] ips=(socket.getInetAddress().toString()+
System.getProperty("line.separator")).getBytes();
appIP.write(ips);
appIP.close();
//WebServer.readIP();
WebServer.checkIP[IPnum]=socket.getInetAddress().toString();
WebServer.IPnum++;
return true;
}
else{
WebServer.disconnect(this);
return false;
}
}

public void run(){
try {
receive();
} catch (IOException e) {
}
WebServer.disconnect(this);
}
}}

⑥ arino下esp8266+web實現遠程開關窗和雨滴感應開關窗

一、設計要求

1、雨滴感測器感受到雨滴會關窗

2、Wifi模塊連接熱點實現與web的傳輸

3、web實現遠程式控制制窗戶

二、零件部分

1、雨滴感測器

2、舵機

舵機對應模擬窗戶狀態(因懶惰,此處直接在網路上拿的舵機圖)

3、esp8266_01 WIFI模塊

4、實行平台 arino

5、流程圖

三、主要是用web通過HTTP請求把數據上傳到數據端,這里的設置是應用8266WiFi模塊與電腦連接手機熱點,在arino里做一個webserver,實現硬體和軟體的連接。

webserver設置

web的連接

通過發生http請求與webserver進行交互,該系統數據層部分主要是把web收集到的數據通過到ESP8266 WiFi模塊收集到的信號,以此來對舵機實現驅動。

四、實物圖

web界面

串口實時輸出界面

⑦ 如何使用C#創建WebService

C#學習到一定程度會涉及到C#創建WebService的一些高階知識,本文試圖對此做一個簡單的介紹。


假設A是客戶端,B是webservice服務端,用戶通過http協議向伺服器發送soap請求,webservice返回客戶端Xml格式的數據。


現在我們看一看創建一個C#創建WebService的大致過程:


服務端的webservice是必須要建的。中間的soap,Xml我們不用去關心,在客戶端這邊,比較重要的是如何從webservice取得對象?答案是用的是proxy對象。客戶端由代理對象(proxy)負責與webservice的通信。所以在客戶端使用webservice,完全和使用一個本地對象是一樣的。


我們現在以一個簡單的C#創建WebService實例來說明。


打開vs.Net,新建工程(asp.Net web服務),在位置中鍵入http。//localhost/webserver,其中webserver就是工程的名字。確定後,出現一個Service1.asmx.cx,雙擊,出現代碼窗口,


using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Web; using System.Web.Services; namespace webserver { /// /// Service1 的摘要說明。 /// (1) public class Service1 : System.Web.Services.WebService { public Service1() { //CODEGEN:該調用是 ASP.Net Web 服務設計器所必需的 InitializeComponent(); } #region Component Designer generated code //Web 服務設計器所必需的 private IContainer components = null; /// /// 設計器支持所需的方法 - 不要使用代碼編輯器修改 /// 此方法的內容。 /// private void InitializeComponent() { } /// /// 清理所有正在使用的資源。 /// protected override void Dispose ( bool disposing ) { if(disposing && components != null) { components.Dispose(); } base.Dispose(disposing); } #endregion // WEB 服務示例 // HelloWorld() 示例服務返回字元串 Hello World // 若要生成,請取消注釋下列行,然後保存並生成項目 // 若要測試此 Web 服務,請按 F5 鍵 // [WebMethod] // public string HelloWorld() // { // return "Hello World"; // } } } 下面在(1)處加入


[WebService(Namespace="http。//localhost/webserver/")]


這是因為soap是基於http協議上的,客戶端無法知道webservice位於那個伺服器上。在實際應用中,比如http。//www。ourfly。com上放置這個webservice,則Namespace改為http。//www。ourfly。com/webserver.


下面我們給這個webservice添加一個方法。


// [WebMethod] // public string HelloWorld() // { // return "Hello World"; // } 微軟幫我們寫好了一個,接著添加一個方法。 方法名稱叫show. [WebMethod] public string show(string yourname) { return 「http。//www。ourfly。com」+」歡迎」+yourname; } 現在,就可以運行了,按F5,點擊show,輸入你的名字, 然後點擊invote 看到了吧。 〈 ?Xml version="1.0" encoding="utf-8" ?〉 〈 string Xmlns="http。//tempuri。org/"〉 http。//www。ourfly。com歡迎yyg〈 /string〉 成功了。打開bin目錄,Vs.Net已經將proxy做好了.webserver.dll.


現在我們在不同的環境下測試:


1.打開vs.Net,新建」windows應用程序」工程,命名為Client,增加按鈕,文本框。


現在要用到代理了,右鍵單擊右邊的reference(引用),選擇」添加引用」,選擇瀏覽,找到webserver目錄下的bin目錄下的webserver.dll

再加入一個system.web.webservices的引用,在列表中有。


在form1.cs里,加入


using System.Web.Services;


using webserver;


然後在


private System.Windows.Forms.Button button1;


private System.Windows.Forms.TextBox textBox1;


後面,插入


private webserver.service1 Client


建立一個service1的實例。雙擊按鈕,代碼如下:


private void button1_Click (object sender, System.EventArgs e) { Client =new Service1(); string name; name=Client.show("龍卷風.Net"); textBox1.Text=name; } 按F5,運行工程,點擊按鈕,文本框中顯示 http。//www。ourfly。com歡迎龍卷風.Net


2. Asp.Net web窗口的測試


方法與上面的一模一樣,添加引用,建立service1的實例 在此不在細說。


3.在VB中測試


這個就要相對來說復雜一些 ,首先在VB中建立一個」標准EXE」的工程。添加引用:Microsoft Soap Type library。


注意:如果沒有安裝Microsoft Soap Toolkit,是沒有這個類型庫的。

⑧ 北大青鳥設計培訓:web伺服器類型介紹

web應用的運營都是基於web伺服器的存在才能實現的。
今天我們就一起來了解一下,目前比較常見的一些web伺服器都有哪些類型。
1、Tomcat伺服器目前非常流行的Tomcat伺服器是Apache-Jarkarta開源項目中的一個子項目,是一個小型、輕量級的支持JSP和Servlet技術的Web伺服器,也是初學者學習開發JSP應用的選。
2、Resin伺服器Resin是Caucho公司的產品,是一個非常流行的支持Servlet和JSP的伺服器,速度非常快。
Resin本身包含了一個支持HTML的Web伺服器,這使它不僅可以顯示動態內容,而且顯示靜態內容的能力也毫不遜色,因此許多網站都是使用Resin伺服器構建3、JBoss伺服器JBoss是一個種遵從JavaEE規范的、開放源代碼的、純Java的EJB伺服器,對於J2EE有很好的支持。
JBoss採用JMLAPI實現軟體模塊的集成與管理,其核心服務又是提供EJB伺服器,不包含Servlet和JSP的Web容器,不過它可以和Tomcat完美結合4、WebSphere伺服器WebSphere是IBM公司的產品,可進一步細分為WebSpherePerformancePack、CacheManager和WebSphereApplicationServer等系列,其中WebSphereApplicationServer是基於Java的應用環境,可以運行於SunSolaris、WindowsNT等多種操作系統平台,用於建立、部署和管理Internet和IntranetWeb應用程序。
5、WebLogic伺服器WebLogic是BEA公司的產品(現在已經被Oracle收購),可進一步細分為WebLogicServer、WebLogicEnterprise和WebLogicPortal等系列,其中WebLogicServer的功能特別強大。
WebLogic支持企業級的、多層次的和完全分布式的Web應用,並且伺服器的配置簡單、界面友好。
航天橋java課程培訓機構http://www.kmbdqn.cn/認為對於那些正在尋求能夠提供Java平台所擁有的一切應用伺服器的用戶來說,WebLogic是一個十分理想的選擇。

⑨ lwip webserver 網頁 怎麼設計

不對,文件路勁後面就是跟著文件內容啊,要不然只傳文件路勁有什麼意義埃cgi就是為網頁交互提過的一個介面而已。