javaweb學習總結十五(web開發的相關概念以及經常使用服務器介紹)

一:java web開發的相關概念html

1:web分爲靜態web和動態webjava

 

 

 

 

2:模擬web服務器web

web頁面若是想讓外部網絡訪問,必須經過網絡程序讀取資源,流程:apache

a:用戶經過瀏覽器訪問網絡程序瀏覽器

b:網絡程序讀取資源,而後響應給用戶tomcat

代碼:服務器

 1 /**
 2  * 
 3  */
 4 package com.hlcui.testweb;
 5 
 6 import java.io.FileInputStream;
 7 import java.io.IOException;
 8 import java.io.OutputStream;
 9 import java.net.ServerSocket;
10 import java.net.Socket;
11 
12 /**
13  * @author Administrator 模擬設計一個web服務器,向外界提供服務
14  */
15 public class WebServer {
16 
17     /**
18      * @param args
19      * @throws IOException
20      */
21     public static void main(String[] args) throws IOException {
22         ServerSocket serverSocket = new ServerSocket(8888);
23         System.out.println("服務器已經啓動...");
24         Socket socket = serverSocket.accept();
25         OutputStream out = socket.getOutputStream();
26         FileInputStream fis = new FileInputStream("E:\\1.html");
27         int len = 0;
28         byte[] buf = new byte[1024];
29         while ((len = fis.read(buf)) > 0) {
30             out.write(buf, 0, len);
31         }
32         fis.close();
33         out.close();
34     }
35 
36 }

路徑E:/1.html竟然不行,使用E:\\1.html能夠。網絡

固然,有不少公司已經寫好了網絡程序,就是web服務器。socket

 

二:常見的web服務器post

1:weblogic服務器

 

 

 

2:websphere服務器

 

 

 

3:tomcat服務器

tomcat服務器時開源免費的,是學習工做必備

 

4:下載tomcat服務器

 

 

三:安裝而且啓動web服務器

1:安裝tomcat並啓動

將下載好的文件解壓,而後進入到bin目錄,雙擊startup.bat命令便可

驗證是否啓動成功:只須要打開瀏覽器,而後輸入url地址,本機就輸入localhost:8080

若是沒有修改端口,默認就是8080,出現如下界面說明訪問成功!!!!

 

 

2:修改tomcat服務器端口

http協議默認端口是80,若是須要修改tomcat服務器端口,只須要進入conf目錄,而後打開

server.xml文件,找到

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8" /> 鏈接器這個元素,只須要把8080修改爲80便可。

 

修改以後,啓動服務器,再次訪問:瀏覽器地址欄輸入:localhost

 

3:tomcat服務器使用常見問題

a:java_home環境變量

使用tomcat服務器須要配置java_home環境變量,由於tomcat是使用java寫的,這個通常在學習jdk的

使用都配置過,若是沒有配置,啓動tomcat服務器會一閃而過。

 

參考:

下載安裝JDK,而且配置java環境變量 

這一篇文章配置java_home。

b:端口占用問題

若是出現以下異常:

嚴重: Error initializing endpoint
java.net.BindException: Address already in use: JVM_Bind <null>:80
at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549)
at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176)
at org.apache.catalina.connector.Connector.initialize(Connector.java:1049)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
at java.net.ServerSocket.bind(ServerSocket.java:328)
at java.net.ServerSocket.<init>(ServerSocket.java:194)
at java.net.ServerSocket.<init>(ServerSocket.java:150)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50)
at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538)
... 12 more

說明端口被佔用。

 

殺死佔用端口的程序

netstat -ano|findstr 8080   查看佔用8080端口程序的pid進程號

tasklist|findstr pid號    查看是哪一個程序佔用了端口

可使用命令  taskkill  /pid  pid號 或者直接在任務管理器進程欄殺死進程

 

c:catalina_home 環境變量建議不要配置

若是配置了,那麼它就會去找固定的服務器啓動,若是配置Catalina_home的服務器安裝在d盤,即便你啓動的是c盤的服務器,

它依而後去找d盤的服務器啓動。

相關文章
相關標籤/搜索